Gogetter EA - Seite 14

 

Hier sind die .gif-Dateien, die zu den .htm-Dateien aus dem vorherigen Beitrag gehören...

Außerdem wurde ich heute früh nach einer Build 188-Installationsdatei gefragt...

Ich habe nach dieser Build-Nummer gesucht, aber ich finde sie nicht... Ich kann mich nicht daran erinnern, einen Build 188 gemacht zu haben, vielleicht habe ich es getan, aber ich muss danach suchen... Ich weiß nicht, was so besonders ist, dass mich jemand nach diesem speziellen Build fragen würde.....das wäre eine sehr frühe Version gewesen, wenn ich eine gemacht hätte....

Ich werde weiter suchen...

Dateien:
ggl3-01.gif  6 kb
ggs3wrsi.gif  9 kb
 

Ich vergaß zu erwähnen, dass ich den GGS3 im 1H-Chart und den GGL3.01 im 30M-Chart verwende.

Jemand hat mir angeboten, dass es sich für mich lohnen würde, wenn ich ihm eine Installations-.exe für den Build 188 des Metatrader 4 Terminals zur Verfügung stellen könnte. Ich habe meine Tests mit Build 195 durchgeführt und ich habe keinen Build 188 für das Terminal... hat noch jemand einen, den Sie teilen würden?

 

Raten Sie mal, was der Unterschied zwischen diesen beiden Tests ist?

Einstellungen? nein

EA? nein

Starteinlage? nein

Datumsbereiche? nein

Währungspaar? nein

Haben Sie vor jeder Transaktion auf recalcuate geklickt? jep

Der einzige Unterschied besteht darin, dass der gewinnbringende Handel kurz nach der Wiedereröffnung des Marktes am Sonntag durchgeführt wurde. Und die, die nicht profitabel war, wurde kurz nach Marktschluss am Freitag durchgeführt.

Kann mir jemand erklären, warum es für den Backtester wichtig sein sollte, ob der Markt geöffnet ist oder nicht, wenn er einen Datumsbereich testet, der vollständig im History Center gespeichert ist?

Dateien:
 
Maji:
Versuchen Sie das Folgende:

int handle;

int init()

{

handle=FileOpen(EAName+"_"+Symbol()+".txt", FILE_CSV|FILE_WRITE, ';');

return(0);

}

int deinit()

{

FileClose(handle);

return(0);

}

Start()

{

.....

FileWrite(handle, TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS), iOpen... ); //declare them as variables and then insert them in the file write routine

[/PHP]

Also, remember to put the routine where it is updated once every bar not every tick. Now you got enough ammo, and figure out the rest

Good luck.

OK, ich habe Folgendes gefunden: ....

[PHP]int handle; //in Datei drucken

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

//| Experten-Initialisierungsfunktion |

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

int init()

{

BarCount = Bars;

wenn (EachTickMode) Current = 0; sonst Current = 1;

handle=FileOpen(EAName+"_"+Symbol()+".txt", FILE_CSV|FILE_WRITE, ';');//Drucken in Datei

return(0);

}

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

//| Experten-Deinitialisierungsfunktion |

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

int deinit()

{

FileClose(handle);//Drucken in Datei

return(0);

}

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

//| Expertenstartfunktion |

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

int start()

{

Ich weiß nicht, wie/wo ich diese Richtung vervollständigen kann...

...." FileWrite(handle, TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS), iOpen... ); //deklariere sie als Variablen und füge sie dann in die Datei-Schreibroutine ein"

 

Maji sagte, ...setzen Sie die Routine so, dass sie einmal pro Bar und nicht bei jedem Tick aktualisiert wird.

Kann mir jemand zeigen, wo das ist? Trotz meiner gelegentlichen Wahnvorstellungen von Kompetenz habe ich wirklich keine Ahnung auf diese.

 

Es tut mir leid, aber ich habe im Moment keine Zeit, mich mit Ihrem Code zu beschäftigen. Sie sollten die Zeile einfügen, die die Zeit, die Eröffnung usw. genau dort schreibt, wo Ihr System den neuen Balken aktualisiert. Fügen Sie diese Zeile doch einfach vor return(0) in Ihre Startschleife ein. Wie Sie den filewrite-Befehl konstruieren, müssen Sie selbst herausfinden, ich habe Ihnen genug Material dafür gegeben

Warum fangen Sie nicht einfach an, Ihr System vorwärts zu testen, so können Sie es jeden Tag mit Ihrem Backtest vergleichen und sehen, wie es funktioniert?

Viel Glück!

 
Maji:
Es tut mir leid, aber ich habe im Moment keine Zeit, an Ihrem Code herumzupfuschen. Sie sollten die Zeile einfügen, die die Zeit, die Eröffnung usw. genau dort schreibt, wo Ihr System den neuen Balken aktualisiert. Fügen Sie diese Zeile doch einfach vor return(0) in Ihre Startschleife ein. Wie Sie den filewrite-Befehl konstruieren, müssen Sie selbst herausfinden, ich habe Ihnen genug Material dafür gegeben

Warum fängst du nicht einfach an, dein System vorwärts zu testen, so kannst du es jeden Tag mit deinem Backtest vergleichen und sehen, wie es funktioniert?

Viel Glück!

Mir ist klar, dass Sie andere Prioritäten haben, deshalb habe ich Sie nicht gefragt, aber der Hinweis hilft zumindest für die Platzierung der Linie. Danke

Ich teste vorwärts. Das heißt, ich war, bis mein Demo-Konto explodierte über den Tag der Arbeit Wochenende, es hat nicht ablaufen, es war nur zusammen mit all meinen anderen Demo-Konten beendet. Heute Morgen musste ich ein neues Konto eröffnen...keine Ahnung, warum sie alle gelöscht wurden. Ich habe es nicht getan. Irgendeine Anamolie zwischen den Banken, nehme ich an.

 

Nehmen wir an, um des Argumentes willen, dass ich dies getan und beweisen, es ist nicht mit den gleichen Daten jedes Mal, trotz gesagt zu, oder dass es nicht die Daten auf die gleiche Weise oder was auch immer verarbeiten, dann was?

Ich habe andere Strategietests, die anscheinend nicht dieselben Datumsbereiche oder die gesamten Datumsbereiche verwenden, wenn ich es ihnen sage. was kann ich oder jemand anderes dagegen tun? Ich denke, man kann davon ausgehen, dass andere Leute ähnliche Unregelmäßigkeiten haben, aber was kann man dagegen tun?

Im Moment scheint es mir nicht wirklich ein Strategie-Tester zu sein. Eher wie ein Strategietester, denn ich sehe keine Möglichkeit, seine Kompilierung/Verarbeitung wirklich zu kontrollieren oder zu stabilisieren. Es verarbeitet nur partielle Datumsbereiche, wenn vollständige Datendateien vorhanden sind, um den gesamten angegebenen Bereich zu verarbeiten. Es scheint nicht zu 100% konsistent zu sein. Ich wüsste nicht, was ich tun könnte, um es zu reparieren, selbst wenn ich seine Inkonsistenzen nachweisen könnte. Es verhält sich eher wie ein Rouletterad als ein Präzisionsprüfgerät.

 

unnötiger Posten

 

hier ist mein Skitoma... Ich kann nicht sehen, warum in der oben genannten Include-Datei https://www.mql5.com/en/forum/general

der Compiler diese Funktionen finden kann...(wenn ich diese Include-Datei in einen EA einfüge und bevor ich diese Funktionen aufrufe...., erhalte ich diese Fehler, die mir sagen, dass der Compiler zumindest diese 5 Funktionen SEHT....

Die Funktion "StoreHighsAndLows" wird nicht referenziert und wird aus der Exp-Datei entfernt

Die Funktion "GetPastEquity" wird nicht referenziert und wird aus der exp-Datei entfernt

Die Funktion "StoreAccountEquity" ist nicht referenziert und wird aus der exp-Datei entfernt.

Die Funktion "CountTrades" ist nicht referenziert und wird aus der exp-Datei entfernt.

Die Funktion "CloseOrder" ist nicht referenziert und wird aus der exp-Datei entfernt.

aber die Funktion "IncreaseLots()" wird überhaupt nicht angezeigt.

Es ist, als würde sie nicht existieren....

Wie ist die Funktion IncreaseLots() anders strukturiert als die anderen Funktionen, die sie sehen kann?

Die Funktion wird deklariert, dann folgt

{

blah

blah

blah

return();

}

was muss eine Funktion noch haben? Das ist alles, was die anderen haben!!!!

Wenn ich IncreaseLots() aus dem EA aufrufe, erhalte ich die Fehlermeldung... Funktion nicht definiert... als ob sie nicht da wäre... aber sie ist da, GERADE DORT!!!! Warum ist das Ganze für den Compiler unsichtbar???