使用選股中心的回測功能時想另外加上當日進場條件

  •   409 
  • 最後發表   Tofu  2022 十一月 25
Tofu 發文於   2022/11/19

小幫手好

最近開始使用選股中心以及策略雷達

我是作空,開盤價進場,收盤價出場。在回測某些選股當沖策略時,如果想要再加上一個當日是否進場的條件:即「選股中若開盤價高於5%,則不進場」,請問這部分要怎麼設定?是要連結到策略雷達嗎,若是的話想請教一下語法要怎麼寫呢,謝謝~

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

 Hello Tofu,

 

開盤價高於5% 您指的是開盤價高於昨日收盤價 5% 嗎?

如果是的話,選股的進場只要補上這個條件即可。

舉例來說:

condition1 = open <= close[1] * 1.05;  //開盤價小於等於前日收盤價的1.05倍

condition2 = 其他條件;

if condition1 and condition2 then ret = 1;

 

網站上有教學區,裡面有XS語法的基礎和應用。

Tofu 發文於   2022/11/22

謝謝小幫手,我的意思是比如我今天用了某一個策略選股,然後想回測這個選股隔日當沖放空的績效

進場價格選「下一期開盤價」,出場價格選「當期收盤價」,最大持有時間設定「1期」

但是這種條件選出來的個股,隔天不管開多高,系統都還是會用開盤價進場,收盤價出場,比較不符合現實情況(因為通常當天如果開太高,是不會進場放空的)

所以我選股跑出來後,主要是想從回測結果中,刪去當天實際開太高的樣本

但現在卡在不知道怎麼做到這件事~

Tofu 發文於   2022/11/22

我這樣做不知道對不對

1.先在XS編輯新增一個警示XS語法,輸入

condition1 = open <= close[1] * 1.05;  //開盤價小於等於前日收盤價的1.05倍

if condition1 then ret = 1;

然後按存檔及編譯,並加入策略雷達

2.開啟策略雷達,然後在這個警示的屬性設定中,選「K棒內單次觸發」、頻率選「日」,資料讀取選「1000」筆(這個不確定)

執行商品選「選股」->「我的策略」

3.在這個策略雷達右鍵選回測近6個月,頻率選「日」,進場設定選「模擬逐筆洗價」,進場價格選「下一期開盤價」,出場價格選「當期收盤價」,最大持有時間設定「1期」,停損選5%

這樣去回測是會測到我想測的東西嗎?

XQ小幫手 發文於   2022/11/24

Hello Tofu,

 

您使用日頻率的雷達,最後的結果還是成交在下個開盤價,而下個開盤價一樣沒有檢查到。

結果應該還是不符合您的需求。

會建議您串1分鐘頻率的雷達,這樣才可以在開盤第一筆的時候檢查,不過進場的價格就沒辦法是當天的開盤價。

出場的話可以串接另外一個腳本在收盤時才出場即可。

資料讀取的部分您可以參考說明文章

Tofu 發文於   2022/11/24

謝謝小幫手回覆,我這樣寫不知道對不對:

1.進場「警示」語法:

condition1 = open <= close[1] * 1.04;  //開盤價小於等於前日收盤價的1.04倍

condition2 = time <= 090059; //只判定開盤第一根K棒

if condition1 and condition2 then ret = 1;

2.出場「警示」語法:

if time > 132800 then ret = 1;//尾盤出場

使用策略雷達功能的回測

 

其他設定如附圖

 

 

這樣的話就像小幫手講的,進場會變成開盤第一根1分K的收盤價,但可以用尾盤價出場

資料讀取選1或2應就可以?因為判定第一根時,我只需要前一天收盤價,也就是9點第一根K棒的「上一根1分K」

這樣子的設定可以達到我要的目的嗎~還是有什麼問題

因為我試了一下這個條件和用選股中心的回測功能,發現回測近2年,樣本數都3千多次交易,但只差了6次?

覺得有點奇怪,不知道是不是哪裡有問題

謝謝您!

XQ小幫手 發文於   2022/11/25

 Hello Tofu,

 

您這樣寫跟設定沒有問題,須注意XQ的 time 回傳的是Bar開始的時間,所以目前不會有秒數。(沒有秒頻率)

資料讀取筆數這樣設定沒有問題。

小幫手認為有差距可能是暫緩開盤的股票造成的,因為 condition2 只會在090000這根Bar作判斷。

您可以實際比對回測報表中兩邊成交商品差異即可確認。

發表回覆
Close