紀錄自動交易的委託價

  •   153 
  • 最後發表   樂兒  2023 六月 05
樂兒 發文於   2023/05/31

小幫手您好,辛苦了

想請教一個問題,在自動交易,一分K,逐筆洗價,並且設定當日最多只進場一次的前提下,假設送出委託的條件如下:

 

condition1=~~~~~~~~~~;

 

 if condition1 

    then begin

 if GetField("開盤價","D")<= GetField("收盤價","D")[1] then setposition(-1, close*1.01);

 if GetField("開盤價","D") > GetField("收盤價","D")[1]   then  setposition(-1, close*1.035);

    end;

--------

當條件一成立,依照當日開盤價 高於或低於等於平盤。送出不同的委託價

那麼,想在送出委託的同時,記錄委託價以供後續語法引用 (無論成交與否都要紀錄委託價)

因為設定當日最多只進場一次,所以合乎條件的每檔股票,也只會有一個當日委託價

請問小幫手,我該如何使用 參數或變數,在送出委託的同時,獲得委託價的紀錄呢?

或是.. 因為當日最多只進場一次,成交發生時,記錄成交價供後續語法引用,好像也行得通

煩請小幫手指點,非常感謝

 

非常感謝您幫忙

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

 Hello 樂兒,

 

您可以在下單的時候用 intrabarpersist 變數紀錄委託價,舉例來說:

var: intrabarpersist entryPrice(0);

condition1 = ...進場條件...;

 

if condition1 and filled <> -1 then begin

    if GetField("開盤價","D")<= GetField("收盤價","D")[1] then begin

        setposition(-1, close*1.01);

        entryPrice = close*1.01;

        end

    else if GetField("開盤價","D") > GetField("收盤價","D")[1] then begin

        setposition(-1, close*1.035);

        entryPrice = close*1.035;

        end;

    end;

 

但既然您每日最多只會進場一次,那麼 filledavgprice 的成本價就會是進場的價格,在限價單的狀況下應該可以直接使用 (會和委託價相同)。

發表回覆
Close