La gran y terrible MT4 para siempre (o cómo hacer una estrategia de transición) - página 30

 
en mt4 no puedo comprimir el gráfico verticalmente los niveles de Fibonacci no ver el gráfico se limita a 8000 pips))) ¿cómo solucionarlo?
 

Es una cosa extraña en Forts. Aquí está la parte principal del cierre de la posición.

  if(Trade.PositionClose(mSymbol))
  {
     // --- Введем задержку пока не получим номер сделки, но не более 2-х секунд
    int cnt = 0;
    ulong deal = 0;
    while(((deal = Trade.ResultDeal()) == 0) && cnt < 20) {Sleep(100); ++cnt;}
    
    if(deal == 0)
    {
      ulong ttOrder = Trade.ResultOrder();
      if(HistoryOrderSelect(ttOrder))
      {
        ENUM_ORDER_STATE state = ENUM_ORDER_STATE(HistoryOrderGetInteger(ttOrder, ORDER_STATE));
        LOG("После закрытия позиции № сделки=0, Order=" + string(ttOrder) + " state=" + EnumToString(state));
      }
      return false;
    }
  }

Aquí hay un extracto del registro del Asesor Experto, es decir, llegó a la sección en la que el ticket de transacción es cero después de 20 iteraciones de comprobación de ResultDeal():


JL    0    10:08:04.462    e-MultiPattern-0.15 (RTS-9.21,M5)    cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short
JM   0    10:08:06.695    e-MultiPattern-0.15 (RTS-9.21,M5)     ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED

Aquí hay un extracto del registro de la terminal:

IG 0 10:08:04.465 Operaciones '733618': compra de bolsa 2 RTS-9.21 al mercado
KN 0 10:08:04.480 Operaciones '733618': aceptada la compra de bolsa 2 RTS-9.21 en el mercado
OQ 0 10:08:04.481 Operaciones '733618': compra de bolsa 2 RTS-9.21 en el mercado colocado para la ejecución

FG 0 10:08:04.517 Operaciones '733618': orden #16868286 comprar 2 / 2 RTS-9.21 en el mercado hecho en 52.326 ms
JN 0 10:08:04.517 Operaciones '733618': operación #3413752 compra 2 RTS-9.21 a 172780 realizada (basada en la orden #16868286)

Por favor, aconsejar que tiene un buen conocimiento de la lógica de negociación SB y MT5. En el registro del terminal la colocación de la orden y la creación de la transacción ha ocurrido en un momento - 04.517 segundos.

Pero el EA en el bucle while nunca vio un ticket comercial y salió después de 20 iteraciones a los 06.695 segundos. ¿Por qué la estructura tiene un billete de pedido pero no un billete de transacción?

¿Cómo se garantiza la obtención de un boleto comercial, especialmente si se utiliza un cierre parcial?

 
Vasiliy Pushkaryov obtención de un ticket de transacción, especialmente si se utiliza un cierre parcial?

No se puede explicar fácilmente, ya que hay muchas trampas. Escribió una solución que permite a los usuarios trabajar sin problemas. Pero analizar la implementación interna es para conocedores especiales.

 
Haz un probador adecuado para mt4 y en un par de años mt5 se olvidará
 
Dmitry Fedoseev #:

¿Y en serio...?

El hilo "Humor" aquí

La compatibilidad ascendente es uno de los requisitos básicos del software. El código de una versión anterior debe ser percibido adecuadamente por la posterior. De lo contrario, el desarrollador simplemente desecha el desarrollo anterior e introduce uno nuevo. El camino a ninguna parte.

Estoy totalmente de acuerdo en que es necesario (en primer lugar, para los desarrolladores) compilar el código MQL4 en código MQL5.

 
Vladimir Baskakov #:
Haz un probador adecuado para mt4 y en un par de años mt5 será olvidado por todos

Baskakov, y la hija utiliza MT5, el infame...

 
Le prometí un indicador hace seis meses y nunca lo hice.
 
fxsaber #:

Si ResultDeal es cero, seguirá siendo cero después de un millón de iteraciones en el bucle, porque es un parámetro invariable.

Porque la orden de mercado colocada es el resultado de OrderSend.

No está muy claro. En la ayuda de la estructura de MqlTradeResult , dice

Si el cierre devolvió una orden de compra pero no hay ninguna orden de compra, ¿se trata de una transacción del tipo TRADE_ACTION_PENDING?

¿O TRADE_ACTION_DEAL y el ticket de comercio puede estar "atrasado" y no estar incluido en la estructura?

Es decir, ¿es mejor buscar una oferta por orden a través de las funciones de HistorySelect?

 

Y además, lo siento, es un punto delicado. Para los desarrolladores: dejad de malgastar gastos insanos e injustificados en el mantenimiento de MT4, ya tenéis a la mitad de vuestros profesionales de alto nivel haciendo eso.

Construye el compilador MQL4-MQL5 una vez y concéntrate en las cosas importantes. Consiga un primer puesto estable en la versión final entre sus competidores.

 
Vasiliy Pushkaryov #:

No está del todo claro. En la ayuda de la estructura MqlTradeResult está escrito

Si el cierre devuelve un ticket de orden, pero no hay un ticket de operación - ¿es una operación del tipo TRADE_ACTION_PENDING?

¿O TRADE_ACTION_DEAL y el ticket de comercio puede estar "atrasado" y no estar incluido en la estructura?

Es decir, ¿es mejor buscar la oferta por orden a través de las funciones de HistorySelect?

Aunque, el método PositionClose(Symbol) en SB asigna el tipo de transacción TRADE_ACTION_DEAL.

Resulta que debería haber un ticket comercial, pero a menudo no existe.