Errores, fallos, preguntas - página 2829

 
Nuevas funciones internas.
int OrderExist( const string symbol, ENUM_ORDER_TYPE type, ulong magic, ulong &tickets[] );

int PositionExist( const string symbol, ENUM_POSITION_TYPE type, ulong magic, ulong &tickets[] );
 

Saludos. ¿Pueden aconsejarme o darme un enlace de dónde ir?

VPS WinServer 2012 R2, MT4 se ejecuta, en algún momento se descarga, tiene que ejecutarse de nuevo.

Dónde buscar, etc. ....

Muchas gracias de antemano.

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Peculiaridades de mql5, consejos y trucos

fxsaber, 2020.08.20 18:52

El siguiente código en la cuenta demode RannForex-Server puede reproducir inmediatamente esta situación al ejecutar este EA.

// Воспроизведение ситуации наличия позиции и отложенного ордера с одинаковыми тикетами.

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

MqlTradeResult Result = {0};
MqlTradeRequest Request = {0};

int OnInit()
{

        Request.action = TRADE_ACTION_PENDING;
        Request.symbol = _Symbol;
        Request.volume = 100;
        Request.price = Ask;
        Request.type = ORDER_TYPE_BUY_LIMIT;
        
        return(!OrderSend(Request, Result)); // Выставили лимитник по текущей цене.
}

#define  TOSTRING(A) #A + " = " + DoubleToString(A, _Digits)

void OnTradeTransaction( const MqlTradeTransaction&, const MqlTradeRequest&, const MqlTradeResult& )
{
  if (OrderSelect(Result.order) && (OrderGetInteger(ORDER_STATE) == ORDER_STATE_PARTIAL)) // Если наш лимитник исполнился частично
  {
    if (Ask - OrderGetDouble(ORDER_PRICE_OPEN) < 100 * _Point)                            // и находится близко от текущей цены
    {
        Request.action = TRADE_ACTION_MODIFY;
        Request.order = Result.order;
        Request.price = Ask - 1000 * _Point;

      // тогда передвигаем его подальше.
      if (OrderSend(Request, Result)) // Если синхронный OrderSend выполнился успешно, то торговое окружение должно соответствовать.
      {
        // Проверка соответствия торгового окружения.
        if (OrderSelect(Request.order) &&                                                                // Если получилось взять данные нашего ордера
            NormalizeDouble(OrderGetDouble(ORDER_PRICE_OPEN) - Request.price, _Digits))                  // и цена ордера не равна цене успешного OrderSend
          Alert("Bug:" + TOSTRING(OrderGetDouble(ORDER_PRICE_OPEN)) + " != " + TOSTRING(Request.price)); // сообщаем о баге MT5.
      }
    }
    else
      ExpertRemove();
  }     
}


Por cierto, el script muestra (no siempre la primera vez) un error en la ejecución del OrderSend sincrónico.

Alert: Bug:OrderGetDouble(ORDER_PRICE_OPEN) = 0.89837 != Request.price = 0.88837

Después de que el OrderSend se haya ejecutado durante unas decenas/centenares de milisegundos, el precio de la orden es antiguo, y no el que fue colocado con éxito por el OrderSend.

 

enviar una búsqueda - no pude encontrarlo yo mismo

¿Cómo lograr la unicidad de las filas con múltiples campos en una tabla en SQLite?

ZS: si alguien puede dar un ejemplo - ¡gracias de antemano!

 

¿De quién fue la idea de mover la pestaña del Foro a la parte superior de la lista de la cabecera?

Mala idea, no le digas a quién.

 
El resaltado de código en la base no funciona desde hace más de una semana, el cambio de archivos adjuntos también un error
 
Igor Makanu:

enviar una búsqueda - no pude encontrarlo yo mismo

¿Cómo lograr la unicidad de las filas con múltiples campos en una tabla en SQLite?

ZS: si alguien puede dar un ejemplo - ¡gracias de antemano!

Crear una clave única para múltiples campos (las filas con datos existentes deben coincidir con la unicidad que se está creando, de lo contrario se producirá un error).

ALTER TABLE `t1` ADD UNIQUE (
`id` ,
`name` ,
`account`
);
 
Andrey Khatimlianskii:

Crear una clave única a través de múltiples campos (con las filas con datos existentes deben coincidir con la unicidad que se está creando, de lo contrario se producirá un error).

Vale, lo intentaré, pero probablemente tendré que leer un libro de SQL, no tengo suficientes conocimientos

Gracias.

 
Andrey Dik:

¿De quién fue la idea de mover la pestaña del Foro a la parte superior de la lista de la cabecera?

Mala idea, no le digas a quién.

Estoy de acuerdo.

 
Andrey Dik:

¿De quién fue la idea de mover la pestaña del Foro a la parte superior de la lista de la cabecera?

Mala idea, no le digas a quién.

¿Cuál es el problema? ¿Reflejos?)

Y se sigue haciendo más clic en "Foro" que en "Documentación", al menos en el sitio...

Razón de la queja: