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

 
Yevhenii Levchenko:
Sind die Zitate im Ordner tester/history gespeichert?

Nein.

\History\downloads\symbol\*.dat - Archiv der Zitate.

\Geschichte\server\*.hst - Zitate.

\tester\history\*.fxt - wird jedes Mal, wenn Sie einen Test oder eine Optimierung starten, aus *.hst-Dateien generiert.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Frage an MT4-Entwickler: Tester-Dateien

Sergej Basow, 2016.01.14 07:25

Ich bin kein MT4-Entwickler, aber ich kann aus persönlicher Erfahrung antworten.

Ihre Löschung hat keine Auswirkungen. Sie werden einfach bei der nächsten Prüfung oder Optimierung erneut erzeugt.

Die Anführungszeichen werden in *.hst-Dateien gespeichert, aus denen der Prüfer *.fxt-Dateien erzeugt, und zwar jedes Mal aufs Neue.


 
Sergey Basov:

Nein.

\history\downloads\*.dat - Archiv der Zitate.

\Geschichte\server\*.hst - Zitate.

\tester\history\*.fxt - wird jedes Mal, wenn Sie einen Test oder eine Optimierung starten, aus *.hst-Dateien generiert .


Dieses Zeug belastet das Laufwerk beim Starten stark... Warum löscht der Prüfer sie nicht, wenn er sie jedes Mal neu generiert? Gibt es eine Möglichkeit, dies einzurichten?

 
Nauris Zukas:

Hallo! Ich wollte den Eröffnungszeitpunkt des Balken des aktuellen Monats abfragen, bekam aber einen Fehler 4074 (ERR_NO_MEMORY_FOR_HISTORY). Interessant ist auch, dass, wenn ich den Test ab dem 1. Juni beginne, er korrekt ist, aber ab dem 2. Juni beginnt er, den Fehler zu geben. Wie lässt sich das Problem dieses Monats lösen?

Hallo!

Ich hatte den gleichen Fehler 4074(ERR_NO_MEMORY_FOR_HISTORY), als ich mit Kursen von einem anderen Broker testete. Und es ist nicht das erste Angebot eines Drittanbieters, das ich verwende. Bei anderen habe ich diesen Fehler nicht. Was ist der Grund für den Fehler und wie kann man ihn beheben, vielleicht hat es schon jemand herausgefunden?

 

Warum funktioniert der einfachste Code in mt5 völlig anders als in mt4? Zum Beispiel, der folgende Code, der den durchschnittlichen mt4 muwings Pufferwert berechnet:

for (int i=0; i<nLimit; i++){
         double value;
         for(int k=i; k<i+AveragePeriod; k++){
            value+=Buffer1[k];
         }
         AverageBuffer[i]=value/AveragePeriod;
      }

...funktioniert nicht in mt5. Damit es mehr oder weniger ähnlich funktioniert (nach der Bauchgefühl-Methode), müssen Sie es so machen:

 for (int i=0; i<nLimit; i++){
         double value;
         for(int k=i; k<i+AveragePeriod; k++){
            value+=Buffer1[k];
         }
         value/=(AveragePeriod+1);
         AverageBuffer[i]=value;
      }

Und dann zeigen die ersten 7 Puffer einige unzulässige Werte. Alles andere scheint gut zu funktionieren. Mein Kiefer krampfte sich bei einer solchen Kleinigkeit zusammen.)

Bitte beraten Sie mich, wie ich das Problem richtig lösen kann.

 

Kommentar zwischen den Berechnungenhinzugefügt und alles verdammt neu gezeichnet :D

 for (int i=0; i<nLimit; i++){
         double value;
         for(int k=i; k<i+AveragePeriod; k++){
            value+=Buffer1[k];
         }
         if(i==2)
           

  Comment(value); // вот это добавил

         value/=(AveragePeriod+1);          AverageBuffer[i]=value;                }
Was ist denn so schlimm daran?
 
Ich kann nicht herausfinden, wie ich eine solche Bedingung mit iFractal? schreiben kann. Wenn:
Erstes Fraktal_oben< Zweites Fraktal_oben dann.....
Und dasselbe gilt für das Abwärtsfraktal
 
Vladimir Baskakov:
Ich kann nicht herausfinden, wie ich eine solche Bedingung mit iFractal? schreiben kann. Wenn:
Erstes Fraktal_oben< Zweites Fraktal_oben dann.....
Und dasselbe gilt für das Abwärtsfraktal

Am Wochenende. Herumalbern...

 
Vladimir Baskakov:
Ich kann nicht herausfinden, wie ich eine solche Bedingung mit iFractal? schreiben kann. Wenn:
Erstes Fraktal_oben< Zweites Fraktal_oben dann.....
Und dasselbe gilt für das Abwärtsfraktal

bereit, so sucht man nach Fraktalen:

//_______________________________________________________________________
int GetLastFractals(int bar,int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
  {
   int i=bar; 
   while(i<Bars && iFractals(NULL,0,mode,i)<_Point) i++;
   return(i);
  }
//_______________________________________________________________________

Sie müssen 2 Mal aufrufen, um das erste Fraktal und das darauf folgende zu finden, etwa so:

int barfrup_1 = GetLastFractals(1,MODE_UPPER);
int barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);
 
Yevhenii Levchenko:

Kommentar zwischen den Berechnungen hinzugefügt und alles verdammt neu gezeichnet :D

Was ist der Trick?

ArraySetAsSeries(true) für Indikatorpuffer.

 
Igor Makanu:

von der Stange, so suchen Sie nach Fraktalen:

Sie müssen Sie 2 Mal aufrufen, um das erste Fraktal und das nächste zu finden, etwa so:

Danke, es funktioniert, nur eine Bedingung ist erfüllt:

        if(barfrup_1<barfrup_2 && barfrdown_1<barfrdown_2)

Und ich brauche

        if(barfrup_1<barfrup_2 && barfrdown_1>barfrdown_2)

Und ich kann aus irgendeinem Grund keine Positionen damit eröffnen.