Großartiger EA im Backtest! - Seite 116

 
Beno:
Ich habe diesen Thread von vorne bis hinten gelesen und versucht, eine Lösung zu finden, ich habe die

Cyberia Trader1.85g jpy.mq4 Version Ich habe es geladen und habe das Gesicht, aber ich habe keine Aufträge auf allen hatte. Ich benutze das USD/CHF-Paar auf 30mins. keine Aufträge macht es wirklich schwer zu tun, alle Forward-Testing. das System läuft seit 4 Tagen und immer noch keine Aufträge.

Etwas Hilfe wäre großartig, danke.

Danke

Beno

Ich würde Ihnen helfen, wenn ich wüsste, wie man besser als 70% macht, aber ich weiß es nicht. Ich arbeite mit dem 1-Stunden-Chart, versuchen Sie das.

 
Aaragorn:
Vielen Dank für dieses Stück Code. Ich habe ihn mir angesehen und kann sehen, dass er sowohl Dateien erstellt als auch liest. Ich sehe nicht, dass er etwas an das Ende einer bereits erstellten Datei anhängt. Vielleicht ist es so, und ich sehe es nur nicht, und vielleicht tut es das auch nicht, und es gibt nichts zu sehen. Ich wünschte, ich wüsste ein Stück Code, von dem wir wissen, dass er Daten an das Ende anhängt, damit ich sehen kann, wie er es macht.

Schauen Sie sich diesen Thread an:

https://www.mql5.com/en/forum/175496

 

Ich habe wirklich an diesem Code gehackt und ich habe es eher ein Durcheinander verlassen... aber...

meine Bemühungen, dies in eine Datei zu drucken, sind im Moment erfolglos.

Ich denke, dass ich diejenigen, die bei der Datenerfassung helfen wollen, bitten werde, den Versuch zu unternehmen, dies manuell zu tun.

Ich habe den beigefügten EA so eingestellt, dass er die minimale Logik des CTs in das Journal druckt. Dies ist nicht greifen alle Indikatoren, aber vielleicht nur Blick auf die Logik der CT wird uns etwas zu gehen mit.

Um diese Daten zu sammeln, was Sie tun müssen, ist die ea in der Backtester einrichten, so wie es ist. jedoch, während es läuft, müssen Sie die Registerkarte Journal zu überwachen. Da das Journal nicht mehr als die Daten von ein paar Aufträgen, ohne zu beginnen, um abzuschneiden und Drop-Daten aus dem unteren Ende. Sie müssen den Test sehr schnell zu stoppen, wenn Sie erreichen etwa jede aufeinanderfolgende 5 - 7 Aufträge. Kopieren Sie dann die Daten und fügen Sie sie in einen Notizblock ein, und starten Sie den Tester erneut, um zu sehen, wann er an der Stelle ankommt, an der Sie das vorherige Kopieren/Einfügen vorgenommen haben. Sie müssen darauf achten, dass Sie beim Einfügen alle Daten erfassen, was bei einer Bestellung so aussieht...

2006.11.10 10:22:52 2004.03.05 03:02 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: close #56 buy 0.42 EURUSDm at 1.2188 sl: 1.2171 tp: 1.2285 at price 1.2210

2006.11.10 10:22:52 2004.03.05 03:02 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Recorded Winning Long 56 Opened: 1.2188 Closed: 1.221

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Ticket: 56 DV: -0.0051 CCI: 57.9346 Long order is opened @: 1.2188 StopLoss= 1.2171 TakeProfit= 1.2285

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Buy @ Minute 40

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: open #56 buy 0.42 EURUSDm at 1.2188 sl: 1.2171 tp: 1.2285 ok

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityMid:0.0004

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityMid:0.0004

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityMid:0.0009

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuySucPossibilityMid:0.002

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellSucPossibilityMid:0.0021

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedSucPossibilityMid:0.0021

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityQuality:8

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityQuality:8

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityQuality:19

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuySucPossibilityQuality:7

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellSucPossibilityQuality:7

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedSucPossibilityQuality:14

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: UndefinedPossibilityMid*UndefinedPossibilityQuality:0.0164

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: BuyPossibilityMid*BuyPossibilityQuality:0.0032

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: SellPossibilityMid*SellPossibilityQuality:0.0034

2006.11.10 10:22:52 2004.03.04 18:40 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: Hour: 18 Minute: 40

Führen Sie dies auf einem einstündigen Chart aus und erfassen Sie die Daten. Schicken Sie mir dann die .txt notepad-Datei per E-Mail. Vielleicht, wenn islandhome bei der ersten Bestellung beginnt und die ersten 500 Trades von 2005 durchführt und AZBOfin mit Trade 500 von 2005 beginnt und die nächsten 500 durchführt?

ah! bollay das. lassen Sie mich versuchen, was coder's guru gerade gepostet.

 
codersguru:
Werfen Sie einen Blick auf diesen Thread: https://www.mql5.com/en/forum/175496

wow, Sie können nur gespeichert haben mir viel Ärger hier...

könnten Sie auf die EA, die ich gepostet und sehen, wo ich versuche, in Datei an 4 Stellen im Code zu drucken. Zweimal, wo er Aufträge öffnet und dann in separaten Funktionen, wenn er Aufträge schließt. Sie sehen, was ich versuche, von diesem zu extrahieren? Könnten Sie mir helfen, den Code so zu gestalten, dass er die Informationen zu jeder Bestellung, die Logik des Programms beim Öffnen und das Ergebnis beim Schließen der Bestellung aufzeichnet?

Wenn ich die Datei nach jedem Mal leere, wird dann etwas gelöscht? Ich verstehe immer noch nicht, wie das mit dem Flushen funktioniert.

 

Heureka! Oh Mann, vielen Dank, Coder's Guru, tolle Rettung!

Jetzt bin ich immer noch ein bisschen verwirrt... in der .txt-Datei wird nicht für jeden Auftrag eine Ergebniszeile gedruckt. warum wird das bei einigen Aufträgen übersprungen, frage ich mich?

Kann ich davon ausgehen, dass es sich um eine Verlustposition handelt, wenn die Ergebniszeile nicht gedruckt wird?

 

Sie werden niemals in der Lage sein, die Daten in diesem Format zu entziffern, Sie brauchen sie in Zeilen, versuchen Sie, diese einzubauen.

Ich habe immer noch ein Problem mit der Meldung, dass zu viele Dateien geöffnet sind... aber hier ist die grundlegende Art und Weise, wie Ihr Dumpp formatiert werden muss, damit Sie es in Excel anzeigen können

//LOGIC FOR HEADER OF FILE - creates the header labels for the rows in the CSV file

string fileName = Symbol() + "-" + TimeToStr(LocalTime(), TIME_DATE) + " " + TimeHour(LocalTime()) + "-" + TimeMinute(LocalTime()) + ".csv";

File = FileOpen(fileName, FILE_CSV|FILE_WRITE, ',');

if (FileWrite(File, Symbol(),"DATETIME","Lots","Bid","SlipPage","StopLoss","TakeProfit","MagicNumber",

"SellPossibilityMid*SellPossibilityQuality",

"BuyPossibilityMid*BuyPossibilityQuality",

"UndefinedPossibilityMid*UndefinedPossibilityQuality",

"UndefinedSucPossibilityQuality",

"SellSucPossibilityQuality",

"BuySucPossibilityQuality",

"UndefinedPossibilityQuality",

"SellPossibilityQuality",

"BuyPossibilityQuality",

"UndefinedSucPossibilityMid",

"SellSucPossibilityMid",

"BuySucPossibilityMid",

"UndefinedPossibilityMid",

"SellPossibilityMid",

"BuyPossibilityMid",

"Decision" ) < 0)

{

PrintError();

return (Error);

}

//LOGIC FOR APPEND OF FILEWRITE - Writes the rows of data

//Record statistics at time of Order - Added by DudeWorks

void RecordTickets ()

{

if (Error > 0)

return (Error); //stop on error

FileSeek(File,0,SEEK_END);

if (FileWrite(File, Symbol(),TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),Lots,Bid,SlipPage,StopLoss,TakeProfit,MagicNumber,

SellPossibilityMid*SellPossibilityQuality,

BuyPossibilityMid*BuyPossibilityQuality,

UndefinedPossibilityMid*UndefinedPossibilityQuality,

UndefinedSucPossibilityQuality,

SellSucPossibilityQuality,

BuySucPossibilityQuality,

UndefinedPossibilityQuality,

SellPossibilityQuality,

BuyPossibilityQuality,

UndefinedSucPossibilityMid,

SellSucPossibilityMid,

BuySucPossibilityMid,

UndefinedPossibilityMid,

SellPossibilityMid,

BuyPossibilityMid,

Decision) < 0)

{

PrintError();

return (Error);

}

FileFlush(File);

return(0);

}

 
DudeWorks:
Sie werden niemals in der Lage sein, diese Daten in diesem Format zu entziffern, Sie müssen sie in Zeilen darstellen, versuchen Sie, diese einzubauen.

Ich habe immer noch ein Problem mit der Meldung, dass zu viele Dateien geöffnet sind... aber hier ist die grundlegende Art und Weise, wie Ihr Dumpp formatiert werden muss, damit Sie es in Excel anzeigen können

//LOGIC FOR HEADER OF FILE - creates the header labels for the rows in the CSV file

string fileName = Symbol() + "-" + TimeToStr(LocalTime(), TIME_DATE) + " " + TimeHour(LocalTime()) + "-" + TimeMinute(LocalTime()) + ".csv";

File = FileOpen(fileName, FILE_CSV|FILE_WRITE, ',');

if (FileWrite(File, Symbol(),"DATETIME","Lots","Bid","SlipPage","StopLoss","TakeProfit","MagicNumber",

"SellPossibilityMid*SellPossibilityQuality",

"BuyPossibilityMid*BuyPossibilityQuality",

"UndefinedPossibilityMid*UndefinedPossibilityQuality",

"UndefinedSucPossibilityQuality",

"SellSucPossibilityQuality",

"BuySucPossibilityQuality",

"UndefinedPossibilityQuality",

"SellPossibilityQuality",

"BuyPossibilityQuality",

"UndefinedSucPossibilityMid",

"SellSucPossibilityMid",

"BuySucPossibilityMid",

"UndefinedPossibilityMid",

"SellPossibilityMid",

"BuyPossibilityMid",

"Decision" ) < 0)

{

PrintError();

return (Error);

}

//LOGIC FOR APPEND OF FILEWRITE - Writes the rows of data

//Record statistics at time of Order - Added by DudeWorks

void RecordTickets ()

{

if (Error > 0)

return (Error); //stop on error

FileSeek(File,0,SEEK_END);

if (FileWrite(File, Symbol(),TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),Lots,Bid,SlipPage,StopLoss,TakeProfit,MagicNumber,

SellPossibilityMid*SellPossibilityQuality,

BuyPossibilityMid*BuyPossibilityQuality,

UndefinedPossibilityMid*UndefinedPossibilityQuality,

UndefinedSucPossibilityQuality,

SellSucPossibilityQuality,

BuySucPossibilityQuality,

UndefinedPossibilityQuality,

SellPossibilityQuality,

BuyPossibilityQuality,

UndefinedSucPossibilityMid,

SellSucPossibilityMid,

BuySucPossibilityMid,

UndefinedPossibilityMid,

SellPossibilityMid,

BuyPossibilityMid,

Decision) < 0)

{

PrintError();

return (Error);

}

FileFlush(File);

return(0);

}

Das ist für mich kein Problem.

Mit der Funktion zum Importieren externer Daten in Excel lassen sich die Daten sehr gut in Zeilen einfügen. Sagen Sie einfach, dass sie durch ";" getrennt werden sollen. Dies bedeutet, dass die Daten in den Zeilen ist nicht das gleiche für jede Bestellung, die es schwierig, einen Bezeichner, der die Verluste Einträge erkennt zu entwerfen macht. im Moment kann ich die Gewinndaten auseinander ziehen aus dem Rest gut, vielleicht ist das genug, ich denke, ich kann arbeiten, um das, was ich habe, aber ich habe keine Indikator-Daten in diesem noch.

 

Sehen Sie sich das an... Ich habe diesem Ding jetzt eine eigene Funktion gegeben, um die Ergebniszeile des verlorenen Handels zu speichern, und trotzdem wird die Zeile???? nicht gedruckt oy, ist das zu viel verlangt?

void RecordLongLOutcomes()

{

//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY)

{

if(OrderOpenPrice() + Spread >= OrderClosePrice())

{

datetime blorderOpen=OrderOpenTime();

handle = FileOpen("Cyberia.txt",FILE_READ|FILE_WRITE);

if(handle!=-1)

{

FileSeek(handle,0,SEEK_END);

FileWrite(handle,"Losing Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",blorderOpen);

FileWrite(handle," ");

Print("Recorded Losing Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

FileFlush(handle);

FileClose(handle);

}

else

{

int err1;

err1=GetLastError();

Print("error(",err1,"): ",ErrorDescription(err1));

return(0);

}

}//if win or lose

}//if buy

}//if symbol and magic number

return (0);

}//record long outcomes[/PHP]

what gives???

see this? this works fine...

[PHP]void RecordLongOutcomes()

{

//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY)

{

if(OrderOpenPrice() + Spread < OrderClosePrice())

{

datetime borderOpen=OrderOpenTime();

handle = FileOpen("Cyberia.txt",FILE_READ|FILE_WRITE);

if(handle!=-1)

{

FileSeek(handle,0,SEEK_END);

FileWrite(handle,"Winning Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);

FileWrite(handle," ");

Print("Recorded Winning Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

FileFlush(handle);

FileClose(handle);

}

else

{

int err;

err=GetLastError();

Print("error(",err,"): ",ErrorDescription(err));

//return(0);

}

}//if win or lose

}//if buy

}//if symbol and magic number

RecordLongLOutcomes();

return (0);

}//record long outcomes

Es ist derselbe Code! (praktisch) Diese mql-Sprache ist erstaunlich launisch!

 

Hallo Aaragorn

bitte laden Sie die beste Datei hoch

für cyber

tnx

Auf Wiedersehen

 
nanoc:
Hallo Aaragorn

Bitte laden Sie die beste Datei hoch

für cyber

tnx

tschüss

es ist in diesem...

https://www.mql5.com/en/forum/174700/page71