請問有三個條件ABC要依序滿足,該怎麼寫程式

  •   162 
  • 最後發表   Peter888  2023 五月 17
Peter888 發文於   2023/05/15

我有ABC三個條件要依照順序滿足,請問程式要怎麼寫,謝謝

排序方式: 標準 | 最新
Peter888 發文於   2023/05/15

我寫出ABC三個條件後,變成只要三個都滿足就跳出警示了

條件A 開盤後往上漲

條件B 跌破開盤

條件C 低點反彈一半

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

 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。

 

Peter888 發文於   2023/05/16

謝謝小幫手的回覆

我使用你教的撰寫方式,寫出來去回測也是不行(可能是我寫不夠完整)

假設當日開盤後條件發生的順序是

BCA的時也會符合條件,不會等到ABS依序出現才警示

假設開盤後的數據如下

開盤價60

60,59.9(完成條件B),59.8,59.9(完成條件C),60,60.1(完成條件A),這時候上面三個條件就會一次通過了

 

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

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);。

發表回覆
Close