Problemas ao postar no Market - Validação - página 2

Para adicionar comentários, por favor Faça o login ou registrar
Ruy Christian Hoffmann
708
Ruy Christian Hoffmann  
Rogerio Giannetti Torres:

Olá,

já que você está trabalhando com FOREX,  vou dar meu pitaco, faz a mesma alteração para venda.

OBS:

Faz uso da classe CSymbolInfo,

O preço na ordem funciona para ordens a mercado e ordens imediata e neste caso o requote tem que ser testado.

Digitei direto então deve ter algum erro de sintaxe.


Oi Rogério, não é FOREX não... é o Validador do MT5 que a gente precisa adaptar a realidade do mercado brasileiro para as regras do mercado europeu senão o EA não é Validado no Market. Coisa meio estranha..... mas talvez o que você fez dê certo, vou tentar aqui. 

Obrigado.

Rogerio Giannetti Torres
3138
Rogerio Giannetti Torres  
Ruy Christian Hoffmann:

Oi Rogério, não é FOREX não... é o Validador do MT5 que a gente precisa adaptar a realidade do mercado brasileiro para as regras do mercado europeu senão o EA não é Validado no Market. Coisa meio estranha..... mas talvez o que você fez dê certo, vou tentar aqui. 

Obrigado

Ruy não é mercado europeu,  ele valida se o EA está apto para diversos os tipos de cálculos (FOREX,  CFD, Mercado Futuro, Bolsa,  BONDS ...) e para os tipos de ordens: instante, mercado. 

PS: Ruy sugiro você colocar nos comentários do seu EA, que ele é voltado para trabalhar com BOLSA em especial a B3. 

Ruy Christian Hoffmann
708
Ruy Christian Hoffmann  
Rogerio Giannetti Torres:

Ruy não é mercado europeu,  ele valida se o EA está apto para diversos os tipos de cálculos (FOREX,  CFD, Mercado Futuro, Bolsa,  BONDS ...) e para os tipos de ordens: instante, mercado. 

PS: Ruy sugiro você colocar nos comentários do seu EA, que ele é voltado para trabalhar com BOLSA em especial a B3. 

Rogério, sim, já está nos comentários.

To tentando aqui...incrivelmente já estou desde as 9h pegado somente nisso... eu evoluindo te falo.

Obrigado,

Ruy Christian Hoffmann
708
Ruy Christian Hoffmann  

Bom dia amigos,

Depois de 3 dias de "surra" como não tomava a tempos, finalmente consegui, graças as ajudas de Jonathan e Rogério ainda pude dar uma melhorada no meu EA.

Ser objetivo em onde estava o problema não vou saber dizer, pois no final das contas alterei tantos cantos que perdi a rastreabilidade do que realmente era o problema, mas tenho uma boa ideia onde pode ter sido.

Fiquei com receio de até o arquivo do EA estar corrompido e criei um novo, do zero, então fui adicionando literalmente um "copiar/colar" blocos do arquivo antigo no novo e testando, testando, testando para ver até onde parava. Neste momento me pareceu ser problema em converter os valores em pontos, como Jonathan sugeriu. Então ele me deu uma força para ficar funcional, testei, nada, refizemos, testei novamente e nada...

Dai comecei a pensar que o erro que estava apresentando não fosse exatamente o problema, e sim poderia ter problema em algum outro lugar que estivesse refletindo em aparecer aquela mensagem então voltei a outras coisas.

Fuçando daqui e dali percebi que o meu "simbolo.Ask, Bid, Last etc não estão funcionando


... mesmo eu carregando direitinho:

#include <Trade/SymbolInfo.mqh>
CSymbolInfo simbolo; //Instância da Classe CSymbolInfo (biblioteca)
OnTick()
simbolo.Ask();
simbolo.Bid();

E isso não estava no meu foco antes, pois os erros apresentados era falta de checagem de Margem, falta de checagem de Volume válido, StopLoss incorreto, enfim, eu ficava correndo atrás de coisa que estava ok, mas que não eram o problema.

Então substituí todos os simbolo.Ask, Bid, Last, etc por:

double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
Last=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_LAST),_Digits);

Dai pararam todos os vários erros de uma vez só. Então creio que o problema estava neste ponto.

Jonathan, testei sem converter para pontos *PriceStep() e deu certo também. Mas como já ficou prontinho, bonitinho então deixei com o PriceStep :) Obrigado pela ajuda Jonathan :) Eu estranhei inicialmente porque já publiquei da versão 1.0 até a 1.8 e nunca precisei converter, mas os Relatórios de Erros estavam apontando também para isso, então valeu muito a ajuda :)

Vou fazer uns Refresh e demais testes em alguns pontos do EA para testar porque o  "simbolo..." parou de buscar os valores Ask, Bid e Last.

Obrigado e abração :)





Jonathan Pereira
1008
Jonathan Pereira  
Ruy Christian Hoffmann:

Bom dia amigos,

Depois de 3 dias de "surra" como não tomava a tempos, finalmente consegui, graças as ajudas de Jonathan e Rogério ainda pude dar uma melhorada no meu EA.

Ser objetivo em onde estava o problema não vou saber dizer, pois no final das contas alterei tantos cantos que perdi a rastreabilidade do que realmente era o problema, mas tenho uma boa ideia onde pode ter sido.

Fiquei com receio de até o arquivo do EA estar corrompido e criei um novo, do zero, então fui adicionando literalmente um "copiar/colar" blocos do arquivo antigo no novo e testando, testando, testando para ver até onde parava. Neste momento me pareceu ser problema em converter os valores em pontos, como Jonathan sugeriu. Então ele me deu uma força para ficar funcional, testei, nada, refizemos, testei novamente e nada...

Dai comecei a pensar que o erro que estava apresentando não fosse exatamente o problema, e sim poderia ter problema em algum outro lugar que estivesse refletindo em aparecer aquela mensagem então voltei a outras coisas.

Fuçando daqui e dali percebi que o meu "simbolo.Ask, Bid, Last etc não estão funcionando


... mesmo eu carregando direitinho:

E isso não estava no meu foco antes, pois os erros apresentados era falta de checagem de Margem, falta de checagem de Volume válido, StopLoss incorreto, enfim, eu ficava correndo atrás de coisa que estava ok, mas que não eram o problema.

Então substituí todos os simbolo.Ask, Bid, Last, etc por:

Dai pararam todos os vários erros de uma vez só. Então creio que o problema estava neste ponto.

Jonathan, testei sem converter para pontos *PriceStep() e deu certo também. Mas como já ficou prontinho, bonitinho então deixei com o PriceStep :) Obrigado pela ajuda Jonathan :) Eu estranhei inicialmente porque já publiquei da versão 1.0 até a 1.8 e nunca precisei converter, mas os Relatórios de Erros estavam apontando também para isso, então valeu muito a ajuda :)

Vou fazer uns Refresh e demais testes em alguns pontos do EA para testar porque o  "simbolo..." parou de buscar os valores Ask, Bid e Last.

Obrigado e abração :)

Que bom que resolveu...Uma dica para não perder o que ja fez é ou usar o versionador da própria meta quotes ou usar uma ferramenta git, assim conforme vai alterando vc vai commitando as alterações, e no pior dos cenários da pra voltar a versão.


Abraços!

Ruy Christian Hoffmann
708
Ruy Christian Hoffmann  
Jonathan Pereira:

Que bom que resolveu...Uma dica para não perder o que ja fez é ou usar o versionador da própria meta quotes ou usar uma ferramenta git, assim conforme vai alterando vc vai commitando as alterações, e no pior dos cenários da pra voltar a versão.


Abraços!

Rapaz... nem sabia que o Meta tem versionador... vou procurar.

Rogerio Giannetti Torres
3138
Rogerio Giannetti Torres  
Ruy Christian Hoffmann:


Boa noite.

Ruy veja aí o que tá faltando no seu código, pois simbolo.Ask() e simbolo.Bid()  funciona perfeitamente

 

OnInit()
{
CSymbolInfo   simbolo;

simbolo.Name(_Symbol);  // define o simbolo que vai ser usado pela classe.
simbolo.Refresh();      // recupera as especificações do simbolo

}


Para recuperar as cotações:

OnTick()
{

if( !simbolo.RefreshRates() ) return;
ASK = simbolo.Ask();
BID = simbolo.BID();


}
12
Para adicionar comentários, por favor Faça o login ou registrar