[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 588

 

Sagen Sie mir, wo ich Programmierer finde, die EAs schreiben!

 

Sie müssen auch den Zeitpunkt der Öffnung der Stange kontrollieren:

datetime bartime;

int init()
{
   ...
   bartime=0;
   ...
}

int start
{
   ...
   if(bartime<Time[0]) //если пришел новый бар
   {
       //делаем то что нужно
   }
   ...
   bartime=Time[0]; //обязательно запомнили обсчитанный бар
}

 
supernovik:

Sagen Sie mir, wo ich Programmierer finde, die EAs schreiben!

https://www.mql5.com/ru/forum/116708
 
alsu:
...

3. das Array füllen for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; Index i beginnt bei 1, da wir nur geschlossene Balken benötigen

...

Überprüfen Sie es, vielleicht ist es nur ein Fehler

Ok, danke, ich werde es morgen früh versuchen (mein Kopf ist im Moment nicht gut), aber in diesem Fall (i=1) kann ich mich auf den Open [0] Preis des aktuellen Balkens beziehen?

P. S. Ok, ich glaube, ich habe das Wesentliche verstanden - ich werde es am Nachmittag ausprobieren.

 
Craft:
OK, ich werde es versuchen, aber in diesem Fall (i=1) werde ich mich auf den Eröffnungskurs des aktuellen Balkens beziehen können Open[0]&
Natürlich können Sie das, nichts kann es verhindern. Generell muss man in MQL mit Array-Indizes sehr vorsichtig umgehen und sie ständig auf ihre Korrektheit überprüfen, denn angesichts des Fehlens von Debugging-Tools kann die Suche nach einem möglichen Fehler Wochen dauern. Außerdem führt dies oft zu "Pseudo-Grails" - Programme, die versehentlich einen Takt in die Zukunft blicken und daher beim Testen hervorragende Ergebnisse liefern, aber in Echtzeit versagen.
 

Er hat es nicht bis zum Morgen ausgehalten. Es wurde ein wenig besser, aber die Platzierungen der Auftragsblüten ließen sich nicht vermeiden. Wie kann ich einen Einzelauftrag zu den gewünschten Konditionen einrichten? Sie erwähnten: Nein, das würde nicht funktionieren, nur durch eine Analyse der Auftragshistorie - wie können wir das machen oder was ist sonst geeignet?

 
alsu:

Sie müssen auch den Zeitpunkt der Öffnung des Balkens überprüfen:


Alsu, bezog sich das auf mein Beispiel?
 
Bitte beraten Sie mich, ich habe Probleme mit dem EA-Schreiben. Ich muss einen neuen Auftrag eröffnen, wenn der alte durch tp oder sl geschlossen wird.



Ich helfe Ihnen gerne!
 
Top2n:
Bitte sagen Sie mir, dass ich versuche, einen EA zu schreiben. Ich sollte eine neue Bestellung aufgeben, wenn die alte durch tp oder sl abgeschlossen ist.
Ich würde das zu schätzen wissen!

Sie müssen separat in den Code (außerhalb des Starts) f-i einfügen (kopieren), die angeben, wie die letzte Position geschlossen wurde.

Diese sind erhältlich unter: https: //www.mql5.com/ru/forum/107476

pg. 21

Die Funktion isCloseLastPosByTake().
Diese Funktion gibt ein Flag zum Schließen der letzten Position durch Take zurück. Das Flag wird gesetzt - True - TakeProfit wurde ausgelöst. Flagge gesenkt - Falsch - Position wurde aus einem anderen Grund geschlossen

Die Funktion isCloseLastPosByStop(). Diese Funktion gibt eine Flagge zurück, die anzeigt, dass die letzte Position durch einen Stopp geschlossen wurde. Flagge ist oben - True - StopLoss ausgelöst. Flagge gesenkt - Falsch - Position wurde aus anderem Grund geschlossen

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

Höchstwahrscheinlich wird dafür auch ein F-Typ erforderlich sein:

GetTypeLastClosePos() Funktion. Seite 20

Diese Funktion liefert den Typ der letzten geschlossenen Position oder -1

=================================

Dann wird im einfachsten Fall die - Die Eröffnungsbedingungen wären:

//--------------Для бай-сделок-------------

if ( isCloseLastPosByTake(NULL, OP_BUY, -1)==true || isCloseLastPosByStop(NULL, OP_BUY, -1)==true) {

//wenn die letzte Kaufposition bei Take oder Stop geschlossen wurde, wird eine neue Kaufposition eröffnet

/------------

Dasselbe gilt für den Verkauf von Geschäften ....

 

Bitte sagen Sie mir, wie erfahrene Assistenten einen EA von einem Indikator und einem Skript unterscheiden (ohne es im Editor zu "sezieren"). Ich habe alles in meinen Ordnern durcheinander gebracht. Der EA-Ordner ist voll von nicht funktionierenden Indikatoren und der Indikator-Ordner ist voll von nicht funktionierenden Skripten. Also kopiere ich (vorsichtshalber) den neuen EA-Indikator in beide Ordner.

Ich halte dies für einen großen Fehler der Sprachschöpfer. Die Dateierweiterung sollte anders lauten.

Was haben die Aksakals zu sagen?