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

 
afsmerinostra:

Buen tiempo,

Por favor, ayúdenme a encontrar un error... Copio los valores de las barras (BarsCount) del buffer del indicador en el script, luego hago un bucle con los valores, detecto una señal y los imprimo con Print(); parece sencillo, pero no lo es tanto... Obtengo todas las señales como quería, excepto el cruce de la línea cero.

¿Quizás esto no está permitido en el script? Adjunto el código y una captura de pantalla del log... ¡Muchas gracias!

El cruce sólo puede definirse comparando el valor del índice del array anterior con cero y el valor del actual con cero. Es decir, que estaba por encima de cero y se convirtió en bajo cero. O viceversa, era más bajo y se convirtió en más alto.

Y asegúrese de leer en la documentación cómo funciona el tlse if.

Si su código contiene una condición, todas las siguientes no serán procesadas.

 
Alexey Viktorov:

Una intersección sólo puede definirse comparando el índice anterior del array con cero y el actual con cero. Es decir, que estaba por encima de cero y se convirtió en bajo cero. O viceversa, era más bajo y se convirtió en más alto.

Y asegúrese de leer en la documentación cómo funciona el tlse if.

Si su código contiene una condición, todas las siguientes no serán procesadas.

Tenía razón en cuanto a la comprobación del nivel con respecto a cero. Moví las condiciones de cruce al principio del código y todo funcionó. Gracias.
 
afsmerinostra:
Todo era correcto en cuanto a la comprobación del nivel respecto a cero. He movido las condiciones de intersección al principio del código y todo funciona. Gracias.

Por lo general, es necesario limpiar los else, sólo son necesarios cuando las condiciones son mutuamente excluyentes y la superposición es condiciones separadas.

 
Hola a todos!!! ¿Se puede saber qué pasa?
//+------------------------------------------------------------------+
//|                                                 Signal_Line.mqh |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
class Signal_Line
  {
private:

public:
                     Signal_Line();
                    ~Signal_Line();
   bool              Signal_Short(double &Trend_Line_UP[][], int UP);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal_Line::Signal_Line()
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
Signal_Line::~Signal_Line()
  {
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|     Метод проверки флагов событий цены относительно линий тренда                                                             |
//+------------------------------------------------------------------+
bool Signal_Line::Signal_Short(double &Trend_Line_UP[][], int UP)
  {
   if(Trend_Line_UP[UP][3]<iClose(_Symbol,0,0))
      return(true);
  }
//+------------------------------------------------------------------+
 

Dice: ¿Por qué no se ha dignado a devolver el valor?

bool Signal_Line::Signal_Short(double &Trend_Line_UP[][], int UP)
  {
   if(Trend_Line_UP[UP][3]<iClose(_Symbol,0,0))
      return(true);
//---
   return(false);
  }
 
Vladimir Karputov:

Dice: ¿Por qué no se ha dignado a devolver el valor?

¡Exactamente! Oh, Dios mío)))

 
Vladimir Karputov:

Dice: ¿por qué no se ha dignado a devolver el valor?

¡¡¡Gracias!!!

 
En mql4 hay funciones

OrderCloseTime();

y datetimeOrderOpenTime(); ¿Cómo puedo obtener estos datos programáticamente en mql5 para las posiciones ya cerradas? Es decir, ¿el tiempo de apertura y cierre de una posición cerrada?

 
bahtiyar:
En mql4 hay funciones

OrderCloseTime();

y datetimeOrderOpenTime(); ¿Cómo puedo obtener estos datos programáticamente en mql5 para las posiciones ya cerradas? Es decir, la hora de apertura y cierre de las posiciones cerradas

Seleccione en el historial de operaciones por ID de posición y en las propiedades de las operaciones hay apertura y cierre. No sólo el tiempo, sino también el precio y el motivo del cierre y algo más.
 

¿Puedes darme una pista? Esta entrada:

var1=(var<10)?1:0;

Qué significa, cómo interpretarlo, opciones de uso. Parámetros.