有筆 tick csv 資料如下
TX00Ticks.csv
Name,nPtr,nDate,nTimehms,nTimemillismicros,nBid,nAsk,nClose,nQty
TX00,119,20190624,150000,17000,10621.0,10623.0,10622.0,36
TX00,120,20190624,150000,38000,10621.0,10622.0,10621.0,2
TX00,121,20190624,150000,167000,10620.0,10622.0,10622.0,1
TX00,122,20190624,150000,199000,10620.0,10621.0,10620.0,1
TX00,123,20190624,150000,205000,10620.0,10621.0,10620.0,1
TX00,124,20190624,150000,304000,10620.0,10621.0,10620.0,1
TX00,125,20190624,150000,321000,10620.0,10621.0,10621.0,2
pandas
要對一排一排的 row 做處理的話,apply 要設定 axis=1
ref: pandas apply 的使用
http://jonathansoma.com/lede/foundations/classes/pandas%20columns%20and%20functions/apply-a-function-to-every-row-in-a-pandas-dataframe/
#斬大寫得更簡單!! https://ithelp.ithome.com.tw/articles/10223693
您好,我使用OnNotifyTicks取得及時tick值回傳
回覆刪除我想要將每筆tick值在class Events中的def OnNotifyTicks使用字典格式記錄到list內
如list.append(tick)
雖然每次tick都會更新成最新的資訊
不過存入list每筆資料都會被更新成最新的data,因此無法比較現在資料與前幾筆資料的數值
list預期印出結果為tick1, tick2, tick3
但實際上會變成tick3, tick3, tick3,有新的事件觸發list就會變成tick4,tick4,tick4,tick4
資料都會全部被覆蓋成最新的tick
想請問您是如何將即時報價tick存取出來的?
P.S若使用OnNotifyHistoryTicks他僅會更新一次,因此可以正常存取所有tick值
目前還是python新手,遇到此問題很苦惱,不知道哪裡理解有誤
ㄟ都 這有些複雜... 看起來是你資料存入字典的list 的用法有誤,如果單純用list 的append 應該不會被覆蓋
回覆刪除ticklist=[]
def OnNotify():
ticklist.append(tickdata)
我目前策略其實沒有每分每秒需要使用到tick 資料耶,目前操作就是收集資料,等時間到做一次策略判讀,然後下單。
你的需求有很多做法,我曾經嘗試過塞到 pandas 的 dataframe, 然後用時間當 index,就可以比對特定時間內的數值,這種電腦要好一點,不然跑起來有點慢。
另一種就是用多用幾個 list 或 numpy array,來暫存前幾筆資料,這個比較輕巧,但要花點心思建立你的資料結構,
有本書Python:期貨演算法交易實務121個關鍵技巧詳解,也有些處理資料的方法可以參考,可以去書店翻看看,但他是接自家報價系統,所以操作跟群益API有點差距