警示腳本與交易腳本回測結果不同

  •   37 
  • 最後發表   Wu  2025 九月 15
Wu 發文於   2025/09/15

請問我使用警示腳本單純做進場條件回測,回測結果是正確的,但換到交易腳本時卻完全不一樣,

警示腳本如下:

condition1 = close < close[1] and close[1] < close[2] and close[2] < close[3] and close[3] > close[4] ;

 

if condition1 then ret=1;

交易腳本如下:

condition1 = close < close[1] and close[1] < close[2] and close[2] < close[3] and close[3] > close[4];

 

if position = 0 and filled = 0 and condition1 then setposition(1,market);

if IsFirstCall("Date") and position > 0 and filled > 0 and condition1 then buy(1,market);

 

另如果交易腳本不加上   IsFirstCall("Date")  這個函數名稱的話,即使回測選單勾選每日只進場1次的選項,回測出來還是會1天進場很多次,是因為我使用的是體驗版嗎?

再麻煩大神解惑,謝謝

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/09/15

用警示腳本回測與交易腳本回測的結果差異,可能原因:

(1)警示腳本回測出場需要勾選停利或停損趴數或最大持有時間,交易腳本沒有這些選項,所以沒有出場。

(2)警示腳本回測,日頻率可以不用勾選逐筆洗價,但交易腳本回測,日頻率則強迫逐筆洗價。

(3)若交易腳本加上IsFirstCall("Date"),則只會在每天的第一分鐘進場加碼。若沒加IsFirstCall("Date"),則每分鐘都會加碼一次。

Wu 發文於   2025/09/15

交易腳本我有試過加獲利5%的條件,出場是沒問題的,所以我的問題才會專注在進場,明明是一樣的進場條件,交易腳本回測出來的進場卻不一樣,才上來問看看,是不是因為體驗版的關係,或是我的程式碼有問題

Wu 發文於   2025/09/15

感覺問題出在體驗版強制日頻率逐筆洗價,請問如果直接使用付費版去跑交易腳本,是不是就會正常了呢?

虎科大許教授 發文於   2025/09/15

不論什麼版本,日資料都強迫逐筆洗價。

Wu 發文於   2025/09/15

謝謝教授回覆,再請問,如此情況,付費後實際跑自動交易腳本實際下單,會是與警示腳本的進場一樣或是與交易腳本一樣呢?

虎科大許教授 發文於   2025/09/15

其實,不論用警示腳本或交易腳本,你都可以使用變數控制,讓兩者的結果一樣。不過,由於警示腳本只能處理單邊交易(買進或賣出),基本上,我會建議實單交易用交易腳本,將進場與出場條件都寫在同一個策略。

發表回覆
Close