作者laurie1980 (............)
看板Python
标题[问题] python写财务技术指标
时间Wed Jul 22 20:34:17 2015
最近用python写技术指标的进出场讯号,
基本上要完成都不会有太大困难,
毕竟只要照策略逻辑,加上一些判断式,不用很精通python也能得到想要的结果
不过实际执行上,觉得效率应该可以在好一点
想问一下有没有更好的写法
以下是一个以RSI作为讯号产生的范例,
技术指标的讯号逻辑都不出这种架构,
程式说明:
data是一个pandas的Dataframe,
row是时间,columns是各种技术指标(RSI、MACD等...)
程式内首先产生一个叫sig的栏位,用来储存讯号
for loop 里面,就是讯号产生的逻辑:
比如RSI由上往下穿越70
if (data.ix[i-1, 'rsi'] >= 70) & (data.ix[i, 'rsi'] < 70)
就在sig的当期栏位标注一个"sell",
其余程式码以此类推。
请大家给点增加效率的意见,谢谢!!!
def RSI_Signal(data):
data['sig'] = 0
for i in range(1, len(data)):
if (data.ix[i-1, 'rsi'] >= 70) & (data.ix[i, 'rsi'] < 70) :
data.ix[i, 'sig'] = 'sell'
if (data.ix[i-1, 'rsi'] >= 30) & (data.ix[i, 'rsi'] < 30) :
data.ix[i, 'sig'] = 'close sell'
if (data.ix[i-1, 'rsi'] <= 30) & (data.ix[i, 'rsi'] > 30) :
data.ix[i, 'sig'] = 'buy'
if (data.ix[i-1, 'rsi'] <= 70) & (data.ix[i, 'rsi'] > 70) :
data.ix[i, 'sig'] = 'close buy'
return data
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.223.201
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1437568460.A.D9D.html
1F:推 lalelee: 本身也有在交易,想请教一下有这类的教学范例吗?例如如 07/22 20:52
2F:→ lalelee: 何抓证交所的资料等 07/22 20:52
3F:→ ck574b027: 已经是 O(n) 了,你期待增进什麽效率?顶多把那些重复 07/22 21:54
4F:→ ck574b027: 比较四次的值丢到新变数,不是吗? 07/22 21:55
5F:推 timTan: 要用and. 不是& 吧 07/23 11:04
6F:推 chuanmaotou: 已经够快了 如果还要再快可以试着把他平行化 07/26 20:25
7F:→ chuanmaotou: 但前提是资料量要够大 不然光合并资料增加的 07/26 20:27
8F:→ chuanmaotou: 时间复杂度就划不来了 07/26 20:27
9F:→ laurie1980: lalelee: 我大部分是参考quantocracy.com 08/24 22:57