Gogetter EA - página 14

 

Aqui estão os arquivos .gif que acompanham os arquivos .htm do post anterior...

também me pediram um arquivo de instalação do build 188, hoje cedo...

Procurei por esse número de build mas não o vejo...não me lembro de ter feito um build 188 talvez tenha feito, mas terei que cavar para encontrá-lo...não sei o que é tão especial que alguém me pedisse aquele build..... em particular que teria sido uma versão muito antiga destes se eu tivesse feito um....

Vou continuar procurando...

Arquivos anexados:
ggl3-01.gif  6 kb
ggs3wrsi.gif  9 kb
 

Esqueci de mencionar que estou rodando o GGS3 no gráfico 1H e o GGL3.01 no gráfico 30M.

Tive alguém voluntário que, se eu pudesse fornecer-lhes um .exe de instalação para o Build 188 do terminal Metatrader 4, eles fariam valer a pena. Eu fiz meus testes no build 195 e não tenho um build 188 para o terminal... alguém mais tem um que você compartilharia?

 

Adivinhe qual é a diferença entre estes dois testes?

Configurações? não

EA? não

Depósito inicial? não

Faixas de datas? não

Par de moedas? não

Você clicou em recalcular antes de cada um deles? sim

A única diferença é que a que é lucrativa foi feita logo após a reabertura do mercado no domingo. E a que não era rentável foi feita logo após o fechamento do mercado, na sexta-feira.

Então alguém me diz por que o testador de costas deve se importar se o mercado está aberto ou não quando ele testa um intervalo de datas que está inteiramente armazenado no centro de história?

Arquivos anexados:
 
Maji:
Tente o seguinte:

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, eu cheguei até aqui....

[PHP]int handle; //impressão para arquivo

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

//| função de iniciação de especialista |

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

int init()

{

BarCount = Barras;

se (CadaTickMode) Corrente = 0; caso contrário Corrente = 1;

handle=FileOpen(EAName+"_"+Symbol()+".txt", FILE_CSV|FILE_WRITE, ';');//impressão para arquivo

retorno(0);

}

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

//| função de desinicialização especializada |

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

int deinit()

{

FileClose(handle);//impressão para arquivo

retorno(0);

}

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

//| função de início especializado |

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

int start()

{

Não sei como/onde completar esta direção...

...." FileWrite(handle, TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS), iOpen... ); //declara-os como variáveis e depois insere-os na rotina de escrita do arquivo"

 

Maji disse, ...colocar a rotina onde ela é atualizada uma vez a cada barra e não a cada carrapato.

Alguém pode me mostrar onde isso fica? Apesar de minhas ocasionais ilusões de competência, realmente não tenho a menor idéia sobre isso.

 

Sinto muito, mas não tenho tempo para mexer com seu código agora mesmo. Você deve inserir a linha que escreve a hora, abrir etc. exatamente onde seu sistema é atualizado na nova barra. Por enquanto, por que não simplesmente inserir essa linha antes do retorno(0) em seu loop inicial. Quanto a como construir o comando filewrite, que você mesmo terá que descobrir, eu já lhe dei munições suficientes para fazer isso.

Por que você simplesmente não começa a testar seu sistema, e assim você pode verificá-lo todos os dias contra o seu backktest e ver como ele está funcionando?

Boa sorte.

 
Maji:
Sinto muito, mas não tenho tempo para mexer com seu código agora mesmo. Você deve inserir a linha que escreve a hora, abrir etc. exatamente onde seu sistema é atualizado na nova barra. Por enquanto, por que não simplesmente inserir essa linha antes do retorno(0) em seu loop inicial. Quanto a como construir o comando filewrite, que você mesmo terá que descobrir, eu já lhe dei munições suficientes para fazer isso

Por que você simplesmente não começa a testar seu sistema, e assim você pode verificá-lo todos os dias contra o seu backktest e ver como ele está funcionando?

Boa sorte.

Reconheço que você tem outras prioridades, por isso não estava lhe pedindo, no entanto a pista ajuda pelo menos para a colocação da linha. Obrigado

Estou testando. Isto é, eu estava até que minha conta demo explodiu durante o fim de semana do dia de trabalho, não expirou, ela apenas foi encerrada junto com todas as minhas outras contas demo. Esta manhã, eu tive que começar uma nova de novo... não fazia idéia porque todas elas foram apagadas. Eu não fiz isso. Uma anamolie interbancária, suponho.

 

Digamos, por exemplo, que eu faço isso e provo que não estou usando os mesmos dados todas as vezes, apesar de ter sido avisado, ou que não está processando os dados da mesma maneira ou o que quer que seja, então o quê?

Tenho outros testes de estratégia que parecem não usar os mesmos intervalos de datas ou todos os intervalos de datas quando lhes digo. o que eu ou alguém pode fazer sobre isso? Acho seguro assumir que outras pessoas têm irregularidades semelhantes, mas o que pode ser feito a respeito delas?

Não me parece realmente um testador de estratégia neste momento. Mais como um teaser de estratégia, porque não há nenhuma maneira de eu conseguir realmente controlar ou apunhalar sua compilação/processamento. Ele só processa intervalos parciais de datas quando existem arquivos de dados completos para fazer todo o intervalo especificado. Não parece ser 100% consistente. Eu não saberia o que fazer para repará-lo, mesmo que eu provasse que são inconsistências. Ela age mais como uma roleta do que uma ferramenta de teste de precisão.

 

correio desnecessário

 

aqui está meu skitoma...não vejo porque no arquivo acima inclui https://www.mql5.com/en/forum/general

o compilador pode encontrar estas funções...(quando eu adiciono isto inclui arquivo em um EA e antes de chamar estas funções.... eu recebo estes erros me dizendo que pelo menos o compilador SEES estas 5 funções....

A função "StoreHighhsAndLows" não é referenciada e será removida do arquivo exp-file

A função "GetPastEquity" não é referenciada e será removida do exp-file

A função "StoreAccountEquity" não é referenciada e será removida do exp-file

A função "CountTrades" não é referenciada e será removida do exp-file

A função "CloseOrder" não é referenciada e será removida do arquivo de exp

mas não vê o IncreaseLots() de modo algum.

É como se ele não existisse....

como está estruturado o IncreaseLots() de forma diferente de qualquer outra função que ele possa ver.

ele declara a função, então ele tem

{

blá

blá

blá

retorno();

}

o que mais uma função tem que ter? Isso é tudo o que os outros têm!!!!

Veja quando eu chamo o IncreaseLots() da EA eu recebo o erro...função não definida...como se não estivesse lá...mas está lá, CERTO THERE!!!! Por que tudo isso é invisível para o compilador???