您好,我在自動交易腳本(XS語法)裡遇到一個問題,想請教兩個技術問題。
問題一,關於 filledAvgPrice 在回測模式下的計算方式。
我在腳本裡用 filledAvgPrice(目前未平倉成本)來設定停損比較基準,大致邏輯是:當 Filled 小於0(持有空單)時,如果 High 大於等於 filledAvgPrice 加上停損點數,或是 Close 大於等於 filledAvgPrice 加上停損點數,就出場。
在即時模擬單測試時,filledAvgPrice 顯示得很正確穩定,每次進場都會對應到當時的真實成交價,例如某次空單進場40115,後續每次都穩定顯示40115。
但同一段程式碼拿去回測,交易次數會從正常的300筆左右暴增到1500筆以上,勝率跟獲利因子都大幅惡化,持倉時間也異常縮短。移除這段改回別的判斷方式後,回測數字就恢復正常。
想請教,filledAvgPrice 這個欄位在回測模式底下,代表的是目前這一筆持倉的平均成本,還是有可能是從回測開始至今、所有累積交易的某種平均值?這兩種模式下,這個欄位的計算邏輯是否不同?
問題二,有沒有語法可以判斷目前是回測模式還是即時連線模式。
我想讓同一份腳本,在回測跟即時模式下,對停損判斷使用不同的邏輯路徑,請問 XS 語法裡有沒有類似判斷目前程式是在跑歷史回測、還是在跑即時盤中資料的函數?
謝謝
2 評論