que precisam de ajuda na codificação, por favor - página 2

 

deVries, se você parar sua reclamação o tempo suficiente para explicar por que o código que comecei é tão "ruim" que talvez eu entenda o que posso fazer para consertá-lo. Leia sua resposta novamente, e então explique como sua resposta pode ajudar qualquer um.

Obrigado, RaptorUK, finalmente uma resposta que eu posso usar.

Para ajudar a explicar, quero que este EA administre apenas um par, um comércio de cada vez. Como disse anteriormente '... e coloquei um em cada um de 5 gráficos de pares diferentes, todos na mesma plataforma MT4...' dando 5 gráficos separados (...) com aquele EA neles. Nesta fase eu não quero ou preciso verificar Magic Numbers, eu ?

Re o comentário sobre barras, obrigado.

Re o deslizamento, 4/5 corretores, etc., nesta etapa que não importa, não é ? Estou usando isto para mim mesmo, no mesmo corretor, etc.

 
e esqueci de acrescentar, não estou procurando um atalho, apenas alguma ajuda para superar um problema.
 
Desculpe, de alguma forma eu perdi as outras respostas, então eu peço desculpas pelo comentário "rant". e obrigado pela ajuda real.

E eu a testei, e funciona bem, sem erros, sem avisos. Então, por que não funciona em um gráfico ao vivo? (Eu ainda não implementei as sugestões acima)
 
unclebigpete:

1. Nesta fase eu não quero ou preciso verificar Números Mágicos, não é ?

2. Re o deslizamento, 4/5 corretores, etc., nesta etapa que não importa, não é ? Estou usando isto para mim mesmo, no mesmo corretor, etc.

1. Se você nunca vai colocar uma troca manual em um dos mesmos pares . . . então você pode trabalhar sem Números Mágicos . . . se você esquecer e por acaso colocar uma troca manual em um dos pares em que você tem esta EA rodando, então a EA irá administrar sua troca manual também . . se você codificá-la corretamente, então isto não será um problema.

2. Não importa . . desde que você sempre se lembre de definir os parâmetros externos corretamente . . por exemplo, o código que você postou tem um Slippage de 3 . . em um Corretor de 5 dígitos isto equivalerá a 0,3 pip slippage . . se você codificá-lo corretamente então 3 sempre significará 3 pips em ambos um Corretor de 4 ou 5 dígitos e então você terá menos margem para erros. Não codificá-lo corretamente é um atalho que provavelmente lhe custará tempo a longo prazo . .

 
unclebigpete:

E eu o testei, e funciona bem, sem erros, sem avisos. Então, por que não funciona em um gráfico ao vivo? (Eu ainda não implementei as sugestões acima)
Você o testou onde ? no Testador de Estratégia? onde você procurou pelos erros ?
 
Sim, testado no testador de estratégia, e compilado, obtendo aresposta "sem erros, sem avisos".
 

Tudo aqui é meu:

Obtenha disciplina com codificação, o primeiro parâmetro do iCustom é <string Symbol>, use Symbol() ou NULL em vez de zero.

MetaEditor > Janela Navigator (Ctrl +D) > guia do dicionário > Indicador técnico > iCustom

int QQE_4hr    = iCustom( Symbol(), 240, "c_QQEA",  SF,     RSI_Period,    DART_Factor,     0, 1 );
int QQE_4hr_2  = iCustom( Symbol(), 240, "c_QQEA",  SF,     RSI_Period,    DART_Factor,     0, 2 );

Se você usar os turnos 1 e 2 em 4 horas, isso vai ser muito longo.

A ordem que mencionei antes, escreva assim.

MetaEditor > Janela Navigator (Ctrl +D) > guia do dicionário > Funções de negociação > OrderSelect()

for(int i=0; i<Total; i++)
     {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {

Vou escrever mais sobre essa coisa da OrderSelect().

Há 2 ordens de fechamento, escreva assim, ambas

MetaEditor > Janela Navigator (Ctrl +D) > guia do dicionário > Funções de negociação > OrderClose()

OrderClose(OrderTicket(),
           OrderLots(),
           OrderClosePrice(),//Bid,
           Slippage,
           MediumSeaGreen);

E eu tenho uma abordagem diferente da do RaptorUK, que dá o mesmo resultado, no entanto, existem 2 destes, e você tem mudanças em ambos

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... // ==>> moved from below 
     } // if(Ticket...   
     else
     {
     Print("Error opening SELL order : ",
           GetLastError());
     } // else
   } ==>> move this parenthesis up there

Divirta-se

:)

 
unclebigpete:
Sim, testado no testador de estratégia, e compilado, obtendo aresposta "sem erros, sem avisos".
OK, então sem erros quando compilado . . . e sobre os erros quando você o executou no testador de estratégia? Execute-o novamente e procure na guia Diário . . .
 

A empresa acabou de ser operada em audnzd de 17/05 a 22/05, e abriu 3 negócios, 2 compras que foram interrompidas, e uma venda que foi fechada no final do teste.

Aqui estão as informações do Jornal, primeiro a linha de cima.

2012.05.22 21:38:51 QQE-4hr_15min- test-2205: carregado com sucesso

2012.05.22 21:38:53 QQE-4hr_15min- testes-2205 entradas: MagicNumber=0; Lots=1; Lots=1; Slippage=3; StopLoss=300; TakeProfit=1000; TrailingStop=300; Nbr_Period=10; Multiplier=3;

2012.05.22 21:38:53 2012.05.17 00:00 c_QQEA AUDNZD,H4: carregado com sucesso

2012.05.22 21:38:53 2012.05.17 00:00 c_QQEA AUDNZD,M15: carregado com sucesso

2012.05.22 21:39:13 2012.05.17 16:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: abrir #1 comprar 1.00 AUDNZD a 1.29960 sl: 1.29660 ok

2012.05.22 21:39:13 2012.05.17 16:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: Ordem de compra aberta : 1.2996

2012.05.22 21:39:13 2012.05.17 18:32 Testador: pare a perda #1 em 1.29660 (1.29660 / 1.29698)

2012.05.22 21:39:15 2012.05.18 20:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: abrir #2 comprar 1.00 AUDNZD a 1.30386 sl: 1.30086 ok

2012.05.22 21:39:15 2012.05.18 20:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: Ordem de compra aberta : 1.3039

2012.05.22 21:39:15 2012.05.18 23:09 Testador: pare a perda #2 em 1.30086 (1.30083 / 1.30121)

2012.05.22 21:39:16 2012.05.21 16:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: aberto #3 venda 1.00 AUDNZD a 1.29739 sl: 1.30039 ok

2012.05.22 21:39:16 2012.05.21 16:00 QQE-4hr_15min- teste-2205 AUDNZD,H4: Pedido de venda aberto : 1.2974

2012.05.22 21:39:17 2012.05.21 23:59 Testador: o pedido nº 3 está fechado

2012.05.22 21:39:17 2012.05.21 23:59 c_QQEA AUDNZD,M15: removido

 
Seu deslize pode ser o problema. Os testes de retrocesso nunca usam o escorregamento. Leia as características e limites dos testes no MetaTrder4https://www.mql5.com/en/articles/1512
Razão: