Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 529

 
YanSay:

¿Así?

Yo iría en bicicleta así:

for(int i=OrdersTotal()-1; i>WRONG_VALUE; i--)

Estoy acostumbrado al postdecremento/postincremento - tiene sentido para mí, a diferencia del incremento/decremento del prefijo, ya que (desde la ayuda) el incremento del prefijo (++i) y el decremento (--k) se aplican a una variable justo antes de usar esa variable en una expresión.

Su comparación, por otra parte, no es correcta en absoluto:

if(NormalizeDouble((Ask-OrderStopLoss()>Trailing*Point),Digits))

Aquí se está normalizando un valor booleano - el resultado de la comparación de dos valores - el valor de la expresión Ask-OrderStopLoss() se compara con el valor de la expresión Trailing*Point y luego se normaliza el resultado de esta comparación.

El resultado de la comparación sólo puede ser falso (0) o verdadero (no cero). Así que es este cero o no cero el que se normalizará.

Así es como debes hacer la comparación:

if(NormalizeDouble((Ask-OrderStopLoss())-Trailing*Point,Digits)>DBL_EPSILON)
  {
   // Ask-OrderStopLoss() больше Trailing*Point
  }
 
Juer:
¿Qué significa que hay un error?


Tengo una función con dos objetos:

Una de las clases tiene una estructura con más de 4000 campos (en su mayoría enums).

¿Qué hacer con este error?

bool              CheckCandleOneRules(CCandlePropertiesBase *candle,
                                      CCandleRule *rule,
                                      int dir);

Aquí el tamaño de las variables locales es demasiado grande (más de 512kb) en tiempo de compilación.

¿Qué buscar y qué hacer? La función tiene una matriz de cadenas CArrayString, sospecho que el error puede estar relacionado con ella.

Lo lleno usando el método Add(), luego hago Clear() y Shutdown() de nuevo. Y luego vuelvo a llenarla con nuevos datos usando el método Add(). En este caso, ¿se volverá a llenar el array a partir de un elemento nulo?

 

¿Cómo puedo saber, en la historia, la secuencia más larga de velas consecutivas y multidireccionales?

Por ejemplo: el primero es bajista, el segundo es alcista, el tercero es bajista y así sucesivamente. Supongo que necesitamos un bucle y una variable que registre el número de velas de este tipo, pero no sé cuál debe ser el bucle y cómo, con qué condición, salir de él.

 
PolarSeaman:

¿Cómo puedo saber, en la historia, la secuencia más larga de velas consecutivas y multidireccionales?

Por ejemplo: el primero es bajista, el segundo es alcista, el tercero es bajista y así sucesivamente. Supongo que necesitamos un bucle y una variable para registrar el número de velas de este tipo, pero no sé cómo debe ser el bucle y cómo salir de él, por qué condición.

No sé qué tipo de bucle debe utilizarse para salir de él.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Получает в массив rates_array исторические данные структуры MqlRates указанного символа-периода в указанном количестве. Отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества данных рекомендуется в качестве приемного...
 
Alexey Viktorov:

CopyRates y el bucle sobre una matriz de estructuras MqlRates.

Gracias, un bucle sobre un array, ¿cómo? y ¿cuándo salir de él?

 
PolarSeaman:

Gracias, el bucle del array, ¿cómo? y ¿cuándo salir de él?

Lo mismo que para la lista de pedidos. Sólo hay que tener cuidado con la dirección de la indexación en el array. Y cuando hay que salir... Si debe hacerse una sola vez y entre los últimos compases, debe salir en cuanto se rompa la secuencia. Si se trata de un indicador, entonces salga cuando la matriz haya terminado.
 
PolarSeaman:

¿Cómo puedo saber, en la historia, la secuencia más larga de velas consecutivas y multidireccionales?

Por ejemplo: el primero es bajista, el segundo es alcista, el tercero es bajista y así sucesivamente. Supongo que necesitamos un bucle y una variable para registrar el número de velas de este tipo, pero no sé cuál debe ser el bucle y cómo, por qué condición, salir de él.

No sé qué tipo de ciclo debe ser pero no sé en qué condiciones salir de él.

 
Alexey Viktorov:
y luego salir en cuanto se rompa la secuencia.

¿Cómo puedo grabar esta secuencia en primer lugar?

 
Vitaly Muzichenko:

¿Y contar desde dónde la máxima consistencia, desde cuando se creó el forex?

Sería genial) Pero la historia del corredor es limitada, buscar a través de todos los disponibles. o para el último año, es decir, desde 15. 04. 17

 
PolarSeaman:

¿Cómo se escribe, en general, esta secuencia?

Cómo escribirlo, respondió Alexey. Sería estupendo que escribiera el código, tal y como lo ve, si tiene tiempo y ganas).

Veo la implementación a través de una bandera, pero me parece mal, que no quiero ni empezar a probar.

PS. Por cierto, ¿es un indicador o un EA?