[問題] python寫財務技術指標

看板Python作者 (............)時間9年前 (2015/07/22 20:34), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/2 (看更多)
最近用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://www.ptt.cc/bbs/Python/M.1437568460.A.D9D.html

07/22 20:52, , 1F
本身也有在交易,想請教一下有這類的教學範例嗎?例如如
07/22 20:52, 1F

07/22 20:52, , 2F
何抓證交所的資料等
07/22 20:52, 2F

07/22 21:54, , 3F
已經是 O(n) 了,你期待增進什麼效率?頂多把那些重複
07/22 21:54, 3F

07/22 21:55, , 4F
比較四次的值丟到新變數,不是嗎?
07/22 21:55, 4F

07/23 11:04, , 5F
要用and. 不是& 吧
07/23 11:04, 5F

07/26 20:25, , 6F
已經夠快了 如果還要再快可以試著把他平行化
07/26 20:25, 6F

07/26 20:27, , 7F
但前提是資料量要夠大 不然光合併資料增加的
07/26 20:27, 7F

07/26 20:27, , 8F
時間複雜度就划不來了
07/26 20:27, 8F

08/24 22:57, , 9F
lalelee: 我大部分是參考quantocracy.com
08/24 22:57, 9F
文章代碼(AID): #1LhutCsT (Python)
文章代碼(AID): #1LhutCsT (Python)