Organizar el ciclo de pedidos - página 13

 
fxsaber:

La plantilla de ejemplo está escrita específicamente con SB. Así que la pregunta a los especialistas de MT5, ¿es el código correcto?

No soy un especialista, pero señalaré lo obvio: un código de este tipo puede salirse con la suya con interminables intentos de cerrar una posición (por ejemplo, al final de una sesión de negociación).

Bueno, y las condiciones complejas en una línea de código, por supuesto, reducen el código, pero lo hacen más difícil de leer.

 
Andrey Khatimlianskii:

No soy un experto, pero señalaré lo obvio: un código de este tipo puede salirse con la suya al intentar cerrar una posición sin parar (por ejemplo, al final de una sesión de negociación).

No puede.

Bueno, las condiciones complejas en una línea de código, por supuesto, reducen el código, pero lo hacen más difícil de leer.

En este caso, la brevedad sólo ayuda: todo el TS está en la pantalla.

 
fxsaber:

Si se lo toma al pie de la letra, también puede leer el historial de ticks de cada símbolo en el Market Watch. Pero creo que realmente entiendes el significado de la declaración.

El código implementa esa afirmación. Por eso he preguntado a todos los que entienden de MT5: ¿es correcto el código?

Bueno, nosotros somos los programadores.

Así que entendido...

Sin rencores.

 

fxsaber:

Por eso tenía una pregunta para todos los que entienden de MT5: ¿el código es correcto?

No he mirado mucho el código - que utiliza activamente SB (yo - no, no las clases de comercio más precisamente), tal vez pueden decir?

 
Artyom Trishkin:

No he mirado mucho el código - quien utiliza activamente SB (yo - no, no las clases de comercio más específicamente), tal vez pueden decir?

Este es un caso raro en el que el SB funciona como debería. La plantilla es un esqueleto. Por supuesto, se puede echar todo tipo de carne en forma de cheques de relleno, lotes, etc. Pero la base permanecerá.

Una plantilla puede ser reescrita en MT4 con un mínimo esfuerzo y funcionará al 100% en MT5. ¡Pero por otro lado, en MT5 es una buena pregunta realmente!

 
fxsaber:

Este es un caso raro en el que la CCI funciona correctamente. La plantilla es un esqueleto. Por supuesto, se puede echar todo tipo de carne en forma de cheques de relleno, lealtades, etc. Pero la base principal seguirá siendo.

Una plantilla puede ser reescrita en MT4 con un mínimo esfuerzo y funcionará al 100% en MT5. ¡Pero en MT5 es una buena pregunta realmente!

Intentaré usarlo con la cabeza despejada y no a las 5 de la mañana :)

Me despierto, si nadie que conozca bien a SB postea, puedo intentar averiguar las probables piedrecitas.

 
fxsaber:

La plantilla puede ser reescrita para MT4 con un mínimo esfuerzo y funcionará al 100% allí.

Reescrito en 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);
}

¡Pero en MT5 es una buena pregunta realmente!

Interesantes comentarios sobre MT5.
 
fxsaber:

No puede.

Sí, claro. No se puede cerrar una posición cuando hay que hacerlo.


fxsaber:

En este caso, la brevedad sólo ayuda: todo el TS está en la pantalla.

Puedes escribirlo en 5 líneas, no facilitará la lectura.

Comparto mi percepción.

 
Andrey Khatimlianskii:

Sí, eso es. Podría no cerrar una posición cuando es necesario hacerlo.

Escribí la variante de MT4 a propósito para hacerla más familiar. Parece que las variantes MT4 y MT5 son idénticas. SB es exactamente lo mismo. Asumiremos que la variante MT4 está funcionando al 100%. Es decir, nos saltaremos algunos pequeños detalles.

Podemos escribirlo en 5 líneas, no facilitará la lectura.

Comparto mi percepción al respecto.

Sí, el código de otra persona es un misterio.

 
fxsaber:

Escribí la variante de MT4 a propósito para hacerla más familiar. Parece que las variantes MT4 y MT5 son idénticas. SB es exactamente lo mismo.

¿Y qué, OrderClose está garantizado para cerrar la operación?


fxsaber:

Sí, el código de los demás es oscuro.

No, no siempre es así. Me refiero al estilo.