有關策略部位計算起點的問題?請教小幫手大大!!

  •   47 
  • 最後發表   信風  2021 十一月 29
信風 發文於   2021/11/23

請教小幫手大大:

若我在同一券商帳戶內要跑好幾隻不同的交易腳本。自動交易中心裡的"資料讀取筆數"、"策略部位計算起點"、"策略部位"這3個欄位該如何設定及選取,才能在每天早上開盤前啟動策略時正確的抓到該腳本的庫存呢?

假設我的腳本執行頻率為"日K線",裡面用到最長的參數為5日均量。

還請小幫手大大幫忙解惑一下,謝謝!!

(實在爬了好久的文,也反覆實驗再實驗,還是搞不定它)

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/11/24

Hello 信風,

 

依您的敘述,資料讀取筆數用預設的100筆就足夠了(如果您只用5日均線,沒有使用KD之類的話設定10也可以)。

由於您是要該策略的部位庫存,不是實際的部位庫存,可以將策略部位計算起點設為您前一次運行策略開始的時間,然後策略部位設為依腳本計算,這樣策略就會模擬從那段時間開始到現在您的部位庫存是多少。

另一個方法是不設策略部位計算起點,直接將策略部位設為自訂數值,然後自己手動調整。

細節請參考 自動交易策略參數總覽 這篇文章,裡面有提到參數該如何設定。

信風 發文於   2021/11/25

謝謝小幫手前輩:

把資料讀取筆數設為10,且將策略部位計算起點設為"指定天數"、"1"天,即可在當天早上重新啟動策略時抓取到結至昨天收盤止的策略部位。

但;現在又出現另外兩個問題。

首先;我的腳本當中有一個觸發條件是設定只能在每天10點前買進(10點過後只出不進),語法我大致是這樣寫的,

condition1 =  ; //省略

condition2 = currentTime<=100000;

if position = 0 and condition1 and condition2  then  setposition(1);

這樣會導致當天早上開盤前我重新晵動策略時,由於currentTime抓取的電腦時間的確是小於100000,所以昨天10點過後僅符合condition1的股票也會被當成滿足兩個條件因而被觸發而顯示在策略庫存部位當中(但實際上不應該有這檔股票的庫存),因而造成誤動作。關於這點,腳本該如何修改才能正確的計算到策略部位庫存呢?

其次;我發現昨天雖然有滿足兩條件因此觸發下單,但因該股漲停鎖住未能成交的股票(因此至收盤實際上沒有該檔股票的持有庫存部位),在今天盤前重新啟動策略時,它會被當成已成交而顯示在策略庫存當中,關於這點,腳本該又如何修改才能正確的計算到策略部位庫存呢?

謝謝前輩,還請不吝指教。

XQ小幫手 發文於   2021/11/29

Hello 信風,

 

如果您只是要庫存部位等於您目前手上實際庫存的話,只要將策略部位設定為依庫存即可。

不需要另外設定部位計算起點。

您設定部位計算起點的話,那是用策略模擬起點到啟動策略當下應該會有的部位,請注意這和您實際的部位可能會有差別。

舉例來說,模擬時您策略下了3口買進單,此時該根Bar的成交量為5筆,系統會因為成交量大於您下單的數量而判斷您成交了3口,部位庫存變為3。

但實際上您說不定只成交了1口,其他四筆交易是別人的交易。

您後面舉的漲停也是一樣的狀況:您下單該根Bar有成交,且大於您的下單數量,系統模擬判斷您有成交,但實際上成交的是其他人。

發表回覆
Close