Organizando o ciclo do pedido - página 13

 
fxsaber:

O modelo de exemplo é escrito especificamente com SB. Então, pergunta aos especialistas do MT5, o código está correto?

Não é um especialista, mas vou ressaltar o óbvio: tal código pode escapar com infinitas tentativas de fechar uma posição (por exemplo, ao final de uma sessão de negociação).

Bem, e condições complexas em uma linha de código, é claro, reduzem o código, mas tornam mais difícil a leitura.

 
Andrey Khatimlianskii:

Não sou especialista, mas vou ressaltar o óbvio: tal código pode escapar com a tentativa interminável de fechar uma posição (por exemplo, ao final de uma sessão de negociação).

Não pode.

Bem, condições complexas em uma linha de código, é claro, reduzem o código, mas dificultam sua leitura.

Neste caso, a brevidade só ajuda - o TS inteiro está na tela.

 
fxsaber:

Se você tomar isso tão literalmente, você também pode ler a história passada de cada símbolo no Market Watch. Mas eu acho que você realmente entende o significado da declaração.

O código implementa esse tipo de declaração. É por isso que perguntei a todos que entendem o MT5: o código está correto?

Bem, nós somos os programadores.

Assim entendido ...

Sem ressentimentos.

 

fxsaber:

É por isso que eu tinha uma pergunta para todos que entendem MT5: o código é correto?

Não olharam muito para o código - quem usa ativamente o SB (eu - não, não as classes comerciais mais precisamente), talvez eles possam dizer?

 
Artyom Trishkin:

Eu não olhei muito para o código - quem usa ativamente o SB (eu - não, não as classes comerciais mais precisamente), talvez eles possam dizer?

Este é um caso raro em que a SB trabalha como deveria. O modelo é um esqueleto. É claro, você pode jogar todos os tipos de carne na forma de cheques de enchimento, lotes, etc. Mas a base permanecerá.

Um modelo pode ser reescrito no MT4 com um mínimo de esforço e funcionará 100% no MT5. Mas, por outro lado, no MT5 é realmente uma boa pergunta!

 
fxsaber:

Este é um caso raro em que a SB está funcionando corretamente. O modelo é um esqueleto. Naturalmente, você pode acrescentar todos os tipos de carne na forma de cheques de preenchimento, lealdades, etc. Mas a base principal permanecerá.

Um modelo pode ser reescrito no MT4 com o mínimo esforço e funcionará 100% no MT5. Mas na MT5 é realmente uma boa pergunta!

Vou tentar usá-lo com a cabeça limpa e não às 5 da manhã :)

Eu vou acordar, se ninguém que conhece bem a SB postar, eu posso tentar descobrir os prováveis seixos.

 
fxsaber:

O modelo pode ser reescrito para o MT4 com o mínimo esforço e funcionará 100% lá.

Reescrito no MT4

// Шаблон большинства ТС

#property strict // обязательно

// Сигнал на покупку
bool BuySignal( const string Symb ) { return(true); }

// Сигнал на продажу
bool SellSignal( const string Symb ) { return(false); }

// Находит ордер соответствующего типа
bool OrdersScan( const string Symb, const int Type )
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == Symb))
      return(true);    
    
  return(false);  
}

// Торговое действие на сигнал
bool Action( const string Symb, const int Type, const double Lots = 1 )
{
  bool Res = true;    
  
  // Закрыли противоположные сигналу позиции
  while ((OrdersScan(Symb, 1 - Type)) && (Res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100)));

  // Открыли позицию по сигналу
  return(Res && !OrdersScan(Symb, Type) && OrderSend(Symb, Type, Lots, SymbolInfoDouble(Symb, Type ? SYMBOL_BID : SYMBOL_ASK), 100, 0, 0));
}

// Шаблон торговой стратегии
void Strategy( const string Symb )
{
  if (BuySignal(Symb))
    Action(Symb, OP_BUY);
  else if (SellSignal(Symb))
    Action(Symb, OP_SELL);
}

void OnTick()
{
  Strategy(_Symbol);
}

Mas na MT5 é realmente uma boa pergunta!

Comentários interessantes sobre o MT5.
 
fxsaber:

Ele não pode.

Sim, certo. Não pode simplesmente fechar uma posição quando precisa ser feita.


fxsaber:

Neste caso, a brevidade só ajuda - o TS inteiro está na tela.

Você pode escrevê-lo em 5 linhas, isso não facilitará a leitura.

Eu compartilho minha percepção.

 
Andrey Khatimlianskii:

Sim, é isso mesmo. Não pode simplesmente fechar uma posição quando precisa ser feita.

Eu escrevi a variante MT4 de propósito para torná-la mais familiar. Parece que as variantes MT4 e MT5 são idênticas. SB é exatamente a mesma coisa. Assumiremos que a variante MT4 está funcionando 100%. Ou seja, vamos pular alguns pequenos detalhes.

Podemos escrevê-lo em 5 linhas, isso não facilitará a leitura.

Estou compartilhando minha percepção sobre isso.

Sim, o código de outra pessoa é um mistério.

 
fxsaber:

Eu escrevi a variante MT4 de propósito para torná-la mais familiar. Parece que as variantes MT4 e MT5 são idênticas. SB é exatamente a mesma coisa.

E o que, OrderClose é garantido para fechar o comércio?


fxsaber:

Sim, o código das outras pessoas é sombrio.

Não, nem sempre é assim. Refiro-me ao estilo.