Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 164

 

Señores, por favor, díganme qué hay que escribir en las dos últimas líneas cuando se modifica una orden pendiente si su vida útil está establecida. (por ejemplo, 6 horas - ).

request.type_time = ORDER_TIME_SPECIFIED; // el pedido será válido hasta la fecha de vencimiento
request.expiration = TimeCurrent()+6*3600;// última hora conocida del servidor + count*hours

Si el tiempo de vida no cambia, ¿podemos no escribir nada al modificar? Por defecto, morirá por sí mismo.

¿Y si necesita cambiar su vida útil?

Modificar una orden pendiente

Solicitud de comercio para modificar los niveles de precios de las órdenes pendientes. Se requieren 7 campos:

-acción

-orden

-precio

-sl

-tp

-tipo_tiempo

-expiración

Estas son las dos líneas del Manual en las que no puedo entrar:

tipo_tiempo

Tipo de orden en el momento de la expiración. El valor puede ser uno de los valores ENUM_ORDER_TYPE_TIME

caducidad

Hora de vencimientode la orden pendiente (para órdenes del tipo ORDER_TIME_SPECIFIED)

Por favor, escriba cómo deben ser en el experto, al modificar, voy a entender. Gracias de antemano.

Puede omitir estas dos líneas por completo.

Puede escribir uno, por ejemplo: request.type_time = ORDER_TIME_DAY; en este caso el pedido se eliminará después de 1 día,

otras opciones: https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time

En lasolicitud.expiración = TimeCurrent()+6*3600;//última hora conocida del servidor + número de horas*horas

se especifica la hora de caducidad de la orden.

https://www.mql5.com/ru/articles/481

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

Ayuda para un novato, por favor.

He instalado Alpari mt5, la optimización funciona como debe ser, es decir, todos los gráficos se dibujan y se generan informes, y el historial está bien. Después de haber instalado MT5 en el mismo PC con Insta, he descargado un historial de pruebas allí y ahora no tengo gráficos y resultados de optimización tanto en Insta como en Alpari. Después de haber desmontado todo y haber instalado sólo Alpari, la optimización vuelve a funcionar perfectamente. Sin embargo, después de instalar Insta en otro ordenador de la red local, los resultados de la optimización vuelven a perderse.

El mismo EA en todos los casos, el registro se inunda de mensajes de best resalt, sólo se utilizan agentes locales.

¿Alguien utiliza dos o más mt5 al mismo tiempo en un ordenador o en la red local, o tal vez se ha enfrentado a este problema?




 
Crucian:

Estas dos líneas pueden no estar escritas en absoluto.

Puede escribir uno, por ejemplo: request.type_time = ORDER_TIME_DAY; en este caso el pedido se eliminará después de 1 día,

Ya veo. Eso es lo que pensé, al modificar.


request.type_time =ORDER_TIME_DAY - Supongo que es lo mismo que -

entrada int t = 24;

request.expiration = TimeCurrent()+t*3600;

 
rosomah:

Ya veo. Eso es lo que pensé, al modificar.


request.type_time =ORDER_TIME_DAY - Supongo que es lo mismo que -

entrada int t = 24;

request.expiration = TimeCurrent()+t*3600;

Te he dado el enlacehttps://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_type_time que se pueden utilizar 4 variantes pararequest.type_time :


ORDER_TIME_GTC
El pedido estará en la cola hasta que el

ORDEN_TIME_DAY
La orden sólo estará activa durante el día de negociación actual

TIEMPO_DE_PEDIDO_ESPECIFICADO
El pedido será válido hasta la fecha de caducidad

HORA_DE_PEDIDO_DÍA_ESPECIFICADA
La orden estará en vigor hasta las 00:00 horas de la fecha indicada. Si esa hora no cae en una sesión de negociación, el vencimiento se producirá en la hora de negociación más cercana.

Y le dio el enlace a https://www.mql5.com/ru/articles/481 , que da el código de la solicitud de comercio al modificar una orden utilizando la clase CTrade listo https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade.

El código es este:

//--- тикет ордера указан только для примера, его нужно получить
   ulong ticket=1234556;
//--- символ также указан для примера, его нужно получить
   string symbol="EURUSD";
//--- количество знаков после запятой
   int    digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
//--- значение пункта
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
//--- получим цену покупки
   double price=SymbolInfoDouble(symbol,SYMBOL_ASK);
//--- вычислим и нормализуем уровни SL и TP
//--- на самом деле они должны вычисляться в зависимости от типа ордера
   double SL=NormalizeDouble(price-1000*point,digits);
   double TP=NormalizeDouble(price+1000*point,digits);
   //--- зададим срок действия одни сутки
   datetime expiration=TimeTradeServer()+PeriodSeconds(PERIOD_D1); //!!!  
//--- все готово, делаем попытку модифицировать ордер 
   if(!trade.OrderModify(ticket,price,SL,TP,ORDER_TIME_GTC,expiration)) //!!!
     {
      //--- сообщим о неудаче
      Print("Метод OrderModify() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод OrderModify() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }

Lea sobre el tiempo en MQL5 aquí:https://www.mql5.com/ru/articles/599 .

Utilice la búsqueda y lea los artículos y la documentación.


Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

Hola a todos.

Por favor, no tiren piedras, pero no pude encontrar ninguna...

no hay posiciones abiertas en el EA... Dice lo siguiente

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 failed instant buy 1.00 EURUSD at 1.36720 sl: 1.06720 tp: 1.46720 [Invalid request]

и

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 Alerta: La solicitud para colocar la orden de compra falló - código de error:4756

¿Qué puede ser?

mrequest.action = TRADE_ACTION_DEAL; // ejecución inmediata

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último precio de venta

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit

mrequest.symbol = _Symbol; // símbolo

mrequest.volumen = Lote; // número de lotes a negociar

mrequest.magic = EA_Magic; // Número mágico

mrequest.type = ORDER_TYPE_BUY; // orden de compra

mrequest.type_filling = ORDER_FILLING_FOK; // tipo de orden - todo o nada

mrequest.desviación=100; // deslizamiento del precio actual

//----enviar pedido

OrderSend(mrequest,mresult);

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Armen:

Armen, por favor. pega el código en el cuadro de código. Ctrl+"5". Mejor aún, pulsa el botón SRC en el editor, pega en el cuadro y pulsa [ok].

No está claro. :(

 
MetaDriver:

Armen, por favor. pega el código en el cuadro de código. Ctrl+"5". Mejor aún, pulsa el botón SRC en el editor, pega en el cuadro y pulsa [ok].

No está claro. :(

Lo siento, lo volveré a hacer ahora...
 

Hola a todos.

Por favor, no tiren piedras, pero no pude encontrar ninguna...

no hay posiciones abiertas en el EA... Da este

2013.12.23 03:00:01 Core 1 2013.12.20 23:30:00 falló la compra instantánea de 1,00 EURUSD a 1,36720 sl: 1,06720 tp: 1,46720 [Solicitud no válida].

и

2013.12.23 03:00:01 Núcleo 1 2013.12.20 23:30:00 Alerta: La solicitud para colocar la orden de compra falló - código de error:4756

¿Qué puede ser?

         mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение

         mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // последняя цена Bid

         mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss

         mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

         mrequest.symbol = _Symbol;                                            // символ

         mrequest.volume = Lot;                                                // количество лотов для торговли

         mrequest.magic = EA_Magic;                                            // Magic Number

         mrequest.type = ORDER_TYPE_SELL;                                       // ордер на продажу

         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего

         mrequest.deviation=100;                                               // проскальзывание от текущей цены

         //--- отсылаем ордер

         OrderSend(mrequest,mresult);

 
Armen:

Hola a todos.

Por favor, no tiren piedras, pero no pude encontrar ninguna...

no hay posiciones abiertas en el EA... da esto...

Mejor envíe una orden para abrir una posición/orden como se describe en Operaciones comerciales en MQL5 - es fácil.
 
paladin800:
El problema es que tengo que rehacer (un poco) el búho ya hecho.
El problema es que tengo que modificar (un poco) los búhos ya hechos... :(