警示 觸發時間 疑問

  •   237 
  • 最後發表   VicHuang  2025 二月 18
VicHuang 發文於   2025/02/18

寫了一段出場警示,

內容是漲超過一個%數就出場,如果沒有就是在13:23:30~13:24:30出場,

觸發條件為1分鐘K,連續觸發(選擇單次觸發或是時間內只觸發一次,在%數警示時會太慢或漏掉)

實際跑的結果會從13:23:59 一路警示到 13:24:59,

並不會在13:24:30 停止,這是合理的嗎?

input: o1(132330,"出1");

input: o2(132430,"出2");

input: r1(7,"風控");

 

if 

c>getfield("參考價", "D")*(1+0.01*r1)

then ret=1

 

else if

o1<=time and time<=o2

then ret=1;

 

虎科大許教授 發文於   2025/02/18

//安控盡量用程式的變數控制。以下程式只觸發一次,與觸發模式的「啟動後只觸發一次」的效果相同。

//Time沒有秒鐘

//你選擇連續觸發,會在每個Tick都觸發訊號

if barfreq<>"Min" or barinterval<>1 then raiseRunTimeError("限用1分鐘");
if getinfo("isRealTime")=0 then return;
input: o1(132330,"出1");
input: o2(132430,"出2");
input: r1(7,"風控");
var: intraBarPersist hasOrdered(false);
if hasOrdered=false then
    if c>getfield("參考價", "D")*(1+0.01*r1) then
        begin
            ret=1;
            hasOrdered=true;
        end
    else 
        if currentTime>=o1 and currentTime<=o2 then
            begin
                ret=1;
                hasOrdered=true;
            end;

 

 

發表回覆
Close