Prueba de los sistemas de previsión en tiempo real - página 54

 

a forte928

В данный момент есть первый фактор на основании которого можно сделать вывод о боковом флете на паре евро доллар -

El par alcanzó el nivel de consolidación de la línea OP en 1,4850. Exactamente las mismas fluctuaciones se observaron en los puntos de 1,3437 y 1,3937 con el posterior retroceso que corresponde a los niveles de 0,382, 0,618 y 1,00.

la segunda figura es el mismo gráfico, pero con los niveles de crecimiento calculados en relación con la baja - 1,4162 y actual 1,4951 y si usted toma sobre la base de este gráfico de precios los niveles 1,4951 y 1,4851 se puede ver que el precio está justo en el punto de equilibrio en el nivel medio de las fluctuaciones de estos indicadores los últimos dos días ... Además, el indicador de saturación ha mostrado durante mucho tiempo el nivel de saturación en el que la inversión debe ocurrir

pero hay un par de cosas que no permiten que esto suceda :

1) el gráfico diario muestra un movimiento de crecimiento negativo (indicador inferior)

2) El gráfico diario alcanzó el nivel de consolidación de 0,382 en 1,4877 en el primer indicador

3) En el gráfico diario se ha alcanzado el nivel de consolidación del COP en 1,4892 en el segundo indicador

4) Hay una oposición activa al movimiento alcista en el gráfico H4

5) Presencia de dos niveles de consolidación en relación con el mínimo de la OP de finales de septiembre y el 0,236 (1,4931 y 1,4933), lo que es un fuerte indicio de la presencia de una corrección prolongada

Para continuar...

Muchas gracias por la aclaración, debo decir que dejé el AT hace unos años (para mí), pero siempre es interesante leer análisis competentes y compararlos con mis predicciones. ¿Podría aclarar el término "nivel de consolidación" para una mejor comprensión y para evitar confusiones terminológicas?


para dejar

¿Has intentado alguna vez buscar los puntos críticos de las series temporales?

No, no lo he hecho, y de momento no tengo ni idea de cómo encontrarlos. Utilicé la noción de "memoria de series temporales". Es un término algo específico, se puede encontrar en las redes neuronales, en el análisis fractal, pero siempre hay que mirar el contexto de su aplicación. Me refiero a la influencia de los recuentos históricos en las realizaciones futuras del proceso. En pocas palabras, este parámetro responde a la pregunta "cuánto tiempo hay que tomar la serie histórica".


PD: Por cierto, recuerdo que prometiste mejorar tu biblioteca lineal y publicar una nueva versión...


a Yurixx

1. En MKL4 no se puede operar con arrays cuyo tamaño no está establecido. Si no has especificado su tamaño al declarar el array, lo harías en init(). Además, mientras trabajas, puedes cambiar su tamaño según sea necesario.


No lo entiendo aquí, no hago eso y todo funciona, me refiero a sin inicialización en el init()


2. Los consejos de Lea son bastante prácticos, vale la pena tenerlos en cuenta. Es muy posible que sólo quieras asignar espacio y tener una variable con el índice del último elemento. Entonces, realmente no importa si sabes el número de elementos que necesitas o no.

No creo que sea muy práctico, porque obviamente habrá que hacermás cálculos. Se podrían añadir bucles adicionales a los anteriores. Pero de todos modos, tendría que comprobarlo todo, si pudiéramos obtener algunas recomendaciones de los desarrolladores... :о)

En general, para que el consejo sea adecuado, será mejor que expliques con más precisión para qué se utiliza el array y por qué es necesario cambiar su tamaño.

Por ejemplo (y este es el ejemplo más simple) para encontrar extremos locales (no en el gráfico) por la condición y[n]>y[n+1] e y[n]<y[n-1] y correspondientemente para un mínimo. Entiendo que se puede resolver de varias maneras, por ejemplo, así:

  • Crear un array de la misma longitud que la serie inicial, codificar en él 0 y 1 la presencia de un extremo.
  • Realiza la primera iteración calculando el número de extremos
  • Recalcular el número de extremos
  • Inicializa el array con este valor
  • Escribir los valores en el nuevo array
Se puede hacer así, se puede hacer así, estoy tratando de averiguar la mejor manera :o)

No juego a los dedales. Pero prefiero la variante 2 o quizás sólo quiero que el euro crezca? :-)

Como has notado, no estaba sugiriendo dedales como tal. Todo está al descubierto, sólo tenía curiosidad por saber tu opinión (he leído en un hilo vecino tu predicción)

Pero las opciones 1 y 3 también están bien, aunque no se diferencian mucho entre sí.

Desplazamiento del "vector divergente" en el valor del precio medio


a Urain

En mi experiencia, recomiendo para definir y utilizar las matrices directamente donde tienen que utilizar estas matrices son en su mayoría locales y utilizar la memoria de forma dinámica, que es mejor que las matrices estáticas, porque trabajan más lento que de la RAM, especialmente si la matriz es pequeña, no tiene sentido estáticamente para reservar mucho espacio para ellos. El compilador de MQL-4 está configurado de tal manera que no se sentirá una diferencia entre la declaración de una matriz con el tamaño explícito y el retrasado.

Parece que no hay "punteros" estadísticos/dinámicos sobre dónde se almacena un array en MQL. Sólo hay un operador de inicialización, la única cuestión es que usarlo varias veces puede ralentizar un array grande. ¿O no? ¿O quizás me estoy perdiendo algo otra vez?


a markeeteer

filtrar la información del foro

Es una cualidad valiosa. Te puedo asegurar que tengo los mejores filtros adaptativos. :о)

Si describe su tarea en detalle (puede escribirme en un mensaje privado), nosotros (yo) averiguaremos la mejor manera de implementarla.

Lo pensaré, pero ahora quiero resolverlo yo mismo. Al fin y al cabo, al menos deberías entender algo de MQL, para poder al menos explicar de alguna manera el problema :o).

 
Y solía haber una ramita tan tranquila. (
 
Lord_Shadows >> :
Y solía haber una ramita tan tranquila. (

>> Creo que seguirá siendo así. Los colegas siguen en modo de combate :o)

 
grasn писал(а) >>

a Yurixx

La verdad es que no lo entiendo, yo no hago eso y todo funciona, me refiero a sin inicialización en init()

Inicializar un array es una cosa, declarar un tamaño es otra. Si declaras un array como Arr[], entonces se asigna un elemento en memoria. Puedes trabajar con él todo lo que quieras, y el sistema no te avisará del error cuando dirijas elementos con número >0, pero los cálculos serán incorrectos. Para que todo esté bien, es necesario establecer un tamaño específico mediante la operación ArrayResize(). Al asignar la memoria en este caso todos los elementos se llenarán de ceros, así que si no necesitas nada especial, puedes incluso no inicializarla (aunque un buen estilo lo requiere).

.

No creo que sea muy práctico, ya que es evidente que hay que hacermás cálculos. Se pueden añadir bucles adicionales a los anteriores. Pero de todos modos, tendríamos que comprobarlo todo, si pudiéramos obtener algunas recomendaciones de los desarrolladores... :о)

El consejo de Lea no conduce a más cálculos. Sácalo con cuidado. Y si consigues que los desarrolladores se impliquen en esta cuestión elemental, serás un héroe. :-)

.

Por ejemplo (y este es el ejemplo más sencillo) para encontrar extremos locales (no en el gráfico) por las condiciones y[n]>y[n+1] e y[n]<y[n-1] y correspondientemente para el mínimo. Entiendo que se puede resolver de varias maneras, por ejemplo, así:

  • Crear una matriz de la misma longitud que la serie original, codificar en ella 0 y 1 la presencia de extremidad.
  • Realiza la primera iteración calculando el número de extremos
  • Recalcular el número de extremos
  • Inicializa el array con este valor
  • Escribir los valores en el nuevo array

Esto se llama mano izquierda sobre la oreja derecha. Yo lo hago siempre en mis programas, pero trabajo de una sola vez para evitar perder recursos de cálculo y tiempo. La ley es: si se gana en memoria, se pierde en tiempo y cálculo. Mi opinión personal es que la memoria es menos crítica para el comercio. Por lo tanto, puedes crear fácilmente incluso dos matrices de la misma longitud y escribir el valor del extremo en una matriz y su coordenada en la otra a medida que se van formando.

Sergei, será mejor que empieces por el escenario más complicado. De lo contrario, no entenderé a qué viene tanto revuelo. :-)))

Aconsejo tomar el consejo de Urain de "declarar y usar arrays directamente donde sea necesario usarlos" con mucha precaución. El uso de matrices está determinado por la naturaleza de la tarea, no por la forma de luchar con el archivo de intercambio.

 
Yurixx >>:
grasn писал(а) >>

Ну например (и это самый простой пример) поиск локальных экстремумов (не на графике) по условию y[n]>y[n+1] и y[n]<y[n-1] и соответственно для минимума. Я понимаю, что можно решить несколькими способами, например таким:

  • Создать массив такой же длины, как и исходный ряд, кодировать в нем 0 и 1 наличие экстремума.
  • Выполнить первую итерацию собрав расчет экстремумов
  • Пересчитать количество экстремумов
  • Инициализировать массив этой величиной
  • Записать значения в новый массив

Это называется левой рукой за правое ухо. Я постоянно делаю это в своих программах, но работаю в один проход, чтобы не тратить зря вычислительные ресурсы и время. Закон такой: выигрываешь в памяти - проигрываешь во времени и вычислениях. Лично мне кажется, что память менее критична для трейдинга. Поэтому можешь смело создавать даже два массива такой же длины и писать в один значение экстремума, а во второй его координату, непосредственно по ходу их формирования.

Eh, eso es un poco fuera de tema ;-). Por lo general, intento aprovechar al máximo las características (API, bibliotecas, etc.) que ya existen para tareas específicas. En particular, ¿no sería más productivo utilizar las funciones ArrayMinimum/Maximum para encontrar los extremos? Además, la elección del método de almacenamiento de los extremos debe seguir estando determinada por las operaciones posteriores que se realicen con ellos. En particular, supongo que los extremos deberán ser violados posteriormente en algún cálculo y en este caso la forma propuesta por grasn es la mejor ya que se ejecuta en un solo bucle y permite iterar los extremos fácilmente después.
 
grasn писал(а) >>

para dejar

No, no he buscado esos puntos y no tengo ni idea de cómo encontrarlos. He utilizado la noción de "memoria de series temporales". Es un término algo específico, se puede encontrar en las redes neuronales y en el análisis fractal, pero siempre hay que mirar el contexto de su aplicación. Me refiero a la influencia de los recuentos históricos en las realizaciones futuras del proceso. En pocas palabras, este parámetro responde a la pregunta "cuánto tiempo hay que tomar la serie histórica".

PD: Por cierto, recuerdo que prometiste mejorar tu biblioteca lineal y publicar una nueva versión...

Ya veo, gracias por la respuesta.

Básicamente , hace dos meses llevé el trabajo de la biblioteca a una etapa final (deseché las funciones innecesarias y rehice las existentes). Aunque todavía no he hecho el cálculo de la condicionalidad de la matriz. En unas dos semanas estaré más libre y entonces intentaré solucionarlo.

Empecé a escribir un artículo en ese momento, pero no tuve suficiente tiempo. En la actualidad, el 50% de las descripciones de las funciones están listas (son 6 grupos de funciones de un total de 16; por el momento sólo escribiré la documentación sobre las funciones, los ejemplos de su uso vendrán después).

 

No soy muy bueno con las predicciones, así que decidí experimentar con M1 hoy, a partir del lunes:

No puedo ver el gráfico principal :)

Pero la sobreoptimización cada minuto y una previsión para 3 horas adelante.


 
Piboli >> :

No soy muy bueno con las predicciones, así que decidí experimentar con M1 hoy, a partir del lunes:

No puedo ver el gráfico principal :)

Pero la sobreoptimización cada minuto y la previsión para 3 horas por delante.



¿Cómo se reoptimiza? ¿Y de dónde sacas tus previsiones, no de la deducción por casualidad?

 
mpeugep >> :

¿Cómo se reoptimiza? ¿Y de dónde sacas tus predicciones, no de la deducción por casualidad?


Pobre Piboli, ya le han preguntado cuatro veces ^_^, sí, hace sus predicciones en Deductor
 

el pronóstico es más o menos el mismo (el de máxima entropía) :o) Un pequeño refinamiento, quedan las siguientes trayectorias, siendo la que se "canaliza" la más probable.



para dejar

Понятно

Hice lo que pude :o)

Básicamente he llevado la biblioteca a su fase final hace dos meses (eliminé las funciones innecesarias, rehice las existentes). Aunque todavía no he hecho los cálculos de la condicionalidad de la matriz.

Pero dice que hay

El código se publicará más adelante.

Pero la versión no ha cambiado :o(