請問多單加碼問題

  •   158 
  • 最後發表   ahgi  2023 六月 19
ahgi 發文於   2023/06/15

請問一下我的程式語法的哪裡有錯誤?
1.當我多單要加碼時,列印出來的文字是上一筆的均價跟口數,新加進來的不會加進去,請問問題是在哪裡?
例如我早盤11:15那根K棒條件有成立,K棒結束後下一根K棒開始時11:45分時有下一口多單
但是Print(file("D:\Strategy\"), NumToStr(Date, 0), ",", NumToStr(time, 0)); 這個時間點卻是顯示上一根11:15分那根K棒的開始時間

2.目前均價跟目前部位都是顯示沒有加碼時的部位跟均價

我用30K

if  多單加碼條件成立 then begin

SetPosition(Position + 1, market,label:="多單加碼");

Print(file("D:\Strategy\"),"多單加碼 : ");

Print(file("D:\Strategy\"), NumToStr(Date, 0), ",", NumToStr(time, 0));  //  加碼的時間11:45,顯示時間為11:15

Print(file("D:\Strategy\"),"成交價 : ", NumToStr(close, 0));

Print(file("D:\Strategy\"),"目前均價 : ", NumToStr(filledAvgPrice, 0));

Print(file("D:\Strategy\"),"目前部位 : ", NumToStr(position, 0));

end;
請問是不是邏輯有錯誤?下單都沒問題,只是顯示出來的訊息有問題

附加文件

XQ小幫手 發文於   2023/06/19

 Hello ahgi,

 

請參考 SetPosition 的說明。

要在這次腳本運算完畢後,才會執行交易指令,將 position 的數值改變並送出委託。

故您print會是腳本執行當下的交易相關資訊,不會包含腳本運算結束後才送出的委託。

另外,XQ的time會是Bar開始的時間,若是要腳本運算當下本機端的時間可以使用 currenttime,要交易成交的時間可以參考 FilledRecordTime

發表回覆
Close