請問小幫手,在策略雷達回測裡的來源用選股,回測檔數和自己寫的log不同

  •   146 
  • 最後發表   小尼  2023 十月 02
小尼 發文於   2023/09/14

小幫手 您好, 

在之前的問答中,小幫手有提到可以在策略雷達回測時,將來源選 "選股",如此來源股票就可以是選股策略篩出的結果。

我因為回測需要,參考XQ的同仁分享的XS語法,可以在出場策略裡用print的方式,自行記錄回測中已進場的庫存資料,如進場日、價格等,以便使用更複雜的出場策略。

這個XS語法,在以往單純用策略雷達回測是不會有問題,但來源用成選股策略後,就會發生結果和系統回測結果的股票不同。

小幫手可以參考附件重跑及比對結果。

請問小幫手是什麼原因呢? 若是XS語法問題,我要怎麼改,才能讓2者結果相同?

謝謝。

 

ps. excel檔的最後一個sheet是print出的log,它和前一個sheet (系統結果) 不同。

附加文件

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

Hello 小尼,

 

小幫手不太確定您的問題為何。

警示腳本回測時要先經過選股策略篩選在當日符合的商品,才會用警示腳本判斷是否要進場。

 

但這並不代表當日沒篩選出的商品雷達就不會執行,因為腳本撰寫的方式 (ex. 用到前期值) 可能會導致腳本若有一天計算一天沒計算的話會出錯。

所以只要在回測區間內選股有篩選出來的股票,警示腳本都會運算其整個區間的資料,接著再搭配選股各天的結果判斷交易情況。

 

所以是可能發生print出來的結果和回測執行的交易資訊不同的狀況,這是因為警示腳本有運算並符合條件,但選股當日沒選出。

 

至於要如何修改腳本才能讓兩者相同,就小幫手所知應該是沒辦法辦到。

除非選股條件有辦法寫入警示腳本當中判斷。

小尼 發文於   2023/09/22

小幫手 您好, 

依照您的說明,在策略雷達的回測來源選選股的腳本,它的整個執行流程是那一種呢? 若都不是,能不能請幫忙簡述一下:

<流程一>

1. 先執行策略雷達的條件,篩出回測日期範內,每一天符合條件的股票,例如20230103有4檔、20230104有2檔.....

2.用上述篩出的股票+日期當來源,去執行那一天有沒有符合選股的條件。

3.有符合的才留下,最後顯示在回測結果

<流程二>

1. 先執行選股腳本的條件,篩出回測日期範內,每一天符合條件的股票,例如20230103有4檔、20230104有2檔.....

2. 用上述篩出的股票+日期當來源,去執行那一天有沒有符合策略雷達的條件。

3.在回測畫面留下符合策略雷達腳本的結果

<流程三>

1.選股腳本執行一次,得到日期範圍內每天的結果

2.策略雷達執行一次,得到日期範圍內每天的結果

3.把2個結果集做交集,交集後的結果留在回測結果內

 

另外若無法真的整合股票腳本的結果進來到警示腳本中使用,那麼同時購買股票模組 + 警示模組不就沒有作用了?

畢竟人工分開看會很累....

XQ小幫手 發文於   2023/10/02

Hello 小尼,

 

小幫手簡單舉個例,假設您回測2022年一年的資訊,並使用選股策略串接策略雷達,則運作方式為:

1.選股策略會先運算 2022 年一年中每日符合條件的商品,也會知道2022年一共有哪些商品被篩選出來。

2.策略雷達會運算2022年所有有被篩選出來的商品。

3.以選股每日符合條件的商品和策略雷達運算結果相比,兩者同時符合的才會進場。

真要說的話,和流程三比較像,但策略雷達只會執行回測區間內選股篩選出來的商品,而不是所有商品。

 

策略雷達之所以所有選股篩選出來的商品都需要運算整個區間,是因為腳本中的變數或指標會需要前期值或受前期值影響。

所以策略雷達內商品print出的資訊在回測中並不一定會進場,因為該天選股選出的商品可能沒有包含該商品。

發表回覆
Close