[問題] 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