拿著一粒鹽,因為我只在記事本中查看了一分鐘的代碼...但這看起來很可怕插入代碼(i = 0; ilt; limit; i ){if(ValSum#91; i#) 93; gt;(高#91;我#93; 低#91;我#93;)/2 ValSum#91; i 1#93; lt;(高#91; i 1#93; 低#91; i 1#93;)/2){MainVal#91; i#93; =高#91;我#93 ;; }否則if(ValSum#91;我#93; LT;(高#91;我#93; 低#91;我#93;)/2 ValSum#91; i 1#93; gt;(高# 91; i 1#93; 低#91; i 1#93;)/2){MainVal#91; i#93; =低#91; i#93 ;;其他MainVal#91;我#93; = EMPTY_VALUE;首先你測試是否有東西和其他東西是真的(我認為這是你的“購買信號”)。如果不是這樣,則對相反類型的信號進行2次測試。如果然後失敗你就會設置empty_value。壞壞壞壞壞壞壞碼。第一個測試有2個失敗的機會,與第二個測試相同,然後你在這個可怕的結構上標記最終'我放棄'的價值。 '如果那麼其他如果那麼其他如果那麼'其他'類型的連續結構是非常糟糕的。不要'否則'...將概念分成邏輯塊。插入代碼如果{} else {if somethingnew {} else {}}更容易看到哪個部分屬於哪些測試以及評估將自己解決的位置。再次,不要'如果',否則。另外,請在評估中使用適當的包圍。不要運行測試...'if(a lt; b c = d || f gt; g x * y = 5 - 3)'。如果(((a lt; b)(c == d))||((f>; g)(x * y = 2)){}通常有一個定義的操作順序來指示順序a將對一組操作進行評估,但沒有理由依賴該規則(這可能會在語言之間發生變化),這也使得閱讀評估的具體內容以及它們如何組合在一起變得更加困難。如果是塊,則不要運行,也不要運行評估或分配。你應該將代碼重新寫入這樣的代碼,這樣就不太可能出現排版錯誤並且可讀性更高然後你可以從那裡找出實際問題是什麼。插入代碼double test1,test2; for(i = 0; ilt; limit; i ){test1 =(High#91; i#93; Low) #91;我#93;)/2; test2 =(高#91; i 1#93; 低#91; i 1#93;)/2; MainVal#91; i#93; = EMPTY_VALUE; if((ValSum#91; i#93; gt; test1)(ValSum#91; i 1#93; lt; test2))MainVal#91; i#93; =高#91; i#93 ;;如果( (ValSum#91; I#93; LT; test1)(ValSum#91; i 1#93; gt; test2))MainVal#91; i#93; = Low#91; i#93 ;;編輯:可能為什麼代碼看起來如此廢話......但為什麼在第一個帖子附件中有明顯的DECOMPILED MQL?你是小偷嗎?