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