過今高停損的寫法

  •   300 
  • 最後發表   Aching  2022 三月 25
Aching 發文於   2022/03/23

您好,我想要寫一個當沖交易的腳本(出場),邏輯是過今高就停損,

執行頻率是一分K;

我目前的寫法是:

variable:high_day(0); //當天目前最高價

high_day = GetQuote("DailyHigh");

if Filled < 0 then begin //手上有部位

if close > high_day  then begin  //過高 出場

SetPosition(0 , MARKET);

end;

我發現,close > high_day 永遠不會成立,

因為 high_day = GetQuote("DailyHigh"); 

high_day會一直被更新為今日最高價

又我不知道過高會不會來,且何時會來,如果往前取high[1、2、3、4.....]
不知道要取幾根?

請問有什麼建議的寫法嗎?

還是有什麼寫法可以看9點開始到當下前一根K棒的最高價?

舉例目前是9:19:20,9:20的K棒還沒畫完,我想要取9:00~9:19的最高點

接著判斷9:20的close是否有高於9:00~9:19的最高點

謝謝

XQ小幫手 發文於   2022/03/25

Hello Aching,

 

小幫手會建議您最簡單的方法是在進場的時候用變數將當下當日的最高點記錄起來,這樣該變數就會維持在進場那時的當日最高價。

舉例來說:

condition1 = 進場條件;

if condition1 and position = 0 and filled = 0 then begin

    value1 = getfield("High", "D");

    setposition(-1, market);

    end;

if position < 0 and filled < 0 and value1 <> 0 and close > value1 then begin

    value1 = 0;

    setposition(0, market);

    end;

這樣value1就會是進場時的當日最高價。

如果您是用逐筆的話,會建議您另外宣告變數並加上intrabarpersist

發表回覆
Close