Der Algorithmus für eine solche Bedingung ist wie folgt implementiert, hier ist der Filter selbst:
//================фильтр - начало схождения ===================if (FILTER_ ) { //если выключатель фильтра включен//------------------------------------------------ //задаем вычисление ценовых линий на втором бареdouble MA_11= (iMA(Symbol_1,Period(),per2,0,ma_method,Price,2)-
iMA(Symbol_1,Period(),per1,0,ma_method,Price,2)) ;
double MA_21= (iMA(Symbol_2,Period(),per2,0,ma_method,Price,2)-
iMA(Symbol_2,Period(),per1,0,ma_method,Price,2)) ;
double ДЕЛЬТА_MA_2 = MathAbs(MA_11 - MA_21);//разность между ценовыми линиями на 2 баре//if (ДЕЛЬТА_MA_2 >= ДЕЛЬТА_MA) // если линии начинают сходится, разрешаем вход
Trade_Filter2=true; else Trade_Filter2=false;
//-------------------------------------------------
} // выключатель фильтра включен//================== конец блока 2-го фильтра ======================
Und hier ist die eigentliche Zugangsbedingung:
if ( TradeDOWN==true && .... ) { //если условия соответствуют заданным if (Trade_Filter2==true || ! FILTER_ ) { // фильтр включен/выключен
..... открвываем позиции: продаем первый инструмент и покупаем второй
Aber der Expert Advisor scheint die Filterbedingung nicht zu sehen! Sie eröffnet weiterhin Positionen, ohne darauf zu achten
if (Trade_Filter2==true || ! FILTER_ ) { .....
Ich verstehe nicht, warum. Wiederholte Überwachung der Online-Eröffnung von Positionen. Aber der Filter funktioniert nicht! Der Expert Advisor sieht sie nicht. Bitte sagen Sie mir, wo es falsch ist?
Und noch eine Frage. Was ist der richtige Weg, um in globalen Variablen setzen (es ist die erste Option im Moment)
bool Trade_Filter2=0; oder einfach bool Trade_Filter2;
Ich stelle visuell fest, dass die Linien immer noch auseinanderlaufen und der Kommentar "Filter verbietet die Eingabe" anzeigt! Aber die Eingabe wird trotzdem durchgeführt - der EA beachtet den Filter nicht.
Die Dimensionalität der Werkzeuge ist die gleiche, oder (bei unterschiedlicher Dimensionalität) - programmatisch mit Hilfe von Koeffizienten auf die gleiche reduziert (dies wird im obigen Code nicht gezeigt, um ihn nicht zu überladen). Das ist gut so!
Deaktivieren Sie Ihren Kommentar für eine Weile und versuchen Sie, ihn von verschiedenen Stellen aus auszugeben. Von der Überprüfung der Filterbedingungen bis hin zur Verwendung des Filters. Auf diese Weise finden Sie die Linie, an der die Verzerrung auftritt.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Weiterführung der Frage:
Der Algorithmus für eine solche Bedingung ist wie folgt implementiert, hier ist der Filter selbst:
Und hier ist die eigentliche Zugangsbedingung:
Aber der Expert Advisor scheint die Filterbedingung nicht zu sehen! Sie eröffnet weiterhin Positionen, ohne darauf zu achten
if (Trade_Filter2==true || ! FILTER_ ) { .....
Ich verstehe nicht, warum. Wiederholte Überwachung der Online-Eröffnung von Positionen. Aber der Filter funktioniert nicht! Der Expert Advisor sieht sie nicht. Bitte sagen Sie mir, wo es falsch ist?
Und noch eine Frage. Was ist der richtige Weg, um in globalen Variablen setzen (es ist die erste Option im Moment)
bool Trade_Filter2=0; oder einfach bool Trade_Filter2;
die Fortführung der Frage:
...
Geben Sie MA_11, MA_21, DELTA_MA_2 in Coment() aus und sehen Sie, was dort steht. Kommentar() eingefügt nach double DELTA_MA_2...
Der MACD wird aus zwei verschiedenen Zeichen verglichen, sie können sehr unterschiedliche Dimensionen haben.
Es gibt einen Kommentar. Der Kommentar ist auf "Filter erlaubt (oder verweigert) die Eingabe" eingestellt), etwa so:
Auf diese Weise hergestellt:
Ich stelle visuell fest, dass die Linien immer noch auseinanderlaufen und der Kommentar "Filter verbietet die Eingabe" anzeigt! Aber die Eingabe wird trotzdem durchgeführt - der EA beachtet den Filter nicht.Die Dimensionalität der Werkzeuge ist die gleiche, oder (bei unterschiedlicher Dimensionalität) - programmatisch mit Hilfe von Koeffizienten auf die gleiche reduziert (dies wird im obigen Code nicht gezeigt, um ihn nicht zu überladen). Das ist gut so!
Aber double DELTA_MA_2, MA_11, MA_21- werden unter f-i Comment() angegeben
Aber Trade_Filter2 wird in globalen Variablen deklariert! Also, ich denke, in dem Kommentar ist alles richtig gemacht!
Guten Tag. Nach dem heutigen Update von mt4 kann ich den EA-Code nicht mehr kompilieren. Der Compiler gibt 30 seltsame Fehler aus.
Können Sie mir bitte sagen, warum in den folgenden Zeilen plötzlich Fehler auftreten
on_off' - nicht deklarierter Bezeichner Exp_ARBITR_2Line_Spread_002Mod.mq4 125 35Code:
on_off4' - nicht deklarierter Bezeichner Exp_ARBITR_2Line_Spread_002Mod.mq4 140 47
on_off41' - nicht deklarierter Bezeichner Exp_ARBITR_2Line_Spread_002Mod.mq4 142 47
Und wie kann man sie korrigieren?
Lässt es sich so kompilieren?
Aber es ist besser so:
Wenn ich richtig telepathiert habe, sollte dies funktionieren