[问题] python写财务技术指标

楼主: laurie1980 (............)   2015-07-22 20:34:17
最近用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
作者: lalelee (Yes We Can !)   2015-07-22 20:52:00
本身也有在交易,想请教一下有这类的教学范例吗?例如如何抓证交所的资料等
作者: ck574b027 (荒围!定厝!贼!妹!)   2015-07-22 21:54:00
已经是 O(n) 了,你期待增进什么效率?顶多把那些重复比较四次的值丢到新变量,不是吗?
作者: timTan (用口头禅区分年记)   2015-07-23 11:04:00
要用and. 不是& 吧
作者: chuanmaotou (0xFFFFFFFF)   2015-07-26 20:25:00
已经够快了 如果还要再快可以试着把他平行化但前提是资料量要够大 不然光合并资料增加的时间复杂度就划不来了

Links booklink

Contact Us: admin [ a t ] ucptt.com