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

 
Artyom Trishkin:

Para mantener los datos históricos actualizados "en caliente", es necesario acceder a estos datos cada dos minutos utilizando cualquiera de las funciones CopyXXX, iXXX, por ejemplo CopyTime(), iTime(), etc.

No sé qué volúmenes no se consiguen en el probador. Hay volúmenes reales y de garrapatas. Sin el código no se puede responder a la sustancia.

El código es el mismo que he descargado antes (ligeramente modificado). Copiando garrapatas:

 MqlTick tick_array[];
      uint start = GetTickCount();
      int received = CopyTicks(_Symbol, tick_array, COPY_TICKS_TRADE, periodStartTime*1000, ticksSizeToCopy);
            if(received != -1) {
               PrintFormat("%s: received %d ticks in %d ms", _Symbol, received, GetTickCount() - start);
               if(GetLastError() != 0) 
                  PrintFormat("%s: таймер Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",
                              _Symbol, received, GetTickCount() - start, _LastError);
            }

Luego hay una petición de volúmenes. Por ejemplo (simplificado):

int ticks = ArraySize(tick_array);
for (int i = 0; i < ticks; i ++) {
         if((tick_array[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) {
               if(tick_array[i].volume > max) max = tick_array[i].volume;
        }
}

Si sólo lo adjuntas a un gráfico, entonces está bien. Si lo conecto a un probador, por alguna razón no hay volúmenes...

 
Yevhenii Levchenko:

El código es el mismo que publiqué antes (ligeramente modificado). Copia de garrapatas:

A continuación, hay una solicitud de volúmenes. Por ejemplo (simplificado):

Si sólo lo adjunto a un gráfico, entonces está bien. Si está en el Probador de Estrategias, entonces no tiene volúmenes...

Nota sobre la función CopyTicks(). Sobre las banderas.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
[in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
 

Colegas, por favor, aconsejen por qué no puedo poner 2 o 3 indicadores ATR con diferentes marcos temporales en un gráfico al mismo tiempo.

Incluso cambiando el Offset para evitar solapamientos visuales, sólo funciona un indicador y se muestra en el gráfico?

input int InpOffsetX = 10; // Offset X
input int InpOffsetY = 80;// Desplazamiento Y

Más concretamente, si cambio de TF, aparece el segundo, pero desaparece el primero; los tres se muestran alternativamente en diferentes TF, pero no todos juntos. La orden no puede ser rastreada.

 
Artyom Trishkin:

Lea la nota sobre CopyTicks(). Sobre las banderas.

No puedo entender lo que quieres decir. Parece que estoy usando las banderas correctas... Y funciona en la vida real... pero el probador no quiere.
 
Artyom Trishkin:

¿Dónde he dicho que no sea bueno en lógica?

Tus palabras del post anterior :" Para hacer algoritmos, me parece, se necesita lógica. Y esto está muy lejos de las matemáticas. Y aquí no soy amigo de ella: sólo el material de referencia necesario y la ayuda de los que son amigos".
 
Artyom Trishkin:
Hacer algoritmos, creo, requiere lógica. Y esto está muy lejos de las matemáticas. Y aquí no soy amigo de ella - sólo el material de referencia adecuado y la ayuda de los que son.

El trabajo del programador no es resolver tareas complejas, sino conseguir que el ordenador las haga por él. Pero esto puede requerir la resolución de otras tareas complejas, que el programador realiza obedientemente. :)

 
ANDREY:
Tus palabras de un post anterior :" Para hacer algoritmos, me parece, se necesita lógica. Y esto está muy lejos de las matemáticas. Y no soy amigo de ella, sólo del material de referencia adecuado y de la ayuda de los que sí lo son".

No, no lo es. Es así:

"Para hacer algoritmos, me parece, se necesita lógica. Y esto está muy lejos de las matemáticas. Y no soy amigo de ella, sólo del material de referencia adecuado y de la ayuda de los que sí lo son".

En términos de significado, las dos frases están al lado de la otra. Pero has encontrado tu sentido...

 
Mihail Matkovskij:

El trabajo del programador no es resolver tareas complejas, sino conseguir que el ordenador las haga por él. Pero esto puede requerir la resolución de otras tareas complejas, que el programador realiza obedientemente. :)

El encargado de la tarea, por supuesto, manda. Pero tiene que ser un programador para seguir el curso))))

 
Valeriy Yastremskiy:

El que establece el problema manda, por supuesto. Pero tiene que ser un programador para seguir el curso))))

Esa es la cuestión, el gestor de tareas es también el ejecutor. Aunque no siempre.

 

Por favor, avisa. Tengo un EA que toma datos (tiempo) de un indicador y cuenta la diferencia en milisegundos entre ticks.

Lo emito a través de Alert y obtengo lo siguiente (ver imagen). Según veo, primero obtengo el número total de milisegundos y luego la diferencia en milisegundos entre los últimos 4 ticks (entre 1 y 2, 2 y 3, 3 y 4).

¿Por qué es así? Sólo necesito los valores del 4º tick.

tiempo

Archivos adjuntos:
ind_time.mq4  1 kb
exp_time.mq4  2 kb