盤中for程式碼幫忙修改

  •   823 
  • 最後發表   Pierce  2019 一月 04
Pierce 發文於   2019/01/02

 

 

1. 1K腳本:我希望1分K跌破前低累計3次再開始,但她根本沒有執行我要的想法,如何修改? 

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

for n=1 to 30 begin

    value1=lowest(low[1], n-1);

if  value1>close[n-1]

then count=count+1;

if count>=3 then break;

end;

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/01/02

Hi Pierce,

您好,小幫手無法編譯成功此程式碼,

故請您提供完整的程式碼,以利小幫手查看問題的原因,謝謝。

Pierce 發文於   2019/01/02

variable: n(0);

variable: count(0);

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

for n=1 to 30 begin

value1=lowest(low[1], n-1);

if  value1>close[n-1]

then count=count+1;

if count>=3 then break;

end;

if close < close[1] then ret = 1 ;

end;

 

1K腳本:"我希望1分K跌破前低累計3次再開始",跑是可以跑,但警示完全錯誤,完全沒有跌破3次前低才開始跑(直接就開跑了),不知是不是盤中不適合用for迴圈,還是怎樣哪裡有誤,或是能給我其他寫法的程式碼。 感謝

XQ小幫手 發文於   2019/01/03

Hi Pierce,

完全沒有跌破3次前低才開始跑(直接就開跑了)

您好,因為您撰寫的跌破前低累計 3 次沒有納入 if 判斷觸發警示中,故只要

(GetField("開盤價","D")/GetField("收盤價","D")[1])-1 < 0.01 且 close < close[1] 就會觸發警示,


 

還是怎樣哪裡有誤

猜想您應該是盤中執行才能開始計算累計3次,若是的話需撰寫 getinfo("IsRealtime") 搭配 if 避開盤中時段,

另外,跌破前低累計 3 次應該沒有包含昨日,故需要撰寫語法避開,

還有,「跌破」應該要用 Cross Below 函數語法表示,

最後,應該不需要撰寫 for 迴圈。

 

修改後的警示腳本範例如下:

variable: count(0);

value99 += 1;

if date <> date[1] then begin
    count = 0;
    value99 = 0;
end;

if  getinfo("IsRealtime") <> 1 or value99 < 1 then begin 
    print(date,time,"ReturnLog",getinfo("IsRealtime"),"<> 1",value99,"value99 < 1");
    return; 
end;

if (GetField("開盤價","D")/GetField("收盤價","D")[1])-1 < 0.01 then begin 
    if close cross below low[1] then count += 1;
    if count >= 3 and close < close[1] then ret = 1;
end;

print(date,time,(GetField("開盤價","D")/GetField("收盤價","D")[1])-1,"< 0.01",count,"count>=3",close,close[1],"close < close[1]",value99,">= 30");

 

範例策略雷達匯出檔如附檔,以上方向供您參考,謝謝。

附加文件

Pierce 發文於   2019/01/03

謝謝協助,有點高深,想請問一下用 cross函數 跟 直接用大於小於來判定,對程式來說有什麼差別?

XQ小幫手 發文於   2019/01/04

Hi Pierce,

想請問一下用 cross函數 跟 直接用大於小於來判定,對程式來說有什麼差別?

您好,在 Cross below 函數搜尋網有相關說明,

如果僅用大於(或小於)來判定,當判斷數值一直都是大於(或小於),這樣條件也會觸發,

 

或許您可以直接撰寫看看,來對照差異為何,

以上方向供您參考,謝謝。

發表回覆
Close