Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 571

 
Artyom Trishkin:

Es gab schon einmal eine solche Frage:


Alexey Viktorov:

Los = (absoluter_Wert(Gewinn_Auftrag) + gewünschter Gewinn) / (Größe_Standard_Vertrag * TR * Punkt)

Vielen Dank, Artyom Trishkin.

Vielen Dank, Alexey Viktorov.

 
Karputov Vladimir:
Verstehen Sie die Definition des Begriffs "asynchrone Operation"? Wenn Sie dies tun, sollten keine Fragen gestellt werden.
Ich verstehe das sehr gut! Deshalb habe ich gefragt. Ich habe nicht die Absicht, mit Ihnen um die Pisskompetenz zu ringen.
 

Kolleginnen und Kollegen, helfen Sieeinem unerfahrenen Programmierer.

Ich habe versucht, einen Code für eine benutzerdefinierte Funktion zu erstellen, so dass, wenn ich die Zeit in den Einstellungen im üblichen Format "13:45" für drei Zeitabschnitte einstelle, meine Funktion true oder false zurückgibt. Die Idee war, die Funktion zuerst in Expert einzufügen. Es würde den Wert prüfen und wenn er stimmt, könnten wir handeln und weitergehen.

Alles schien gut zu laufen, alle zurückgegebenen Parameter wurden mit Alert überprüft, so dass alles in allen Stadien klar war, aber am Ende wurde mir klar, dass ich sie in der Startfunktion falsch deklariert haben muss, weil sie den Fehler "wrong parameters count" erzeugte.

Der Code ist lang, ich werde Ihnen die wichtigsten Punkte nennen:

--------------------------------

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (HandelszeitErlaubt);

if (TradingAllowed = true) { Alert ("Buy 1 lot");}

else { Alert ("Handel ist nicht erlaubt"); }

}

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //das ist eine Funktion, die ich getestet habe, indem ich sie in OnTick über Alert eingefügt habe. Sie gibt wahr oder falsch aus.

{ ....................}

---------------------

Und das zweite Problem liegt in der Funktion selbst am Ende.

Jetzt ist sie dort falsch platziert:

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok);

// d.h. das Problem ist "wer ist der Letzte, wer ist der Nächste". Wenn der erste Punkt wahr oder der zweite wahr und der dritte falsch ist, wird er sich an falsch erinnern. Aber nach meiner Vorstellung ist der Endwert immer noch wahr, wenn mindestens einer von ihnen wahr ist.

Ich habe versucht, es so zu formulieren:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // aber es schreibt Fehler wie diesen. Ich weiß nicht, was er nicht mag.

Gute Ratschläge, bitte.


 

Das erste Problem wurde mit Hilfe der freundlichen Menschen im benachbarten Thread gelöst. Die Funktion wird korrekt aufgerufen und gibt den gewünschten Wert aus.

Das zweite Problem bleibt bestehen:

Und das zweite Problem liegt in der Funktion selbst am Ende.

Dort ist es jetzt falsch geschrieben:

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok);

// d.h. das Problem ist "wer ist der Letzte, wer ist der Nächste". Wenn der erste Punkt wahr oder der zweite wahr und der dritte falsch ist, wird er sich an falsch erinnern. Aber nach meiner Vorstellung ist der Endwert immer noch wahr, wenn mindestens einer von ihnen wahr ist.

Ich habe versucht, es so zu formulieren:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // aber es schreibt Fehler wie diesen. Ich weiß nicht, was er nicht mag.

Gute Ratschläge, bitte.

 

Übertragen von

Andrej Koldorkin:

Kolleginnen und Kollegen, Hilfe für einen unerfahrenen Programmierer.

Ich habe versucht, etwas Code für eine benutzerdefinierte Funktion zusammenzuschustern, die für drei Zeitabschnitte true oder false zurückgibt, wenn ich die Zeit in den Einstellungen im bekannten Format "13:45" einstelle. Die Idee war, die Funktion zuerst in Expert einzufügen. Es würde den Wert prüfen und wenn er stimmt, könnten wir handeln und weitergehen.

Alles schien gut zu laufen, alle zurückgegebenen Parameter wurden mit Alert überprüft, so dass alles in allen Stadien klar war, aber am Ende wurde mir klar, dass ich sie in der Startfunktion falsch deklariert haben muss, weil sie den Fehler "wrong parameters count" erzeugte.

Der Code ist lang, ich werde Ihnen die wichtigsten Punkte nennen:

--------------------------------

void OnTick()

{

bool TradingAllowed = false;

TradeTimeAllowed (HandelszeitErlaubt);

if (TradingAllowed = true) { Alert ("Buy 1 lot");}

else { Alert ("Handel ist nicht erlaubt"); }

}

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //es gibt eine Funktion, die ich durch Einfügen in OnTick via Alert überprüft habe. Ergibt wahr oder falsch.

{ ....................}

---------------------

Und das zweite Problem liegt in der Funktion selbst am Ende.

Jetzt ist sie dort falsch platziert:

if (Trade_Session_1 = true) TradeTime_Ok = true;

if (Trade_Session_2 = true) TradeTime_Ok = true;

if (Trade_Session_3 = true) TradeTime_Ok = true;

return(TradeTime_Ok);

// d.h. das Problem ist "wer ist der Letzte, wer ist der Nächste". Wenn der erste Punkt wahr oder der zweite wahr und der dritte falsch ist, wird er sich an falsch erinnern. Aber nach meiner Vorstellung ist der Endwert immer noch wahr, wenn mindestens einer von ihnen wahr ist.

Ich habe versucht, es so zu formulieren:

if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // aber es schreibt Fehler wie diesen. Ich weiß nicht, was er nicht mag.

Bitte, helfen Sie mir.

 

Übertragen

<br / translate="no"> Andrey Koldorkin:


Sergei Vladimirov:

1) Die Funktion erfordert 6 String-Parameter und Sie rufen sie mit einem booleschen Parameter auf. 2) Das Gleichheitszeichen ist "==", nicht "=".

 
Ja. Alles repariert. Die Fehler sind verschwunden. Danke. (lacht)
 

Übertragen von

LeonidB:

Helfen Sie, ein Problem zu lösen!

Die Einstellungen der Nachrichtenkategorie werden nicht gespeichert. Setzen Sie die Einstellungen nach dem Neustart des Terminals zurück. Eine Neuinstallation hilft nicht, die Ausführung als Administrator hilft auch nicht. Windpws 10. Ich habe alle Dateien gefunden, die für die Konfiguration zuständig sind. Das Datum der Änderungen fällt immer mit dem Datum des Herunterfahrens des Terminals zusammen, d.h. die Dateien werden überschrieben. Soweit ich weiß, sind die folgenden Dateien für die Konfiguration zuständig: terminal.ini, settings.ini, hotkeys.ini, common.ini (im Ordner config), news.dat (im Ordner news).

Außerdem wird die folgende Einstellung nicht gespeichert: Show - Last Price Line. Dieser Punkt ist im Gegensatz zu den Nachrichteneinstellungen nicht kritisch, aber ich denke, sie sind Glieder in derselben Kette.


 

Guten Tag zusammen, ich habe auf vier gepostet und hoffe, bald eine Antwort zu erhalten.... Leute, bitte schaut, was los ist. Es scheint der Code des Indikators in zwei Zeilen zu sein, aber er will nicht in Echtzeit funktionieren :-(

Hier ist ein Link zu einem Beitrag mit drei Bildern....

https://forum.mql4.com/ru/56236/page1041

Danke!!!!

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
Hallo, ich freue mich darauf, dieses Thema mit Ihnen zu diskutieren. Ich habe einen EA in MT5 geschrieben, mit dem ich automatisch nach den erforderlichen Mustern suchen und Positionen manuell eröffnen wollte. D.h. es gibt keine Handelsfunktionen in dem EA. Mein Problem ist, dass ich diesen EA nicht auf einem Chart installieren kann. Der EA enthält keine Indikatoraufrufe. Alle Indikatoren werden im Programm geschrieben. Ich habe es kompiliert und im Strategietestprogramm ausgeführt. Es gab keine Probleme. Ich habe gerade den EA auf den Chart gesetzt und ihm erlaubt, auf dem Bildschirm zu handeln, in den Einstellungen und im EA-Fenster, das sich öffnet. Anstelle des Smileys auf dem Chart erscheint das Symbol des Expert Advisors auf dem Kurschart und ein grüner Kreis mit einem weißen Dreieck darin. Ich habe dieses Verfahren mehrmals ausprobiert und erhalte immer noch die gleichen Ergebnisse. Ich habe die Perioden im Preisdiagramm gewechselt, die Meldung von OnDeinit() erscheint auf dem Monitor, d.h. eine Kerze wird im Programm verarbeitet und die Arbeit wird eingestellt.

Ich habe einen Blick in das Logbuch geworfen:

- Einer der Versuche, einen EA zu installieren, führte zu einer Profiländerungsmeldung;

- Bei allen anderen Versuchen wird der EA ohne Probleme geladen.

Ich habe mit Profilen gearbeitet: Ich habe die Anzahl der Profile erhöht und für jedes Profil unterschiedliche Diagramme erstellt. Wenn dort etwas nicht in Ordnung war, dann weiß ich es leider nicht. Ich weiß nicht, was kaputt sein muss, damit das Programm eine Meldung über den Profilwechsel ausgibt. Es ist jedoch möglich, dass der Fehler auf eine andere Ursache zurückzuführen ist. Das ist für mich nicht klar.

Zu Testzwecken habe ich heute einen neuen EA (Template) erstellt und nichts in die Funktionen OnInit(), OnDeinit(const int reason), OnTick() geschrieben und versucht, diesen EA auf den Chart zu setzen und den Handel zu ermöglichen.

Ich habe die gleiche Situation wie zuvor.

Bitte helfen Sie mir, diese Situation zu verstehen. !!!!!!

Grund der Beschwerde: