Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 489
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo. Ich möchte einen EA für MT4 schreiben, eine seiner Aufgaben ist es, Fibo-Linien zu zeichnen, auf M1, in einer Stunde. Das heißt, um 11.00 Uhr sollte er Linien im Intervall von 10.00 bis 10.59 Uhr zeichnen, wobei er sich auf die Höchst- und Tiefstwerte konzentriert. Ich habe verschiedene Methoden ausprobiert und gepostet, was die letzte war. Sie können den Code wahrscheinlich kürzen, um die Ebenen zu zeichnen.Das Problem ist, dass er die Linien nicht in den vorgegebenen Bereich zeichnet.
int timemin=TimeMinute(Time[59]==0);
int timehour=TimeHour(Time[1] && TimeMinute(Time[0]));
int timemin1=ZeitMinute(Zeit[0]==0);
int timehour1=ZeitStunde(Zeit[1] && ZeitMinute(Zeit[59]))
int max=iHighest(Symbol(),1,MODE_HIGH,60,timehour);
int min=iLowest(Symbol(),1,MODE_LOW,60,timehour);
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));
double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1));
ObjectDelete("FiboLevels"); //------New level
if (barup)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
if (bardn)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed);
}
double f1=ObjectGet("FiboLevels",OBJPROP_PRICE1); //Selektiert den ersten Preis
double f2=ObjectGet("FiboLevels",OBJPROP_PRICE2); //Wählt den zweiten Preis aus und zeichnet
double Diff=f2-f1;
string a11=DoubleToStr(f2-Diff*0.0,Digits);
string a12=DoubleToStr(f2-Diff*0.236,Digits);
string a13=DoubleToStr(f2-Diff*0.382,Digits);
string a14=DoubleToStr(f2-Diff*0.50,Digits);
string a15=DoubleToStr(f2-Diff*0.618,Digits);
string a16=DoubleToStr(f2-Diff*1.0,Digits);
bool a1=ObjectSet("FiboLevels",OBJPROP_FIBOLEVELS,6);
bool a2=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+0,0.0);
bool a3=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+1,0.236);
bool a4=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+2,0.382);
bool a5=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+3,0.50);
bool a6=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+4,0.618);
bool a7=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+5,1.0);
bool a111=ObjectSetFiboDescription("FiboLevels",0, "0.0%");
bool a122=ObjectSetFiboDescription("FiboLevels",1, "23.6%");
bool a133=ObjectSetFiboDescription("FiboLevels",2, "38.2%");
bool a144=ObjectSetFiboDescription("FiboLevels",3, "50.0%");
bool a155=ObjectSetFiboDescription("FiboLevels",4, "61.8%");
bool a166=ObjectSetFiboDescription("FiboLevels",5, "100.0%");
Hallo. Ich möchte einen EA für MT4 schreiben, eine seiner Aufgaben ist es, Fibo-Linien zu zeichnen, auf M1, in einer Stunde. Das heißt, um 11.00 Uhr sollte er Linien im Intervall von 10.00 bis 10.59 Uhr zeichnen, wobei er sich auf die Höchst- und Tiefstwerte konzentriert. Ich habe verschiedene Methoden ausprobiert und gepostet, was die letzte war. Sie können den Code wahrscheinlich kürzen, um die Ebenen zu zeichnen.Das Problem ist, dass er keine Linien in einem bestimmten Bereich zeichnet.
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1));
ObjectDelete("FiboLevels"); //------Neues Niveau
wenn (barup)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max];
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen);
}
wenn (bardn)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed);
}
ist das kürzer? bool barup=... WindowRedraw(); wird trotzdem ausgeführt - aus if herausgenommen
es kann auch kürzer sein ... siehe meine Datei
Bitte geben Sie den Code korrekt ein.
Es ist sogar noch deutlicher:
Leute, warum werden meine Aufträge bei jedem Tick geöffnet? Können Sie mir sagen, wie ich mich auf die Stange konzentrieren kann?
Leute, warum öffnen sich meine Aufträge mit jedem Tick? Können Sie mir sagen, wie ich mich auf die Stange konzentrieren kann?
Nach den in der ATS beschriebenen Bedingungen gibt er grünes Licht für die Öffnung, also öffnet er.
In diesem Fall gibt es eine Vielzahl von Lösungen. Es kommt ganz darauf an, was für Sie am besten geeignet ist.
Wir können festlegen, dass der nächste Auftrag nur dann eröffnet werden soll, wenn sich der Kurs um N Punkte vom letzten Auftrag entfernt hat. Sie können beantragen, nicht mehr als einen Auftrag auf 1 Bar zu eröffnen. So und so weiter und so fort.
Schreiben Sie die Bedingungen auf, die Sie benötigen, und wenden Sie sie auf Ihre Tests an.
Gemäß den in der ATS beschriebenen Bedingungen eröffnet sie den Auftrag.
In diesem Fall gibt es eine Vielzahl von Lösungen. Es kommt ganz darauf an, was für Sie am besten geeignet ist.
Wir können festlegen, dass der nächste Auftrag nur dann eröffnet werden soll, wenn sich der Kurs um N Punkte vom letzten Auftrag entfernt hat. Sie können beantragen, nicht mehr als einen Auftrag auf 1 Bar zu eröffnen. So und so weiter und so fort.
Schreiben Sie die Bedingungen auf, die Sie benötigen, und wenden Sie sie auf Ihre Tests an.
Stattdessenif( iTime(Symbol(),PERIOD_M1,0)){ Was muss ich schreiben, um einen Auftrag auf einem Balken zu eröffnen?
Die Frage wurde schon oft gestellt und dementsprechend oft beantwortet.Über eine Suche, z.B. hier
Die Frage wurde schon oft gestellt und dementsprechend oft beantwortet.Über eine Suche, z.B. hier
Ich danke Ihnen!
Guten Tag!
Ich habe einen EA, der bestimmte Berechnungen durchführt. Es werden verschiedene mathematische Operationen, Arrays und Schleifen verwendet. Es speichert das Ergebnis in einer Datei. Es muss alles wieder von vorne beginnen, nachdem es alle Aktionen durchgeführt hat. Es hat alle Berechnungen einmal durchgeführt und hängt sich dann zum zweiten Mal auf, ohne etwas zu tun. Können Sie mitteilen, ob es notwendig ist, Variablen auf Null zu setzen, Arrays zu löschen oder etwas anderes, bevor eine neue Berechnung gestartet wird?
Guten Tag!
Ich habe einen EA, der bestimmte Berechnungen durchführt. Es werden verschiedene mathematische Operationen, Arrays und Schleifen verwendet. Es speichert das Ergebnis in einer Datei. Es muss alles wieder von vorne beginnen, nachdem es alle Aktionen durchgeführt hat. Es hat alle Berechnungen einmal durchgeführt und hängt sich dann zum zweiten Mal auf, ohne dass eine weitere Aktion erfolgt. Können Sie mitteilen, ob es notwendig ist, Variablen auf Null zu setzen, Arrays zu löschen oder etwas anderes, bevor eine neue Berechnung gestartet wird?