最近用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