條件判斷

程式交易,就是一連串的判斷。
關於程式交易非常重要的部分,但也沒有這麼複雜。

  • 達到條件,買進 or 賣出。
  • 虧損特定點數,停損 or 凹單。
  • 獲利特定點數,停利 or 加碼。

if 條件判斷在非零值,會執行下面區段的程式碼。

在輸出的log裏面,false0 就沒有執行。

字元 A 也是非零值,以下程式就會被執行,當有多行程式碼需要執行時,需要用{ }包成區段,在這裡面的程式碼就都會執行。

關係運算 + if-else

  • > 大於
  • < 小於
  • == 等於
  • != 不等於

以下示範透過兩個變數條件判斷

A大於B的情況,A也不等於B。

改變A變數,A小於B,A也不等於B。

改變A變數讓兩者相等
if-else 條件判斷會依序執行,if (A > B) 不成立,換下一個 else if ( A < B )不成立,最後就執行else。

等於跟不等於是相反的,可以用if-else改寫,等於判斷如果為false那就是不等於會走else區段。

變成賦值操作

如果只有一個 會變成賦值操作,放在if判斷裡面也是可以,但是會跟預期結果不一樣,可能會花很多時間找這個小小的錯誤。

編譯結果雖然沒有error,但是有warnings警告 expression not boolean 表達式非布林值,正視並修正每一個warnings,程式可以執行不代表沒有邏輯上的錯誤。

原本 X=3, Y=5 在做等於判斷的時候不會成立,因為少打一個變成賦值操作,跟預期結果不一樣,然後X變數也被賦值成5。

在if判斷式賦值之後會變成判斷 if ( X ),因為X為非零值所以會執行以下的程式碼。

邏輯運算

  • || OR (其中一個成立為True)
  • && AND (兩個都成立才為True)

OR 最小化計算

OR前後在做真假值判斷時,如果前面為True,此時最終結果就是True,後面的部分也就沒有必要求值。
=賦值優先權比較低,用( )可以讓他優先執行避免語法錯誤,為了驗證OR的最小化計算才在If裡面使用,這是錯誤的示範,請一定不能在if判斷裡面做賦值

  • >= 大於或是等於
  • <= 小於或是等於

A=3, B=5 的情況

A=5, B=5 的情況

A=9, B=5 的情況

提供程式讓大家研究,需放在Scripts資料夾。
條件判斷.mq4

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料