最近一直跌,Sell call雖然都有賺到,但賺的部分實在很難補小台跌的部分。
真的是很煎熬,要一直補保證金,不然怕等等不小心被斷頭。
一直在想是不是應該買個PUT才對。
最近一直跌,Sell call雖然都有賺到,但賺的部分實在很難補小台跌的部分。
真的是很煎熬,要一直補保證金,不然怕等等不小心被斷頭。
一直在想是不是應該買個PUT才對。
雖然期貨做了6~7年, 選擇權也做了2年,都找不到穩定獲利的策略,但還是想做呀。
後來看了輝哥的covered call策略,解釋的內容比其他的介紹好很多。
即然看好台股長期是向上,那持有台指期也是很合理的策略,只要保證金放的夠多,搭配賣call來收權利金,的確是個很好的搭配。
目前就是小台搭配週選賣call,雖然小台是跌的,但保證金放的夠,賣call又一直能補點血回來,心裡的負擔感覺好多了。
希望這招能穩穩的做下去。
利用python做台指期當沖自動交易~~跑了快三個月吧。
程式本身沒什麼問題,大概就是停損出場會滑價,其他方面執行上是沒什麼問題。
但失敗了,因為策略太爛了,雖然風報比把2:1,但太常停損了,勝率太低,所以最重要的還是策略,程式只是個輔助。
現在就停止當沖,在好好想想策略吧。
Shioaji的官網上有提到怎麼做觸價停損: https://sinotrade.github.io/zh_TW/tutor/advanced/quote_binding/#_3
但我連callback都不懂的人,裡面寫的我實在無法理解,所以就想了另一個解法。
因為我只當沖小台,所以就一直snapshot小台目前的價格,每0.5秒一次,並不會超過流量限制。
如果價格有到我的停利或停損價,就馬上執行市價平倉單,來達到觸價停損的機制。
因為市價單必須是IOC,所以要馬上檢查庫存還有沒有單,確認是否已平倉,如果沒有,就繼續下市價平倉單,以確保我有把單平掉。
這就是個人一個簡單的觸價停損作法。
另外就是有發現一個問題,如果我平倉是掛當下限價單,用當下snapshot抓到的小台價格,幾乎不會馬上成交,我就要重新抓小台價格,把下單價格在更新重下,大概都要等個30秒才會成交,就會滑價。但改用市價單就直接成交,出場滑價的機會就會比較小,這也是用市價單的好處。
為了打造自動化交易工具,產生穩定的被動收入,就開始學python,要來打程式交易。
程式做出來了,但交易策略不太行,所以反而變成穩定的被動失血。
策略還是最重要的東西,想不出一個正期望值的策略,有沒有程式交易其實也沒什麼意義。
雙買只有明顯趨勢下才能賺,雙賣是一有趨勢就慘了。
價差單也差不多,看你怎麼組,也是有上面的問題,怎麼做都不順。
追蹤一個長期獲利的雙賣交易者對帳單,是用大口數來產生比較好的收益,如果只看單口的獲利,可能都不到50塊,過程中要一直調整部份,這個實在難做。
趨勢就是這樣,做賣方,他就很愛動,做買方就不太動,總是常在小賠,偶爾小賺一點點,期望值依然是負的,所以還是先暫停吧,專心做買方當沖。
永豐shioaji可以把1分k做匯出,然後在自行轉成其他分k。
做法通常就是把1分k資料用pandas轉換成datafram,然後在用resample的方式,轉成其他的分k。
不過在轉成其他分k時,會遇到兩個問題。
第一是轉成其他k分時,會有從左邊算起或右邊算一起的問題,這就會影響到資料的正確性,關於這個,可以參考https://ithelp.ithome.com.tw/articles/10280495 這篇文章,用label跟closed兩個參數去調整資料的正確性。
系統預設是左邊,但在轉換shioaji的資料時,要從右邊算,出來的分k開高收低才會對。
第二個問題是在用resample重把切分1分k時,都是以完整一小時去切,譬如說你要換成30分k,系統就會用x點00分跟x點30分去切,但台指開盤是8點45分,應該要切成x點15分跟x點45分。
這時後就要在加一個base的參考,範例可參考 https://towardsdatascience.com/using-the-pandas-resample-function-a231144194c4 這篇最後面‘Base’ Argument的說明。
另外就是1分k只能用日期 去過濾,但裡面會包含到日跟夜盤的資料,如果只要日盤,或是特定時間,就要用between_time這個參考去過濾,範例可去https://geek-docs.com/pandas/pandas-dataframe/python-pandas-dataframe-between_time.html 看看。
現在選擇權代號通常會有當週,下週,跟月選3個合約,如果現在是第一週,就是有TX1,TX2,TXO,三個。只有第三週是2個(TXO跟TX4)。
目前的python語法裡TX是寫死的,每周要自己手動改,有點煩,所以就想了一個動判斷的語法,來抓今天是該是TX幾。
主要就是判斷連續兩週的合約有沒有值,如果都有的話,那TX就是比較小的那個。
像是TX1跟TX2都有值,那今天就會是TX1。
第三週因為是抓TXO跟TX4,但第四週也會有TXO跟TX4,所以這一個判斷要放在最後面才行,不然第四週會被先判斷成是TXO。
#抓當週的週選的TX代號
if api.Contracts.Options['TX1'] != None and api.Contracts.Options['TX2'] != None:
TX = 'TX1'
print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX2'] != None and api.Contracts.Options['TXO'] != None:
TX = 'TX2'
print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX4'] != None and api.Contracts.Options['TX1'] != None:
TX = 'TX4'
print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX4'] != None and api.Contracts.Options['TX5'] != None:
TX = 'TX4'
print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX5'] != None and api.Contracts.Options['TX1'] != None:
TX = 'TX5'
print(api.Contracts.Options[TX])
elif api.Contracts.Options['TXO'] != None and api.Contracts.Options['TX4'] != None:
TX = 'TXO'
print(api.Contracts.Options[TX])
Shioaji 在撈Kbar資料時,可以指定開始跟結束的"日期",然後就產出這段時間的一分k資料 。
假如是撈期貨的資料,就會把日盤跟夜盤的kbar全部列出來。
本來都有設定autoit做收盤前的自動平倉單功能。
昨天並沒開倉下單,所以就算執行了自動平倉也不會生效。
但晚上就發現居然有庫存,autoit的自動平倉居然變成開倉雙買了。
然後還賺了一點錢,好佳在,如果是雙賣就虧慘了。
然後仔細檢查了一下autoit裡面的程式,發現下單的下拉選單(開倉,停損,停利,自動)這個鈕的按鈕參數,在完全沒下過單跟有先下過單(任個一種單因)的狀況下,是不相同的。TR<>裡面那串數字會變動。
ControlCommand("e-Leader - [[6508]多次IOC :(0) TR<540001>]","","ComboBox8","SelectString",'平倉停損')
實在太奇怪了,所以如果沒下單,要把視窗關了,不然到時就會變自動開倉下單了。
選擇權下單跟股票或期貨不一樣,沒有當沖這個功能可以選,讓單子可以在收盤自動平倉。
如果想要實現在這功能,就需要搭配autoit這個軟體來實現。
現在就是使用永豐的e-leader裡的組合單操作
1. 假設已手動下好多次IOC的組合單,而且成交了,這時後畫面就會停在原本下單的條件。
跟期貨營業員確認已申請好了shioaji的api後,在python下指令要列出帳號清單,發現都只有證券帳號,沒有期權帳號,有點怪。
後來上了永豐api官方的telegram去發問,才知道原來當初在申請api key的時後,因為只有證券戶,期貨戶還沒開好,所以申請api key的過程,只有證券戶可以勾選,所以用那組api key登入時就只有證券帳號可以用。
重新在申請一次api key,勾選期權選項後,登入測試就有列出期權帳戶了。
一開始學習就充滿挫折~
裝好shioaji套件後,最一開始就是先登入,在這關就卡三天,找到網路上一些教學,也有官方出的PDF檔文件,結果登入後都很怪,雖然有session up的字眼出現,但又有產生其他錯誤。
在python裡要安裝永豐API要用的一個套件shioaji時,一直失敗,就找不到這個套件。
後來才發現,這個套件不支援自己電腦內的python3.11版。
所以就要另外裝一個python舊版的環境,目前測試是在3.8跟3.9都可以裝。
今年基本上就是慘,前11個月,好像只有一個月是有獲利,其他都賠錢。
12月開始把交易條件訂的比較高,所以交易次數不多,雖然前兩週都只做1口單賣當沖,但至少都有賺,第三週目前確定是沒交易機會了,希望剩下兩週也能順一點,至少讓我最後一個月也是獲利結束今年,把希望寄託在明年。
做了幾個月的選擇權賣方,一直都記得做賣方要保險,不然遇到一次爆漲或爆跌,就會GG。
所以就一直做雙賣,想說至少有一邊能補一下,而且都做日盤當沖,頂多就價外1~2檔的位置,也流動性也還不錯,做的比較安心。
如果價格往其中一邊衝太多,還是會虧損,所以還是會設停損。
下單的策略並不是完全中立,是會先抓今天偏多或空,就會順勢往價外一兩檔做雙賣。
就算方向對了,賺的速度會比賠的快,所以還是會賺,但行情衝過頭,賠的速度就會比賺的快,反而會開始賠錢,等於是獲利有限,虧損無限大。
所以需要在好好想想,這策略應該要調整一下。