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

 
Artyom Trishkin:
Aberto como? Qual é o motivo da abertura?

A razão para abrir uma posição sobre o euro e a razão para abrir uma posição sobre a libra esterlina. Obviamente, deve estar de alguma forma escrito no código do Euro Expert Advisor. Mas como - eu não entendo.

 
novichok2018:

A razão para abrir uma posição sobre o euro e a razão para abrir uma posição sobre a libra esterlina. Obviamente, deve estar de alguma forma escrito no código do Euro Expert Advisor. Mas como - eu não entendo.

É feito através do habitual if() com verificação dos comentários. E nos comentários do pedido, inserimos o horário de abertura ou o bilhete do pedido a partir do qual o segundo pedido se abre.
 
Alexandr Sokolov:
O código é implementado através do habitual if() com verificação de comentários. No comentário do pedido, você deve inserir o horário de abertura ou o bilhete do pedido a partir do qual o segundo pedido se abre.

Como o if() do código EA do Euro pode ser referenciado ao código EA da Libra? Como posso ver a posição da libra no código do euro?

 
novichok2018:

Como o if() do código EA do Euro pode ser referenciado ao código EA da Libra? Como você vê a posição da libra no código do euro?

Você mesmo está complicando as coisas. Você simplesmente percorre os pedidos em euros e compara cada pedido em euros com todos os pedidos em libras esterlinas. E se nenhum dos comentários corresponder, então você abre um pedido de libra com o comentário onde o ingresso ou a hora de abertura do pedido do euro

 

Você pode me esclarecer sobre como transferir os resultados da otimização de uma EA no testador MT5, para a EA no painel gráfico do MT5? Como salvá-los ?

No manual e no Google ainda não é possível encontrá-lo ...

MUITO OBRIGADO.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Alexandr Sokolov:

Você mesmo está complicando as coisas. Você simplesmente percorre os pedidos em euros e compara cada pedido em euros com todos os pedidos em libras esterlinas. E se nenhum dos comentários corresponder, então você abre um pedido de libra com o comentário do bilhete ou a hora de abrir um pedido sobre o euro.

Para ser honesto - não entendo nada. A situação é a seguinte: não há encomendas nem para o euro nem para a libra esterlina. E temos condições de abrir uma posição na libra e a posição é aberta. A abertura da posição sobre a libra deve se tornar um sinal para a abertura de uma posição sobre o euro e a posição deve abrir. Então, o que devo fazer no ciclo? E eu não entendo nada sobre os comentários. Você pode escrever um código de amostra para me ajudar a compreendê-lo?

E no código da libra, quando as condições aparecerem, podemos abrir duas posições - uma para a libra e outra para o euro, especificando o símbolo necessário no OrderSend? Isto vai funcionar?

 
novichok2018:

Para ser honesto - não entendo nada. A situação é a seguinte: não há encomendas nem para o euro nem para a libra esterlina. E há condições para a abertura de uma posição na libra e a posição já abriu. A abertura da posição sobre a libra deve ser um sinal para a abertura da posição sobre o euro e a posição deve abrir. Então, o que devo fazer no ciclo? E eu não entendo nada sobre os comentários. Você pode escrever um código de amostra para que eu possa entender?

int ticket;
for(int  i = 0; i < OrdersTotal(); i++)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderMagicNumber() == id_number1 && OrderSymbol() == "GBPUSD")
        {
         if(SecondExpert(OrderTicket()) == false)
           {
            ticket = OrderSend(...);
           };
        };
     };
  };

//----------------------------------------------------------------------------------------------------------------------

bool SecondExpert(int ticket)
  {
   bool se = false;
   for(int i = 0; i < OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
        {
         if(OrderMagicNumber() == id_number2 && OrderSymbol() == "EURUSD")
           {
            if(OrderComment() == (string)ticket)
              {
               se = true; break;
              };
           };
        };
     };
  //-----------------------------------------------------------------
   return(se);
  }


É assim que eu vejo as coisas).

 
novichok2018:

Para ser honesto, eu não entendi nada. A situação é a seguinte: não há encomendas nem sobre o euro nem sobre a libra esterlina. E temos condições de abrir uma posição na libra e a posição já abriu. A abertura da posição na libra deve acionar a abertura da posição no euro e a posição deve abrir. Então, o que devo fazer no ciclo? E eu não entendo nada sobre os comentários. Você pode escrever um código de amostra para que eu possa entender?

Se está em uma EA, deveria ser algo como isto

if(условие для EURUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }

if(условие для GBPUSD)
 {
  OrderSend("GBPUSD", ... );
  OrderSend("EURUSD", ... );
 }

Ou ainda mais simples

if(условие для EURUSD || условие для GBPUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }
 
Alexey Viktorov:

Se está em uma EA, deveria ser algo como isto

Ou ainda mais simples

Sim, imaginei de alguma forma, mas não posso verificar o trabalho sobre a história, porque a abertura de uma posição em EUR deve ocorrer devido à condição para GBP e não está refletida no código para EUR, e a história é retratada em EUR. Daí a incerteza quanto à exatidão da decisão.

 
novichok2018:

Sim, foi assim que imaginei, mas não posso verificar se funciona na história, porque a abertura de uma posição sobre o euro deve ocorrer pela condição para a libra e não se reflete no código para o euro, enquanto a história é exibida no euro. Daí a incerteza quanto à exatidão da decisão.

A função de Igor Kimreforça ExistPositions() devolve a bandeira de existência de posição, é muito difícil para mim adaptá-la às minhas condições específicas. Mas não creio que será testado na história.

Se ninguém tem um código, realmente testado no mundo real, para me mostrar, eu o tentarei cientificamente. Obrigado.

Razão: