que precisam de ajuda na codificação, por favor

 
Preciso de ajuda, por favor. Sou um novato em codificação, mas tenho negociado forex por um bom tempo.

Com a ajuda do "Expert Advisor Builder", construí a EA anexa, que funciona em testes. O problema é que ela não funciona quando colocada em vários gráficos ao vivo. Como ele usa um teste de 4 horas, é muito tempo para ver se minhas correções o consertam, e eu estou ficando frustrado.

Eu renomeei o mesmo EA como 5 nomes diferentes, e coloquei um em cada um dos 5 gráficos de pares diferentes, todos na mesma plataforma MT4. Isso não funcionou.

Por favor, alguém pode olhar isto e me aconselhar sobre como fazer o código funcionar para que eu possa usá-lo em mais de um par?
 
//+------------------------------------------------------------------+
//| QQE 4hr_15min TESTING                                            |
//| triggers on 4 hour QQE, then uses 15 min QQE to enter trade.     |
//+------------------------------------------------------------------+

#property copyright "Expert Advisor Builder"
#property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"





//Check position                 
             bool IsTrade = False;
             for(int i = 0; i < Total; i ++) 
               {                       
                OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
                if(OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) 
                  {                 
                   IsTrade = True;
                   if(OrderType() == OP_BUY) 
                     {            
//Close                          
//+------------------------------------------------------------------+
//| Signal Begin (Exit Buy)                                           |
//+------------------------------------------------------------------+

Para mostrar que construtor de um mau conselheiro especialista isto é, copiei algumas linhas

Não está usando o número mágico dos ofícios quando verifica os ofícios abertos

esta EA pode administrar negócios que você não quer que tenham sido alterados por esta EA

Está contando para cima verificando os negócios e neste loop total também fechará os negócios então terá que contar para baixo......

 

E qualquer que seja o resultado da Orderselect(), continuamos executando o próximo bloco.

LOL

 

Como eu disse, sou um novato em codificação, e esta EA está/estava funcionando, então eu tentei desenvolvê-la, e quando fiquei perplexo, pedi ajuda neste fórum.

Boa tentativa de zombar de meus esforços, sem dizer nada que, como novato, eu possa usar. O LOL é porque eu pedi ajuda?

Eu não quero ou preciso me tornar um especialista em codificação, apenas assumi que um pedido educado de ajuda para resolver um simples erro (ou dois) levaria alguém a me aconselhar sobre onde está o erro no código. O que os deVries digitaram aqui efetivamente NÃO me ajuda em nada, pois eu teria que estudar/praticar/experimentar por talvez anos para até mesmo entender o que foi dito.

Não foram todos vocês novatos uma vez, e precisaram apenas de uma palavra de ajuda para que os códigos simples funcionassem? Por favor?

 
unclebigpete:


Não foram todos vocês novatos uma vez, e precisaram apenas de uma palavra de ajuda para fazer funcionar códigos simples? Por favor?

Sim, há 4 anos... faça algum esforço para aprender... talvez você não queira ser um especialista, eu não me considero um especialista, mas para fazer um EA que funcione corretamente você precisará aprender a codificar corretamente... alternativamente, você sempre pode pedir a outra pessoa que o faça por você: Empregos
 

Raptor, estou fazendo um esforço. Eu só quero um EA funcional que eu possa desenvolver mais AS I LEARN. Eu tinha este funcionando, e depois afinei algo e agora não funciona. Tenho lido sobre codificação, e não tenho 4 ou mais anos para me atualizar. Apenas uma pequena ajuda real, por favor, pois o que foi dito aqui não me ajuda muito.

É um pouco como aprender a fumar um cigarro onde o conselho é "acendê-lo"!

 
unclebigpete:

Como eu disse, sou um novato em codificação, e esta EA está/estava funcionando, então eu tentei desenvolvê-la, e quando fiquei perplexo, pedi ajuda neste fórum.

Foi uma boa tentativa de fazer pouco de meus esforços, sem dizer nada que, como novato, eu possa usar. O LOL é porque eu pedi ajuda?

Eu não quero ou preciso me tornar um especialista em codificação, apenas assumi que um pedido educado de ajuda para resolver um simples erro (ou dois) levaria alguém a me aconselhar sobre onde está o erro no código. O que os deVries digitaram aqui efetivamente NÃO me ajuda em nada, pois eu teria que estudar/praticar/experimentar por talvez anos para até mesmo entender o que foi dito.

Não foram todos vocês novatos uma vez, e precisaram apenas de uma palavra de ajuda para que os códigos simples funcionassem? Por favor?


"é muito tempo para ver se minhas correções consertam isso e estou ficando frustrado" citado por vocês

Este é o problema que você tem. Você está usando um "Expert Advisor Builder" (que é codificar um mau caminho....) para fazer suas EA's.

Quando este programa está fazendo suas EA de porcaria, então você não tem o conhecimento para ver o que está errado com a codificação.

Se você mesmo começou a fazer EA's sem os construtores automáticos de EA

então você acha os problemas mais fáceis por saber para onde olhar em primeiro lugar

se você tem as linhas de programa de um EA feito ou não por você....

E sim, leva tempo para aprender, mas se você mesmo puder ver qual é o erro, sua frustração não seria tão grande assim.

quem quer usar porcaria PARE DE USAR O CONSTRUIDOR DA EA ....

 
unclebigpete:

Apenas um pouco de ajuda real, por favor,

OK, uma pequena ajuda . . .

Encontre esta parte em seu código, e mude-a para esta . .

//+------------------------------------------------------------------+
//| Variable End                                                     |
//+------------------------------------------------------------------+
//Check position                 
             bool IsTrade = False;
             for(int i = Total -1; i >= 0; i --) 
               {                       
               if( OrderSelect(i, SELECT_BY_POS, MODE_TRADES) &&
                  OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) 

Isto não verifica o Número Mágico . . você precisará adicioná-lo se quiser fazer pedidos manuais nos mesmos pares ou se quiser executar em prazos diferentes no mesmo par e ao mesmo tempo . . você não ?

As barras não são confiáveis, é uma má idéia usar Barras. . você deve usar o Tempo em seu lugar.

Seu Slippage não está ajustado para corretores de 4/5 dígitos . . nem seu TP ou SL.

Se você fizer seu SL pequeno você terá erro 130 porque você não está verificando se ele está muito próximo ou permitindo que se espalhe.

Seu corretor é um corretor ECN? você não pode definir o SL & ou TP quando você faz uma ordem de mercado com um corretor ECN, você tem que codificar um OredrModify() para adicionar o SL & ou TP depois que a ordem é feita . .

Devo continuar ? isto é coisa BÁSICO. . estes pontos surgem neste Fórum dia sim, dia não . .

E você não entende muito disso porque na verdade você não codificou nada . . você usou o código de outra pessoa . . " Expert Advisor Builder". Há apenas um atalho: Empregos

 
unclebigpete 2012.05.22 10:19

Como eu disse, sou um novato em codificação, e esta EA está/estava funcionando, então eu tentei desenvolvê-la, e quando fiquei perplexo, pedi ajuda neste fórum.

Foi uma boa tentativa de fazer pouco de meus esforços, sem dizer nada que, como novato, eu possa usar. O LOL é porque eu pedi ajuda?

Eu não quero ou preciso me tornar um especialista em codificação, apenas assumi que um pedido educado de ajuda para resolver um simples erro (ou dois) levaria alguém a me aconselhar sobre onde está o erro no código. O que os deVries digitaram aqui efetivamente NÃO me ajuda em nada, pois eu teria que estudar/praticar/experimentar por talvez anos para até mesmo entender o que foi dito.

Não foram todos vocês novatos uma vez, e precisaram apenas de uma palavra de ajuda para que os códigos simples funcionassem? Por favor?

Prezado tio-colega,

Meu pedido de desculpas se você se ofende. Eu não estava roncando para você. Eu estava e ainda estou roncando no "Expert Advisor Builder ".Eu era novato há 4 anos atrás, fiz muitas perguntas estúpidas, - diabos, ainda estou aprendendo agora - alguns forumsers aqui me corrigem e meu código e eu o aceito, eu aprendo com outros códigos também - pergunte ao RaptorUK sobre isso - ele me corrigiu no domingo passado e aquela coisa de download de história.

Colocando desta forma, se seu EA rodar em 4hr de dados, então você realmente terá que esperar. Um dia inteiro tem apenas 6 velas/barras em 4 horas. Outra coisa, você disse que está negociando há muito tempo e eu assumo que você está negociando manualmente e assumo que esta EA é baseada em sua estratégia. Bem, a negociação manual não requer paciência?, o mesmo com esta EA então.

você disse isto ...

tio-colebigpete 2012.05.22 10:52

Raptor, estou fazendo um esforço. Eu só quero uma EA funcional que eu possa desenvolver ainda mais AS I LEARN. Eu tinha este funcionando, e depois afinei algo e agora não funciona. Tenho lido sobre codificação, e não tenho 4 ou mais anos para me atualizar. Apenas uma pequena ajuda real, por favor, pois o que foi dito aqui não me ajuda muito.

É um pouco como aprender a fumar um cigarro onde o conselho é "acendê-lo"!

Então meu Q é, Whoa ..., qual parte dele você ajustou? Agora você nos pediu para encontrar o erro e consertá-lo.

Eu vejo seu código mais tarde, e btw, o arquivo .ex é compilado, o que não ajuda.

:)

 

Vamos dar um exemplo de porque "seu" código é ruim . . . .

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", 
   MagicNumber, 0, DeepPink);
                   
if(Ticket > 0) 
   {
   if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) 
      {
      Print("SELL order opened : ", OrderOpenPrice());
      if(SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
      } // if(Order...

   else                                 // <---  this else is in relation to the OrderSelect,  so when the OrderSelect fails the error stored in GetLastError is updated
      {
      Print("Error opening SELL order : ", GetLastError());  // <--- this will give you Error 0 and you will be scratching your head
      } // else 
   } // if(Ticket... 

o erro relatado está em relação ao OrderSelect NOT The OrderSend. .

Deve ser feito desta forma . . .

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", 
   MagicNumber, 0, DeepPink);
                   
if(Ticket < 0) 
   {
   Print("Error opening SELL order : ", GetLastError());  // <--- this will give you Error that relates to the OrderSend
   } // if(Ticket... 

else                                 // <---  this else is in relation to the if(Ticket < 0)
   {
   if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) 
      {
      Print("SELL order opened : ", OrderOpenPrice());
      if(SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
      } // if(Order...
   } // else 
 
onewithzachy:

Prezado tio-colega,

Meu pedido de desculpas se você se ofende. Eu não estava roncando para você. Eu estava e ainda estou roncando no "Expert Advisor Builder ".Eu era novato há 4 anos atrás, fiz muitas perguntas estúpidas, - diabos, ainda estou aprendendo agora - alguns forumsers aqui me corrigem e meu código e eu o aceito, eu aprendo com outros códigos também - pergunte ao RaptorUK sobre isso - ele me corrigiu no domingo passado e aquela coisa de download de história.

Todos nós ainda estamos aprendendo . . . e mesmo que não fôssemos todos nós, somos todos humanos e todos de uso cometemos erros . . . eu especialmente. A única pessoa que não comete um erro é a pessoa que não faz nada . .

A propósito . . por que esperar para testar seu código . . testá-lo no testador . . o Testador de Estratégia. ;-)

Razão: