O grande e terrível MT4 para sempre (ou como fazer uma transição estratégica) - página 26

 
fxsaber:

Provavelmente não existe tal bandeira no interior.

Aparentemente, não.

mas acho que a MQ pode muito bem fazer uma, especialmente porque seria uma bandeira por terminal, ou seja, para todos os programas.

 
Artyom Trishkin:
Provavelmente vou propor isso. Mas muito mais tarde. Devido a circunstâncias subjetivas. Infelizmente. Nesse meio tempo, considere-se um demagogo. Não proibido.

Ainda relevante? A sua versão da solução será?

 
Igor Makanu:

Ainda relevante? A sua versão da solução será?

Você citou meu posto, que dizia "muito mais tarde". Para mim, "muito mais tarde" significa não mais cedo do que um ano, pelo menos. Não porque este seja o tempo necessário para encontrar uma solução, mas simplesmente por causa de circunstâncias subjetivas, infelizmente.

 
Artyom Trishkin:

não será por pelo menos um ano.

OK, então isso não é relevante.

 
Você provavelmente ainda pode pensar em problemas que são simples em termos de suas condições, e cujas soluções causam dificuldades inesperadas.
 
fxsaber:
É provável que você ainda consiga encontrar problemas simples, cuja solução causa dificuldades inesperadas.

O roteiro monitora o risco de excesso: se o total de posições e ordens pendentes exceder duas - informe e saia.


Código conciso:

void OnStart()
{
  while (!IsStopped())
    if ((PositionsTotal() + OrdersTotal() > 2)) // Если (риск превышен) число отложек/позиций больше двух,
    {
      Alert("Risk exceeded!");                  // сообщаем      
      ExpertRemove();                           // и выходим.
    }
}


Analisamos o comportamento do roteiro, dependendo das ações manuais. Antes de fazer isso (antes de executar o roteiro), marquemos o número de posições na conta PosTotal, ordens - OrdTotal.

Roteiro PósTotal/OrdTotal Ação Resultado do roteiro
01 0/0 Abrir uma posição. Funciona.
02 0/0 Colocar uma posição pendente. Funciona.
03 0/1 Espera um pouco. 03 0/1 Fazendo uma pausa.
04 0/1 Abrir uma posição. Alerta (nem sempre).
05 0/1 Elimina uma posição pendente. Funciona.
06 1/0 Colocando uma ordem pendente. Funciona.
07 1/0 Abertura de uma posição. Alerta (nem sempre).
08 1/0 Posição próxima. Trabalhando.
09 1/1 Eliminação de uma posição pendente. Trabalhando.
10 1/1 Fechando uma posição. Alerta.
11 0/2 Elimina uma posição pendente. Trabalhando.
12 2/0 Fechando uma posição. Alerta.


Parece ser uma tarefa muito simples, mas alertas. Quais são as variantes da solução?


Provavelmente, é em tarefas simples como esta que devemos trabalhar em nosso entendimento do MT5.

 
fxsaber:

O roteiro monitora o risco: se o número total de posições e ordens pendentes exceder dois, informe e saia.


Código conciso:


Analisamos o comportamento do roteiro, dependendo das ações manuais. Antes de fazer isso (antes de executar o roteiro), marquemos o número de posições na conta PosTotal, ordens - OrdTotal.

Roteiro PósTotal/OrdTotal Ação Resultado do roteiro
01 0/0 Abrir uma posição. Funciona.
02 0/0 Colocar uma posição pendente. Funciona.
03 0/1 Fazendo uma pausa. 03 0/1 Fazendo uma pausa.
04 0/1 Abrir uma posição. Alerta (nem sempre).
05 0/1 Elimina uma posição pendente. Funciona.
06 1/0 Colocando uma ordem pendente. Funciona.
07 1/0 Abertura de uma posição. Alerta (nem sempre).
08 1/0 Posição próxima. Trabalhando.
09 1/1 Eliminação de uma posição pendente. Trabalhando.
10 1/1 Fechando uma posição. Alerta.
11 0/2 Elimina uma posição pendente. Trabalhando.
12 2/0 Fechando uma posição. Alerta.


Parece ser uma tarefa muito simples, mas alertas. Quais são as variantes da solução?


Provavelmente, é em tarefas simples como esta que devemos trabalhar em nosso entendimento do MT5.

O que o MQ5 tem a ver com isso? A condição de saída do loop: IsStopped e não mais que duas ordens. Então o roteiro funciona, e se a condição não funcionar, o roteiro também funciona.

 
Алексей Тарабанов:

O que isso tem a ver com o MQ5? Condição para sair do loop: IsStopped e não mais que duas ordens. Então o roteiro funciona, e se a condição não funcionar, o roteiro também funciona.

O código contém até mesmo comentários.

 
fxsaber:

O roteiro monitora o risco de excesso: se o número total de posições e ordens pendentes exceder duas - informe e saia.

Um código conciso:


Parece ser uma tarefa muito simples, mas alertas. O que são variantes de solução?


Provavelmente, este é o tipo de tarefas simples que devemos usar para desenvolver nosso entendimento MT5.

acho que preciso fazer algo assim:

void OnStart()
{
   while (!IsStopped())
   {
      //--- посчитаем ордера
      int orders = 0;
      for(int i = 0; i < OrdersTotal(); i++)
         if(OrderGetTicket(i) > 0 && OrderGetInteger(ORDER_TYPE) < ORDER_TYPE_CLOSE_BY) orders++;
      
      if(orders + PositionsTotal() > 2) break;     // выходим
   }
   if(!_StopFlag) Alert("Risk exceeded!");         // сообщаем
}
 
Igor Makanu:

provavelmente algo assim precisa ser feito:

Certamente, você tem que filtrar as ordens. Não é uma coisa fácil de se fazer.

ZS É uma situação interessante no fórum. Respostas a perguntas ativas. Aqui é diferente, aparentemente.
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2016.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...