Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1550

 
законопослушный гражданин:

como eu o entendo, o autor do código sugeriu o seguinte:

se a coruja abre um comércio de compra com stop and take, então sua peça de código abre um comércio de venda ao mesmo tempo no mesmo lugar (levando em conta o spread) com stop and take em vez de um comércio de compra.

Assim, a lógica de busca de um ponto de entrada da EA não muda, e apenas a direção com propagação leva em conta as mudanças.

isto é exatamente o que eu preciso

Se você quiser reverter todas as negociações, basta trocar

vOrderOpenSell e vOrderOpenBuy


//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0, iPeriodMA, 0, MODE_SMA, PRICE_CLOSE, 0);

// Если нет открытых ордеров, то входим в условие
   if(bCheckOrders() == true)
     {
      // Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenSell();

      // Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenBuy();
     }
  }
 
SGarnov:

Primeiro resultado. Há um conflito entre pares de moedas e a EA tem um conflito na colocação de pedidos pendentes. Por exemplo, eu coloquei um pedido pendente para EURUSD, a EA seguiu o algoritmo (Compre em 1.18901, abra uma negociação, estabeleça uma parada em 1.18751, tenha lucro em 1.19051 e um pedido de venda em 1.18751) tudo está bem conforme os planos.

Mas agora é hora de abrir um negócio em GBPUSD onde os preços são diferentes e a EA está fazendo tudo certo, exceto para estabelecer uma ordem pendente. Uma ordem de venda em 1,39393 foi acionada e a EA tentou abri-la, fixou uma parada em 1,39633 e tomou 1,39153, mas a ordem de compra em 1,39633 é totalmente duplicada em EURUSD e uma ordem de venda em 1,18751)

Acabo de encontrar outro problema: uma parada em 1.18751 e uma ordem de venda pendente em 1.18901 e take 1.18595 foram abertos em EURUSD. O Expert Advisor não acrescentou a parada acionada, o que está na história.

Estes são os problemas.

Encontrei um erro nas encomendas e estou trabalhando nas adições

 
MakarFX:

Se você precisar reverter todas as negociações, basta trocar aqui

vOrderOpenSell e vOrderOpenBuy


Não, eu não preciso de reversão, mas "espelhar" os negócios deficitários para outro terminal, levando em conta a dispersão.

mas os testadores não dão tais possibilidades, eu preciso de corujas no testador para "espelhar" negócios com spread como se fossem abertas em outro terminal, mas de acordo com a lógica desta coruja, digamos, através de um copiador de rewrder.

Eu preciso dele para testar o TS

 
Alexey Viktorov:

Makar apontou corretamente para OrderMagicNumber(), mas entendeu mal o erro. Leia a documentação para a sintaxe desta função... deve ser ou um índice na lista de pedidos ou um bilhete de um pedido específico, mas não um magik. E OrderTicket() não vai ajudar aqui. Não tente colocá-lo lá.

Faz sentido. Compilei-o e o substituí por OrdersHistoryTotal, e nas configurações dos terminais fiz o histórico dos últimos três dias. Vou testá-lo.

 
законопослушный гражданин:

Não preciso reverter, mas "espelhar" os negócios deficitários para outro terminal, levando em conta a propagação, como no assunto do autor do código.

Mas os testadores não oferecem tais possibilidades, para isso preciso de corujas no testador para "espelhar" negócios com spread, como se fossem abertas em outro terminal, mas de acordo com a lógica desta coruja, digamos, através de um copiador com rebobinamento.

Preciso dele para verificar o TS.

Se o problema com as ordens de entrada no mercado tentar substituir isto

///////////////
if (cmd==OP_SELL) // Переворачиваем ордера OP_SELL
{
Ret=OrderSend (symbol,OP_BUY,volume,Ask,slippage,takeprofit-sprd,stoploss-sprd,comment,magic,expiration,arrow_color);
}
if (cmd==OP_BUY) // Переворачиваем ордера OP_BUY
{
Ret=OrderSend (symbol,OP_SELL,volume,Bid,slippage,takeprofit+sprd,stoploss+sprd,comment,magic,expiration,arrow_color);
}

E se o problema é com todos os pedidos, então verifique STOPLEVEL

 
MakarFX:

........................., e trabalhando com adição

Cheguei à conclusão que é difícil de implementar, seu código é muito mais simples, claro e lógico, mas ..... por alguma razão também não acrescenta. O principal é não desistir.

 
SGarnov:

Cheguei à conclusão que é difícil de implementar, seu código é muito mais simples, claro e lógico, mas ..... de alguma forma também não faz sentido. O principal é não desistir.

Eu sirvo a União Soviética!
 
SGarnov:

Cheguei à conclusão que é difícil de implementar, seu código é muito mais simples, claro e lógico, mas ..... de alguma forma também não faz sentido. O principal é não desistir.

MakarFX:
Eu sirvo a União Soviética!

Talvez você também deva levar em conta o número de paradas acionadas. Por exemplo, a EA encontrará uma parada na história, e se houver duas delas, deve adicionar tanto três como quatro, tudo depende do ajuste externo "número de paradas perdidas".

 
SGarnov:

Talvez você também deva levar em conta o número de paradas acionadas. Por exemplo, a EA encontrará uma parada na história, e se houver duas, deve adicioná-las tanto três como quatro, tudo depende da configuração externa "número de paradas perdidas".

Há uma contabilização de um número de paradas acionadas e se o "Número de ordens perdidas" for maior que o especificado nas configurações, então as ordens pendentes não são mais colocadas (já verificadas).
 

Olá a todos, ajudem por favor!

Eu tenho um problema como este. Comprei um vpc do mql5 tudo funciona bem, instalei um especialista, montei 8 gráficos e montei um especialista. E eu transferi tudo para a vpc.

Tive que desinstalar o metatrade do meu computador porque não era meu.

E agora, quando entro do meu computador.

Tudo funciona, o especialista. Funciona, mas não consigo vê-lo para fazer qualquer mudança nas configurações. Como posso devolver a EA e os horários para que eu possa administrá-los a partir do meu computador?

Obrigado!

Razão: