Errores, fallos, preguntas - página 1853

 
Комбинатор:

¿No puede qué? ¿Escribirlo así?

Struct[(int)0]

Sí, no se puede escribir así. Tanto más - Struct[(MqlTick)0]


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

Nueva versión de MetaTrader 5 build 1570: Mejora de la vigilancia del mercado y ampliación de las funciones de plantilla en MQL5

MetaQuotes Software Corp., 2017.03.22 16:31

  1. MQL5: Se ha añadido la posibilidad de especializar explícitamente las funciones de plantilla. Para ello, los parámetros de escritura deben especificarse antes de la lista de parámetros de llamada:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // явная специализация шаблонной функции
      }
    Por lo tanto, la especialización no se realiza mediante parámetros de llamada, sino especificando explícitamente los tipos.
 
C es un lenguaje de programación genial. Pero, mucha gente programa con los ojos cerrados(:
 

Por lo tanto, la especialización no se realiza mediante parámetros de llamada, sino mediante la indicación directa de los tipos.

¿Tipos de qué, señor? ¿Cuál es el tipo de estructura que está violando?

 
Алексей Тарабанов:

¿Qué tipo de estructura viola?

struct STRUCT
{
  template <typename T>
  void operator []( int )
  {
    Print(__FUNCSIG__);
  }
};

void OnStart()
{
  STRUCT Struct;
  
  Struct.operator[]<int>(0);
  Struct.operator[]<MqlTick>(0);
}

Resultado
void STRUCT::operator[]<int>(int)
void STRUCT::operator[]<MqlTick>(int)
 
fxsaber:

Resultado

Basta con estudiar los tipos de datos.
 
Алексей Тарабанов:
Sólo hay que estudiar los tipos de datos.
Tener sentido del humor: marcó la casilla.
 
fxsaber:
Tener sentido del humor: marcó la casilla.

Gracias
 
Renat Fatkhullin:

La tarea ya se ha configurado para cambiar esta estrategia y traer datos a no más de 500 barras de la fecha más lejana de la solicitud. Esto permitirá redactar sin problemas los filtros de mercado.

1. ¿será posible cambiar esta profundidad?

2. ¿dónde se regulan en MT5 los límites del historial cargado?

 
He leído el Tutorial para Dummies. Tengo un algoritmo, pero no puedo prescribirlo correctamente.
Así que la idea es que accedo al conjunto de datos de las últimas 86 velas, excepto 0. Cada vela blanca es 1, cada vela negra es 0. Si el precio de cierre de 1 vela es igualal precio de apertura de 1 vela, entonces mira el precio de cierre de 2 velas y si es mayor que el precio de apertura de 1 vela, entonces pon 0. Si el precio de cierre de 2 velas es igual al precio de apertura de 1 vela, entonces por el mismo principio, compara el precio de apertura de 2 velas con el precio de cierre de 2 velas.
El ciclo se ejecuta cada 15 minutos o 60
 
¿Se trata de un error en el lenguaje o de una característica no documentada?
struct STRUCT
{
  void operator =( STRUCT& ) { Print(__FUNCSIG__); }
};

void OnStart()
{
  STRUCT Struct = {0};
  
  Struct = (STRUCT)Struct; // Пусто
  Struct = Struct;         // void STRUCT::operator=(STRUCT&)
}

El operador no se llama, ¡aunque lo conviertas en un operador de plantilla!