我有ABC三個條件要依照順序滿足,請問程式要怎麼寫,謝謝
請問有三個條件ABC要依序滿足,該怎麼寫程式
- 162
- 最後發表 Peter888 2023 五月 17
我寫出ABC三個條件後,變成只要三個都滿足就跳出警示了
條件A 開盤後往上漲
條件B 跌破開盤
條件C 低點反彈一半
Hello Peter888,
如果要依序滿足的話,可以用如下的方式撰寫:
if 條件A then condition1 = True;
if condition1 and 條件B then condition2 = True;
if condition2 and 條件C then begin
3個條件依序滿足後要執行的腳本;
condition1 = False;
condition2 = False;
condition3 = False;
end;
這種寫法會讓條件A滿足後condition1就維持在True,只到條件B和條件C也依據滿足後才會全部一起變回False。
謝謝小幫手的回覆
我使用你教的撰寫方式,寫出來去回測也是不行(可能是我寫不夠完整)
假設當日開盤後條件發生的順序是
BCA的時也會符合條件,不會等到ABS依序出現才警示
假設開盤後的數據如下
開盤價60
60,59.9(完成條件B),59.8,59.9(完成條件C),60,60.1(完成條件A),這時候上面三個條件就會一次通過了
Hello Peter888,
如果您只有限定當天的話,請記得要每日開盤時重置condition1 ~ condition3。
像是:
if issessionfirstbar then begin;
condition1 = false;
condition2 = false;
condition3 = false;
end;
不然的話只要之前有符合過條件A的話,condition1就會一直維持在True,就算換日也是。
另外,您可以將condition1 ~ condition3 印出,這樣就可以看是否有照順序達成,像是 print(date, time, condition1, condition2, condition3);。
4 評論