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

 
MIKHAIL VINOGRADOV:

Grüße!

Ich kann entgegengesetzte Aufträge verschiedener Lots nicht mit CTrade.PositionCloseBy(ticket1,ticket2) schließen.

ResultRetCode() - Ich erhalte Fehler 10035.

Was ist der Grund dafür?

10035

TRADE_RETCODE_INVALID_ORDER

Ungültige oder verbotene Auftragsart


Achten Sie genau darauf, was Sie dort tun.

 

Verstehe ich das richtig - die SetIndexBuffer-Funktion wird benötigt, um Puffer an eine bestimmte grafische Konstruktion zu binden, und um den Zugriff auf diese über iCustom zu nummerieren?

Wenn ich also zum Beispiel ein Array für Hochpreise anlege, dann reicht es aus, es ohne Bindung über SetIndexBuffer zu deklarieren und in ...

#property indicator_buffers

... ... kann sie ignoriert werden.

Außerdem können Sie mit SetIndexBuffer nur Arrays vom Typ double binden, während datetime und andere Arrays dies nicht können.


Ich verstehe diesen Punkt nicht ganz (oder habe ihn nicht verstanden), und jetzt habe ich eine Idee - ich möchte ihn klären...

 
Alexandr Sokolov:

Verstehe ich das richtig - die SetIndexBuffer-Funktion wird benötigt, um Puffer an eine bestimmte grafische Konstruktion zu binden, und um den Zugriff auf diese über iCustom zu nummerieren?

Wenn ich also zum Beispiel ein Array für Hochpreise erstelle, reicht es aus, es ohne Bindung über SetIndexBuffer zu deklarieren und in ...

... ... kann sie ignoriert werden.

Außerdem können Sie mit SetIndexBuffer nur Arrays vom Typ double binden, während datetime und andere Arrays dies nicht können.


Ich verstehe diesen Punkt nicht ganz (oder habe ihn nicht verstanden), und jetzt habe ich eine Idee - ich möchte ihn klären...

Es handelt sich nicht um eine Konstruktion, sondern um einen Datensatz. Deshalb glaube ich nicht, dass es auf diese Weise funktionieren wird. Ich habe es allerdings nicht überprüft.

Was den Datentyp datetime betrifft, können Sie ihn in double schreiben und beim Lesen zwangsweise anwenden.

 
Happy:

Guten Morgen.

Frage. Im Tester sollte das Programm an der tageslichtabhängigen Schnittstelle (wenn die nächste Tageslinie durchläuft) einen schwebenden Auftrag erteilt haben. Die schwebende Order, die bereits vorhanden war und der Preis sie berührte, wurde geöffnet, aber die Anweisung, eine weitereschwebende Order zu öffnen, wurde vom System aus irgendeinem Grund ignoriert. Kann dies auch bei einem echten Konto passieren, bei dem die Anfrage des Roboters ignoriert und daher keine Aktion durchgeführt wird?


Und noch eine Frage. Ich führe einen Strategietester aus, aber ich war sehr verwirrt von der Tatsache, dass er eine Woche oder so in der Visualisierung geht und dann die folgende Meldung anzeigt

177564 Tick-Ereignisse (447 Takte, 7888506 Taktzustände) verarbeitet in 0:17:42.694 (Gesamtzeit 0:17:48.217)

177564 Tick-Ereignisse (447 Takte, 7888506 Taktzustände) verarbeitet in 0:17:42.694 (Gesamtzeit 0:17:48.217)

Ich verstehe das nicht, ist er zu beschäftigt, um weiter zu testen? Oder ist er so fürsorglich und besorgt um die Ressourcen meines Computers? Ich sehe keine Fehlermeldungen. Er beendet sich einfach selbst. Allerdings habe ich das Datum nicht auf 7 Tage, sondern auf 7 Monate festgelegt. Ich würde gerne den gesamten Testpfad von Anfang bis Ende sehen.

Welche Religion erlaubt es ihm nicht, zum Beispiel ein Jahr oder mehrere Jahre lang visuell zu prüfen? Und Sie können visuell nachvollziehen, wie Ihr Programm beispielsweise im vergangenen Jahr funktioniert hat.


Und noch eine Frage. (Auch wenn sie unbeantwortet bleiben kann). ) Wie kann es passieren, dass der Tester 2 Runden lang arbeitet, wie er sollte, und kurz vor der oben erwähnten Einschreibung am Tag einfach alle Anweisungen ignoriert. Wie ist es möglich, dass das Programm mehrere Runden lang korrekt funktioniert hat (Aufträge geöffnet und dann geschlossen), und dann, bumm, ignoriert es alles. Er öffnet und schließt sich nicht. Ist es wegen des Endes einer Testphase oder gibt es andere Gründe?

 
Die Brent- und Wti-Charts auf dem Hauptbildschirm der ftm-Website unterscheiden sich von den Notierungen in meinem persönlichen Konto. Haben Sie eine Idee? Ich bin sicher, dass die Verwaltung der Charts, insbesondere der Ölcharts, in der "Küche" von ftm erfolgt. Es gibt keine Erklärung. Der Beweis ist auf dem Foto zu sehen. Gleichzeitig weichen die Preise in meinem persönlichen Kabinett in die entgegengesetzte Richtung von den realen Preisen ab und sind immer im Minus für den Gewerbetreibenden. Das riecht nach Betrug...
 
Yevhenii Levchenko:

........... Aber an einem bestimmten Punkt muss es feststellen, ob es seinen eigenen Handel geschlossen hat oder ob es jemand anderes war, der eingestiegen ist und ihn geschlossen hat....

Schreiben Sie eindeutig, ob Sie fragen, wie man verschreibt oder ob Sie einen EA ohne Bearbeitung verwenden wollen.

 
Wie kann ich den Fehler 4403 behandeln?
 

  • Hallo!

    Ich wollte den A/D-Indikator für meinen EA verwenden, aber nicht in seiner reinen Form, seinem gleitenden Durchschnitt.

    Deshalb habe ich mir Funktionen ausgedacht:

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

    //| A/D-Funktion |

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

    double A_D(ENUM_TIMEFRAMES tf, int shift)

    {

    double res=0;



    res=iAD(NULL,tf, shift);



    return res;





    }



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

    //| A/D-Funktion |

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

    double A_D_moving(ENUM_TIMEFRAMES tf, int period)

    {

    double res=0;

    double a[];





    for(int i=Zeitraum; i>=1; i--)

    {

    a[i]= A_D(tf, i);

    }



    for(int i=Zeitraum; i>=1; i--)

    {

    res=iMAOnArray(a,0,Zeitraum,0,MODE_SMA,0);

    }



    return res;





    }

    Beim Testen wurde jedoch deutlich, dass A_D_moving() in dieser Revision fehlerhaft ist, da bei der Ausführung des Tests ein kritischer Fehler auftritt.

    Bitte wer kann helfen:

    Wie korrekt ist A_D_moving() geschrieben? Falls es Fehler gibt, bitte angeben...

    Ich danke Ihnen!


 
AurelianoV:

Bitte geben Sie den Code korrekt ein:


 
Artyom Trishkin:

Bitte geben Sie den Code korrekt ein:


Entschuldigung1

/+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
  {
   double res=0;
   res=iAD(NULL,tf, shift);
   return res;
  }

//+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period)
  {
   double res=0;
   double a[];
   
   for(int i=period; i>=1; i--)
     {
      a[i]= A_D(tf, i);
     }
   for(int i=period; i>=1; i--)
     {
      res=iMAOnArray(a,0,period,0,MODE_SMA,0);
     }
   return res;
  }


Entschuldigung

Grund der Beschwerde: