SetPosition(0)執行時並沒有賣掉

  •   383 
  • 最後發表   GAMC  2025 三月 25
GAMC 發文於   2025/03/14

我有以下的程式碼:

If (Date = 20250110) And (Time = 114500) Then Begin

SetPosition(Position+1);

End;

If (Date = 20250110) And (Time = 124500) Then Begin

SetPosition(0);

End;
不知道為什麼SetPosition(0)呼叫了但沒有成功執行. (報告裡面只有一筆交易, 只有進場時間沒有出場時間)
版本:個人版3.15.02 241217

附加文件

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

會不會你的主頻率是60分鐘?而且沒有勾選逐筆洗價?若是這樣當最後一根K棒結束時(134500)才會洗價,而那時候已經收盤,所以不會送出委託單。

  • 按讚來自於
  • 70390993
XS小編 發文於   2025/03/18

Hello GAMC,

 

因為您回測設定的委託價格不論進出場都是觸發價+1檔,故賣出委託時會因為沒有優於當下的價格而不會成交。

您改成市價單或是觸發價-1檔的話就會成交 (參考附圖)。

附加文件

  • 按讚來自於
  • 70390993
GAMC 發文於   2025/03/20

改成-1有用. 我發現改成SetPosition(0, MARKET)也有用. 但兩者都變成44分或59分就開始交易, 這是合理的嗎? 腳本不是應該等K-Bar跑完才執行?

虎科大許教授 發文於   2025/03/20

60分鐘頻率,非逐筆洗價,你勾選了觸發即判斷成交,回測顯示11:44進場,12:44出場。進出場的時間顯示錯誤,這是系統的問題。正確的進出場時間11:45進場,12:45出場。若你加上Print(date,time,position);可發現顯示的進出場時間其實是正確的。這個問題是系統顯示時間錯誤,邏輯應該沒有問題。

  • 按讚來自於
  • 70390993
XS小編 發文於   2025/03/25

Hello GAMC,

 

小編補充,勾選觸發即判斷成交的話,回測成交會標示在觸發成交的當根K棒上。

而XQ的K棒標示的時間是K棒開始的時間。

原本此設定下會顯示K棒結束的時間並標示在下一根K棒上,但有使用者反應會被誤導 (例如標示在成交量為0的K棒上,或是標示在K棒不存在的價格上)。

故後來調整成標示在觸發成交的當根K棒上。

發表回覆
Close