PDA

View Full Version : 需要有人對編程問題有所了解



韦拉塞希莉娅
11-14-2006 19:00, 07:00 PM
嗨,

我有兩件事情正在發生,如果有人知道它為什麼會發生以及如何過來,我會非常感激。

有時當我比較相等的值時,條件文件

例如:

/*我正在比較的值是動態的,但我打印出來並打印出條件結果,有時它會失敗*

val1 = 0.01;
val2 = 0.01;
/*有時如果條件失敗*
if(val1 == val2)
{
}

第二期:已解決

謝謝你的幫助。
Saaedb。

salayaygioki
05-15-2021 02:25, 02:25 AM
我認為第一個可能是一個mt bug。 meta報價論壇上有一篇與此類似的帖子。

sltayas
05-15-2021 03:46, 03:46 AM
這只是在黑暗中拍攝,但你不需要告訴它IsActiveLongPostion不等於什麼?不應該更像這樣嗎? if(var == 1){if(X!= IsActiveLongPostion var2 gt; = varCont){CloseAllSellTrades(); if(IsTradingTime()){BuySignalGenerated(); }}}

韦拉塞希莉娅
05-15-2021 05:07, 05:07 AM
這只是在黑暗中拍攝,但你不需要告訴它IsActiveLongPostion不等於什麼?不應該更像這樣嗎? if(var == 1){if(X!= IsActiveLongPostion var2 gt; = varCont){CloseAllSellTrades(); if(IsTradingTime()){BuySignalGenerated(); }}}
那是一個Bool

韦拉塞希莉娅
05-15-2021 06:27, 06:27 AM
我認為第一個可能是一個mt bug。 meta報價論壇上有一篇與此類似的帖子。
希望它不是,因為它使事情非常不一致。

Peqw887
05-15-2021 07:48, 07:48 AM
只是關於第一個的快速說明。我從不使用==比較雙重類型。最好定義一個閾值。例如,如果var1-var2 lt; = 0.001。雙類型參數通常非常棘手。

韦拉塞希莉娅
05-15-2021 09:09, 09:09 AM
只是關於第一個的快速說明。我從不使用==比較雙重類型。最好定義一個閾值。例如,如果var1-var2 lt; = 0.001。雙類型參數通常非常棘手。
Aparsai,實際上我正在做的事情(dblVal1 - dblVal2 gt; = ThreshHold),我也嘗試過更大的溢出然後等於兩個條件。我已經編程超過8年,所以我確定我沒有做一些愚蠢的事情。它要么是MT中的一個bug,要么是關於MT控制流程的一些我不知道的。這個問題是間歇性的。在每50次檢查中,一對夫婦可能會失敗。

Peqw887
05-15-2021 10:30, 10:30 AM
Aparsai,實際上我正在做的事情(dblVal1 - dblVal2 gt; = ThreshHold),我也嘗試過更大的溢出然後等於兩個條件。我已經編程超過8年,所以我確定我沒有做一些愚蠢的事情。它要么是MT中的一個bug,要么是關於MT控制流程的一些我不知道的。這個問題是間歇性的。在每50次檢查中,一對夫婦可能會失敗。
我可能非常挑剔,但MT4顯然對使用paranthesis非常敏感。我建議添加一對paranthesis如下:if((dblVal1 - dblVal2)gt; = ThreshHold)BTW,我根據您提供的信息放置了該註釋。我根據你輸入的內容做同樣的事情。祝你好運,Al

韦拉塞希莉娅
05-15-2021 11:50, 11:50 AM
我可能非常挑剔,但MT4顯然對使用paranthesis非常敏感。我建議添加一對paranthesis如下:if((dblVal1 - dblVal2)gt; = ThreshHold)BTW,我根據您提供的信息放置了該註釋。我根據你輸入的內容做同樣的事情。祝你好運,Al
括號在那裡,就像我說的那樣,它是間歇性的。在這裡,嘗試在一分鐘圖表上運行此警報(MathAbs,MathAbs(打開[1] - 關閉[1]),打開,打開[1],關閉,關閉[1],條件,MathAbs(打開[1] - 關閉[1])gt; = 1 * Point); if(MathAbs(Open [1] - Close [1])gt; = 1 * Point){Alert(Here);我正在做相同的測試,至少每30分鐘一次,它錯過了檢查。我的實際情況看起來像Val1 = 1.800 Val2 = 1.799 ThreshHold = 1 if(MathAbs(Val1 - Val2)gt; = MathAbs(ThreshHold * Point)){}這裡唯一的問題可能是,我正在設置ThreshHold值在EA的屬性的輸入選項卡中。

liyelafedo
05-15-2021 13:11, 01:11 PM
我認為第一個可能是一個mt bug。 meta報價論壇上有一篇與此類似的帖子。
不是錯誤,只是浮點。只是谷歌比較雙打更多信息。

韦拉塞希莉娅
05-15-2021 14:32, 02:32 PM
不是錯誤,只是浮點。只是谷歌比較雙打更多信息。
將Doubles規範化可以解決您所談論的問題。我正在規範它們。

阿梅丁贝内迪克特
05-15-2021 15:53, 03:53 PM
將Doubles規範化可以解決您所談論的問題。我正在規範它們。
一些想法 - 乘以10的冪10(如果你確切知道多少小數位並做你想做的整數運算。 - 將它轉換為字符串並比較你想要的部分

韦拉塞希莉娅
05-15-2021 17:14, 05:14 PM
一些想法 - 乘以10的冪10(如果你確切知道多少小數位並做你想做的整數運算。 - 將它轉換為字符串並比較你想要的部分
現在,我將它除以Point來解決這個問題。但是,如果知道這是MQL中的錯誤還是我遺漏了某些內容,那將會很高興。