Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 96

 
Vadim Podoprigora:

Hallo!

Bitte helfen Sie mir, einen EA zu schreiben.

Die Essenz des Expert Advisors: Eröffnet 4 Aufträge von 1 Lot.

2 zu verkaufen: usdchf; eurusd;

2 zu kaufen: gbpusd; usdjpy;

Wenn Sie einen Gesamtgewinn von 5 Pips erreicht haben, schließen Sie alle Trades. Und wieder anfangen.

4 Lose insgesamt?

Was ist, wenn es keinen Gewinn gibt?

 
Vadim Podoprigora:

Hallo!

Bitte helfen Sie mir, einen EA zu schreiben.

Die Essenz des Expert Advisors: Eröffnet 4 Aufträge von 1 Lot.

2 zu verkaufen: usdchf; eurusd;

2 zu kaufen: gbpusd; usdjpy;

Wenn Sie einen Gesamtgewinn von 5 Pips erreicht haben, schließen Sie alle Trades. Und neu anfangen.

Es ist nicht nötig, Ihre Frage in verschiedenen Threads zu wiederholen.

Bitte kontaktieren Sie Freelance.

 
Andrey Sokolov:

Grüße.

Können Sie mir sagen, wie ich die Bedingung so schreiben kann, dass die Aktion bei der Eröffnung einer neuen Kerze im aktuellen Chart ausgeführt wird?

https://www.mql5.com/ru/articles/159
Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 

Hallo! Helfen Sie mir, Arrays zu verstehen!

Ich muss ein Array mit dem MASD-Indikator füllen. Wie ich es verstehe, gibt es Daten: Bar Index,MODE_MAIN Wert,MODE_SIGNALWert, d.h. das Array sollte von dreidimensionalem Typ sein ( a [] [] []), oder was? Wenn Sie ein Beispiel nennen können.

 

Sergey, haben Sie diesen Code jemals selbst verwendet?

Der Artikel ist im Allgemeinen gut, aber er ist

datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);

sehr gefährlich. Damit das funktioniert, müssen Sie, wie vom Schlagzeuger empfohlen, den Verlauf in regelmäßigen Abständen "ruckeln". Ich habe nicht gesagt, an welchem Ort.

Im Allgemeinen bin ich nach langem Leiden zu dem Schluss gekommen, dass es besser ist, die Funktion CopyRates() zu verwenden

Meldungen über mögliche Fehler werden von jedem von uns ausgefüllt, wenn wir das wollen.

bool newBar()
{
static datetime timeLastBar;
  MqlRates mqlRates[];
   int s = 0;
    do
     {
      s++;
     }
    while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 0 && s < 7);
   bool ret = timeLastBar != mqlRates[0].time;
   if(ret)
    timeLastBar = mqlRates[0].time;
   return(ret);
}/*******************************************************************/
 
Alexey Viktorov:

Sergey, haben Sie diesen Code jemals selbst verwendet?

Der Artikel ist im Allgemeinen gut, aber er ist

datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);

sehr gefährlich. Damit das funktioniert, müssen Sie, wie vom Schlagzeuger empfohlen, den Verlauf in regelmäßigen Abständen "ruckeln". Der Ort wurde nicht genannt.

Alexey, sagen Sie mir, wann sind Sie bei der Verwendung auf Fehler gestoßen? Haben Sie jemals eine gehabt?

Ich wende diese Methode selbst an und habe noch keine Probleme gehabt. Nun, vielleicht muss ich es trotzdem tun?

Ich hätte gerne einige Erklärungen - sozusagen... :)

Wo hat der Schlagzeuger das gesagt?

 
Artyom Trishkin:

Alexej, sagen Sie mir, wann sind Sie jemals auf Fehler bei dieser Verwendung gestoßen? Haben Sie das jemals getan?

Ich wende diese Methode nämlich selbst an und habe noch keine Probleme gehabt. Nun, vielleicht muss ich es trotzdem tun.

Ich hätte gerne einige Erklärungen - sozusagen... :)

Wo hat drubashka so etwas gesagt?

https://www.mql5.com/ru/forum/89213

Es gibt acht Seiten Gezänk. Und nicht nur drubashka, sondern auch Slawa sagt, dass

Slawa:

Wo sehen Sie ein unzureichendes Verhalten dieser Funktion? Haben Sie die Dokumentation sorgfältig gelesen?

Gibt Informationen über den Zustand der historischen Daten zurück. Aktualisiert die Informationen nicht und initiiert keinen Datenaustausch. Ich gebe nur zurück, was im Moment da ist.

 
Artyom Trishkin:

Alexej, sagen Sie mir, wann sind Sie jemals auf Fehler bei dieser Verwendung gestoßen? Haben Sie das jemals getan?

Ich selbst verwende diese Methode und habe noch keine Probleme gehabt. Nun, vielleicht muss ich es trotzdem tun.

Ich hätte gerne einige Erklärungen - sozusagen... :)

Wo hat der Schlagzeuger das gesagt?

Und hier ist die Zuckung.

Wladimir Karputow:
Es funktionierte nicht auf ein Symbol in einem Terminal (auf M15 Zeitrahmen) - ich bin 99% sicher, dass das Problem ist, dass mit einem anderen Zeitrahmen ich brauche, um "Ruck" die Geschichte die ganze Zeit. Ich denke, es ist besser, dies über CopyTime() zu tun.
Das Problem wird durch die Katze nicht durch den kausalen Ort gelöst.
 
Artyom Trishkin:

Alexej, sagen Sie mir, wann sind Sie jemals auf Fehler bei dieser Verwendung gestoßen? Haben Sie das jemals getan?

Soweit ich mich erinnere, kann es sein, dass sie nicht das Erwartete liefert, wenn die TF größer ist als die aktuelle.
 
Hallo, ich habe eine Frage zum MT5.

Zum Beispiel, in der MT5-Terminal gibt es einige Expert Advisors (MACD Sample und gleitende Durchschnitte), aber wenn ich versuche, eine bestimmte TF in ihrem Code, zum Beispiel PERIOD_H4, anstelle von "_Period", dann in den Test auf die offenen Preise der höheren TF, der folgende Indikator Ladefehler auftritt: kann nicht laden Indikator 'MACD' [4805] und als Ergebnis: Tester gestoppt, weil OnInit fehlgeschlagen. Was ist Ihre Meinung? Vielleicht mache ich etwas falsch? Ist es möglich, den Expert Advisor so zu kodieren, dass er auf die Eröffnungskurse eines beliebigen TFs getestet wird?

Ich habe versucht, den Indikator als benutzerdefinierten Indikator zu verwenden, der Fehler ist derselbe.

Ich danke Ihnen im Voraus für Ihr Feedback.

int OnInit(void)
{
//--- Handelsklasse vorbereiten, um Positionen zu kontrollieren, wenn der Absicherungsmodus aktiv ist
ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
ExtTrade.SetExpertMagicNumber(MA_MAGIC);
ExtTrade.SetMarginMode();
//--- Gleitender Durchschnittsindikator
ExtHandle=iMA(_Symbol,PERIOD_H4,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
if(ExtHandle==INVALID_HANDLE)
{
printf("Fehler beim Erstellen des MA-Indikators");
return(INIT_FAILED);
}
//--- ok
return(INIT_SUCCEED);
}