作者laurie1980 (............)
看板Python
標題[問題] python寫財務技術指標
時間Wed Jul 22 20:34:17 2015
最近用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
推 lalelee: 本身也有在交易,想請教一下有這類的教學範例嗎?例如如 07/22 20:52
→ lalelee: 何抓證交所的資料等 07/22 20:52
→ ck574b027: 已經是 O(n) 了,你期待增進什麼效率?頂多把那些重複 07/22 21:54
→ ck574b027: 比較四次的值丟到新變數,不是嗎? 07/22 21:55
推 timTan: 要用and. 不是& 吧 07/23 11:04
推 chuanmaotou: 已經夠快了 如果還要再快可以試著把他平行化 07/26 20:25
→ chuanmaotou: 但前提是資料量要夠大 不然光合併資料增加的 07/26 20:27
→ chuanmaotou: 時間複雜度就划不來了 07/26 20:27
→ laurie1980: lalelee: 我大部分是參考quantocracy.com 08/24 22:57