Grande EA no backtest! - página 116

 
Beno:
Li esta linha da frente para trás tentando encontrar uma solução que tenho a

Cyberia Trader1.85g versão jpy.mq4 Eu a carreguei e tenho o rosto mas não recebi nenhuma ordem. Estou usando o par USD/CHF em 30mins. não ter nenhuma ordem faz com que seja realmente difícil fazer qualquer teste de avanço. o sistema está rodando há 4 dias e ainda não tem nenhuma ordem.

alguma ajuda seria ótimo, obrigado.

aplausos

Beno

Eu o ajudaria se soubesse como fazer melhor do que 70%, mas não sei. Eu corro na tabela de 1hr, tente isso.

 
Aaragorn:
Obrigado por esse pedaço de código. Eu olhei para ele e posso vê-lo tanto criando como lendo arquivos. Não o vejo anexando nada no final de um arquivo que já tenha sido criado. Talvez esteja e eu simplesmente não estou vendo e talvez não esteja fazendo isso e não há nada para ver. Gostaria de conhecer um código que soubéssemos que estava anexando dados ao final para que eu pudesse ver como ele o faz.

Dê uma olhada nesta linha:

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

 

Eu realmente tenho invadido este código e o deixei uma bagunça... mas...

meus esforços para que isto fosse impresso e arquivado estão se mostrando infrutíferos no momento.

Acho que vou pedir àqueles que querem ajudar na coleta de dados que façam a tentativa de fazer isso manualmente.

Tenho esta EA anexada para imprimir para a revista as lógicas mínimas do CT. Isto não é agarrar nenhum indicador, mas talvez apenas olhar para a lógica do CT nos dê algo a acompanhar.

Para reunir estes dados, o que você precisa fazer é executar a ea no backtester configurado exatamente como ele é. No entanto, enquanto ele é executado, você precisa monitorar a aba do diário. Como o diário não conterá mais do que os dados de alguns pedidos sem começar a truncar e deixar os dados na extremidade inferior. você precisará parar o teste muito rapidamente quando chegar a cerca de cada 5 - 7 pedidos sucessivos. Depois copie e cole os dados em um bloco de notas e reinicie o testador observando para ver quando chega ao local onde você fez a cópia/colagem anterior. Você tem que ter o cuidado de capturar todos os dados quando colar, que se parecem com isto para uma ordem...

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

execute isto em um gráfico de uma hora e capture os dados. depois me envie o arquivo .txt do bloco de notas por e-mail, talvez se a islandhome começou no primeiro pedido e fez os primeiros 500 traeds de 2005 e a AZBOfin começou com o trade 500 de 2005 e fez os próximos 500?

ah! bollay that. deixe-me tentar o que o guru do codificador acabou de colocar.

Arquivos anexados:
 
codersguru:
Dê uma olhada nesta linha:https://www.mql5.com/en/forum/175496

uau, você pode ter me poupado de muitos problemas aqui...

você poderia olhar a EA que eu afixei e ver se estou tentando imprimir para arquivar em 4 lugares no código. Duas vezes onde abre ordens e depois em funções separadas quando fecha ordens. Você vê o que eu estou tentando extrair disso? Você poderia me ajudar a codificar isto para que ele registre as informações de cada pedido, a lógica do programa quando ele abre e o resultado quando o pedido fecha?

se eu fizer este fluxo de arquivos depois de cada vez, ele apagará alguma coisa? Eu ainda não entendo como funciona o fluxo de arquivos.

 

Eureka! Oh cara, bem obrigado guru do programador, bom resgate!

agora eu ainda estou um pouco confuso aqui...repare que o arquivo .txt não está imprimindo uma linha de resultado para cada pedido. por que está pulando isso para alguns pedidos que eu me pergunto?

Posso assumir que se não imprimir a linha de resultado é uma posição perdedora?

Arquivos anexados:
 

Você nunca será capaz de decifrar esses dados nesse formato, você precisa que eles estejam em filas, tente incorporá-los.

Ainda tenho um problema com isso dizendo que muitos arquivos estão abertos... mas aqui está a maneira básica como seu dumpp precisa ser formado para que você possa visualizá-lo em excelência.

//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:
Você nunca será capaz de decifrar esses dados nesse formato, você precisa que eles estejam em filas, tente incorporá-los.

Eu ainda tenho um problema com isso dizendo que muitos arquivos estão abertos... mas aqui está a maneira básica como seu boneco precisa ser formado para que você possa vê-lo de forma excelente.

//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);

}

isso não é um problema para mim.

o recurso de importação de dados externos no Excel o coloca em filas muito bem. basta dizer que está delimitado por ";" O desafio que eu gostaria de enfrentar com a formatação é que não está imprimindo uma linha de resultado por perder posições. Isto significa que os dados nas linhas não são os mesmos para cada ordem, o que dificulta o desenho de um identificador que reconheça as entradas perdidas. neste momento, eu posso puxar os dados vencedores separados dos demais, talvez isso seja suficiente, acho que posso trabalhar em torno do que tenho, mas ainda não tenho nenhum dado indicador nisto.

 

Olha só...eu dei esta coisa, agora é uma função muito própria para salvar a linha de resultados do negócio perdido e STILLL não vai imprimir a linha???? oy, vamos lá, uma linha é pedir demais?

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

É o mesmo código! (praticamente) Esta linguagem mql é incrivelmente temporária!

Arquivos anexados:
 

oi Aaragorn

pls carregar o melhor arquivo de conjunto

para ciber

tnx

tchau

 
nanoc:
oi Aaragorn

pls carregar o melhor arquivo de conjunto

para ciber

tnx

tchau

está nisto...

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

Razão: