Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 411
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
Ich habe angefangen, Arrays zu studieren.
Ich habe eine Pro-Order-Funktion mit Arrays geschrieben, 3 Arrays = 0 Kauf, 1= Verkauf, 2= Summe der Kauf- und Verkaufstransaktionen.
Dann schrieb ich eine Bedingung zu kaufen, wenn ( die erste Bedingung & & array [0] == 0 )dann öffnen wir einen Kauf
und beim Verkauf, wenn ( die erste Bedingung && array [1]== 0) dann eröffnen wir eine Verkaufsposition.
Aber der Tester gibt einen Fehler aus und der Test bricht ab. Wo liegt das Problem? ( Fehler " array exit " )
Das bedeutet, dass der Index, den Sie ansprechen, außerhalb des Array-Layouts liegt. Zum Beispiel, wenn array[ 3 ]; können Sie nur Elemente von 0 bis 2 ansprechen. Überprüfen Sie Ihren Code.
Eine andere Möglichkeit ist, dass Sie das Array nicht partitioniert haben (mit ArrayResize()), sondern versuchen, auf einige seiner Elemente zuzugreifen.
Code...
Versuchen Sie, es selbst herauszufinden. Der Tester sollte angeben, in welcher Zeile und an welcher Stelle in der Zeile der Fehler aufgetreten ist.
o_oops wusste nicht, dass das Terminal auch dort stochert, wo der Fehler ist, beim ersten Mal bin ich auf einen kritischen Fehler gestoßen.
Es spuckt auf sie.
Bitte teilen Sie mir mit, wie ich überprüfen kann, wie der Indikator funktioniert.
Die Idee ist die folgende: Wenn der EA einen neuen Balken bildet, ruft er den Indikator auf, aber der Indikator hat in diesem Moment keine Daten und ich erhalte die Daten des vorherigen Balkens (er hatte keine Zeit zu berechnen).
Wie Sie dieses Problem vermeiden können. Außerdem ist im Strategy Tester alles in Ordnung. Bei der Demo geht es entweder gut oder gar nicht!
Das ist alles, es ist nicht relevant. Gelöst.
Hallo, ich habe ein Anfängerproblem...
Ich kann das System nicht dazu bringen, den letzten Bar-Close-Wert mit den Höchst- und Tiefstwerten eines bestimmten Zeitraums zu vergleichen, z. B.
die letzten 20 Takte. Was mache ich falsch?
Überprüft mit Alert und aus irgendeinem unbekannten Grund Tester gibt den maximalen Wert aus der Berechnung von der allerletzten tick, aber es gibt diesen Wert
Sie entspricht der Anzahl der Ticks, so dass der Auftrag nicht eröffnet wird.
Das zweite Problem ist, wie meine EA warten, bis der nächste bar öffnet (30m Periode)? Wenn ich mit Kontrollpunkten testen alles in Ordnung ist, aber wenn ich Ticks verwenden,
dann öffnet sich mein Expert Advisor im selben Balken, direkt nachdem er mit einem Stop-Loss geschlossen wurde...
Und wie kann ich ein Geschäft abschließen, unabhängig davon, ob es ein Tick war oder nicht? z.B. bei einer Periode von 30m möchte ich den Auftrag 5 Sekunden vor Ende des Balkens (29.55, 59.55) schließen
Auf der Grundlage aller zu diesem Zeitpunkt vorliegenden Daten. In diesem Stadium besteht das Problem darin, dass, wenn ein Tick nicht innerhalb von 5 Sekunden auftritt, also kein
(Theoretisch ist das Blödsinn, aber in der Realität kann der nächste Tick aus irgendeinem Grund in einigen Kerzen erscheinen.
kann sich aus irgendeinem Grund in einigen Kerzen wiederfinden.
Vielen Dank im Voraus!Hilfe bei den Kommentaren. Zu jedem Balken werden Kommentare erstellt. Bei jedem Häkchen möchte ich dem bestehenden Kommentar weiteren Text hinzufügen.
Ich rufe den Code auf:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Fügt einen neuen Kommentar hinzu und bei jedem Häkchen wird eine neue Zeile eingefügt und der Text nach unten verschoben.
Wie kann ich die letzten Zeilen vor der Ausgabe löschen lassen?
Hilfe bei den Kommentaren. Zu jedem Balken werden Kommentare erstellt. Bei jedem Häkchen möchte ich dem bestehenden Kommentar weiteren Text hinzufügen.
Ich rufe den Code auf:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Fügt einen neuen Kommentar hinzu und bei jedem Häkchen wird eine neue Zeile eingefügt und der Text gleitet nach unten.
Wie kann ich die letzten Zeilen vor der Ausgabe löschen lassen?
Es scheint mir, dass Sie nur Comment() vollständig ersetzen können
Wenn Sie also bei jedem Häkchen einen Teil des Kommentars ändern wollen, müssen Sie den Kommentar bei jedem Häkchen vollständig ändern.
Hilfe bei den Kommentaren. Zu jedem Balken werden Kommentare erstellt. Bei jedem Häkchen möchte ich dem bestehenden Kommentar weiteren Text hinzufügen.
Ich rufe den Code auf:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Fügt einen neuen Kommentar hinzu und bei jedem Häkchen wird eine neue Zeile eingefügt und der Text gleitet nach unten.
Wie kann ich die letzten Zeilen vor der Ausgabe löschen lassen?