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

 
Karputov Vladimir:
Sueño11:

Buenas tardes, este es el problema... hay una función de trailing stop...

Cómo cambiarlo para que busque un número ilimitado de pedidos en lugar de uno ...


Yo tengo uno de estos, lo rastrea todo.
extern int             TrailingStep = 10;     //Шаг трейлинга
extern int             TrailingStop = 30;     //Трейлинг стоп
//+------------------------------------------------------------------+
//Трейлинг стоп
void Trailing()
{
 int err = GetLastError();
 err = 0;
 
 for(int i = OrdersTotal()-1; i>=0; i--)
 {
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  {
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
   {
    if(OrderType() == OP_BUY)
    {     
     if(Ask - OrderOpenPrice() > TrailingStop*Point)
     {
      if(OrderStopLoss() < Ask - (TrailingStep + TrailingStop)*Point)
      {
       if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TrailingStop*Point,Digits),OrderTakeProfit(),0,clrGreen))
       {
        err = GetLastError();
        if(err != 0) Print("Ошибка модификации ордера № ",OrderTicket()," на покупку! Код ошибки: ",err,".");
       }
      }
     }
    }
    if(OrderType() == OP_SELL)
    {
     if(OrderOpenPrice() - Bid > TrailingStop*Point)
     {
      if(OrderStopLoss() > Bid + (TrailingStep + TrailingStop)*Point)
      {
       if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TrailingStop*Point,Digits),OrderTakeProfit(),0,clrRed))
       {
        err = GetLastError();
        if(err != 0) Print("Ошибка модификации ордера № ",OrderTicket()," на продажу! Код ошибки: ",err,".");
       }
      }
     }
    }
   }
  }
 }
}
//+------------------------------------------------------------------+
 
barudkinarseniy:
Yo tengo uno de estos, lo jode todo.
Es más o menos lo mismo, tal vez lo estás llamando en el lugar equivocado.
 
Alexey Viktorov:
¿No se puede hacer a través del OnTimer()?

Lo estoy haciendo con un temporizador. Ya lo he resuelto, gracias, sólo tenía que añadir la función ChartRedraw en cada bucle temporal para actualizar el gráfico. Joder, han añadido un montón de complejidades en mql5 después de mql4, pero quizás sea lo mejor...

 
Otra pregunta, ¿cómo se puede convertir una variable fecha-hora (tipo datetime) en NÚMERO de segundos después de 1970? Porque si se equipara el tiempo a un número entero normal, esta variable-intento será efectivamente igual a este número de segundos, pero aparecerá un aviso de"posible pérdida de datos debido a la conversión de tipo", es un poco molesto, ¿hay alguna forma de solucionar el problema?

 
loleg1991:
Otra pregunta, ¿cómo se puede convertir una variable fecha-hora (tipo datetime) en NÚMERO de segundos después de 1970? Porque si se equipara a un valor de tiempo entero normal, esta variable int será efectivamente igual a este número de segundos, pero habrá una advertencia"posible pérdida de datos debido a la conversión de tipo", es un poco molesto, ¿hay alguna manera de resolver el problema?

Lea "Conversión de tipos numéricos" en la documentación
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
loleg1991:
Otra pregunta, ¿cómo se puede convertir una variable fecha-hora (tipo datetime) en NÚMERO de segundos después de 1970? Porque si se equipara a un valor de tiempo entero normal, esta variable-int realmente será igual a este número de segundos, pero habrá una advertencia"posible pérdida de datos debido a la conversión de tipo", es un poco molesto, ¿hay alguna manera de resolver el problema?

datetime es el número de segundos

https://www.mql5.com/ru/docs/basis/types/integer/datetime

.

https://www.mql5.com/ru/docs/convert/stringtotime

Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Тип datetime - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
loleg1991:
Otra pregunta, ¿cómo se puede convertir una variable fecha-hora (tipo datetime) en NÚMERO de segundos después de 1970? Porque si se equipara a un valor entero normal de tiempo, esta variable-intro será realmente igual a este número de segundos, pero habrá una advertencia"posible pérdida de datos debido a la conversión de tipo", es un poco molesto, ¿hay alguna manera de resolver el problema?

Si no te refieres a una fecha, sino a un número de segundos, entonces conviértelo explícitamente en un tipo largo.
 
Alexey Kozitsyn:
Si quieres mostrar el número de segundos, pero no la fecha, entonces hazlo explícitamente de tipo largo.
Sí, me refería a la pantalla, gracias, eso ayuda.
 
loleg1991:
Sí, me refería a la pantalla, gracias, eso ayuda.
De nada)
 

Hola, ¿podríais decirme si es posible que el Asesor Experto añada un objeto como un botón o un interruptor de palanca al gráfico, y si es así, cómo?

Razón de la queja: