Productos de software de Piligrimm - página 4

 

a Piligrim

Gracias.
Lo has explicado muy bien.
Suficiente para implementar sus métodos de forma programada.

 

Comoejemplo del uso de indicadores para construir sistemas de trading, daré, en una versión simplificada, la estrategia que implementé en el sistema de trading de red neural descrito en la sección " Ejemplo de construcción de un sistema de trading ". Después del fin de semana empezaré a depurar este sistema de trading, y cuando esté terminado lo publicaré en este hilo como ejemplo de uso de indicadores. En el sistema de comercio, escrito por , he utilizado varios indicadores. Como ejemplo, voy a dar la estrategia basada sólo en dos de ellos, "Kristi_GrafModelWav", "Indicador de tendencia". Pero antes diré unas palabras sobre los principios de estos indicadores.

"Kristi_GrafModelWav" - construido sobre la base de polinomios de la siguiente forma:

GR1[i][0] = 0,6*(0,5*(-0,00000808108 +1,64312*(SD[i+5][4]-SD[i][4]) -0,387988*(SD[i][1]-SD[i][2]) +0,598535*(SD[i][2]-SD[i][3])

-0.468099*(SD[i+1][3]-SD[i][2])-0.461584*(SD[i+1][4]-SD[i][1])+SD[i][3])+0.5*((SD[i+2][1]-SD[i][3])-(SD[i+3][1]

-SD[i][4])+0.00000000861016*(SD[i][2]-SD[i][3])+(SD[i+19][3]-SD[i][4])+0.3*SD[i][3]+0.7*SD[i][4]))+0.4*((SD[i][1]

-SD[i+10][3])-(SD[i][1]-SD[i+10][4])+0.00000000861016*(SD[i][2]-SD[i+10][3])+(SD[i][3]-SD[i+10][4])+SD[i][4]);.

Las señales SD se obtienen mediante el principio de la "ventana deslizante" que recorre el historial de cotizaciones hasta una profundidad determinada y cambia su anchura . El entrenamiento de los polinomios se realizó sobre las señales obtenidas a partir del historial de cotizaciones del EURUSD M1. Las señales SD se hicieron pasar por un grupo de transformadas wavelet sintonizadas según diferentes parámetros. El entrenamiento se realizó mediante algoritmos de regresión lineal y redes neuronales formalizadas reducidas a la forma de polinomios. El propósito de los polinomios de entrenamiento era aumentar la información de una señal de entrada mediante la inclusión de argumentos retrasados de la historia pasada y la filtración de factores menores y de interferencia. Un propósito más de los polinomios de entrenamiento, es crear un grupo de señales sintetizadas sobre la base de citas, que lleven las características child de la señal principal, y superpongan el espectro de sus posibles cambios. Esto se hace para garantizar que las redes neuronales que introducirán este grupo de señales tengan la oportunidad de "captar" diferentes armónicos incluidos en la señal de entrada y someterse a un entrenamiento cualitativo. Aunque el entrenamiento se llevó a cabo en EURUSD M1, el indicador funciona en cualquier instrumento, cualquier período, cualquier mercado. El indicador forma un grupo de 40 señales sintetizadas.

"Indicator Trend" utiliza en la base de su trabajo el algoritmo de muestreo de umbral, desarrollado por mí, con el paso que se reconstruye en proporción a la dinámica de los cambios en las cotizaciones. Como resultado de dicho muestreo se obtienen muestras correspondientes sólo a los puntos extremos de la señal, se comprime la señal, se realiza un filtrado profundo debido a la eliminación de ruidos y fluctuaciones insignificantes. La reconstrucción de la señal en cada barra se realiza por interpolación entre dos puntos de muestreo adyacentes. En las imágenes anteriores, la línea roja, se puede ver la señal reconstruida en cada barra, y los puntos de ruptura corresponden a los puntos de muestreo. Los indicadores "Indicador de potencia" y "Indicador decanal " se basan en el mismo principio . Esta compresión de la señal permite obtener un estudio profundo del historial de citas con un número relativamente pequeño de puntos de muestreo, lo que reduce significativamente el tiempo y aumenta la precisión del entrenamiento de la red neuronal cuando se introducen muestras discretas en la entrada.

La esencia de la estrategia de construcción de un sistema de comercio basado en dos indicadores es la siguiente. El indicador "Kristi_GrafModelWav" se utiliza como fuente de señales de entrada, y el indicador "Indicator Trend" se utiliza como señal de origen para el entrenamiento de la red neuronal. El objetivo de la formación es hacer una previsión del futuro punto de muestreo, que determinará la dirección del movimiento del precio y su nivel aproximado. Para sincronizar estos indicadores, vamos a establecer la misma longitud de la muestra de entrada LengthSample . En la configuración de los indicadores, vamos a establecer el permiso para guardar los datos en el disco con la dirección de indexación desde el principio de la matriz. En los ajustes del indicador "Tendencia del Indicador" vamos a establecer el modo de guardar muestras discretas, entonces los niveles de precios en puntos discretos (puntos de ruptura en la imagen) y el número ordinal de la muestra LengthSample se escribirán en el disco , vamos a establecer el modo estático de funcionamiento del indicador. En ese momento, al llegar cada nueva barra se recalculará todo el historial y se formará un array que cubra toda la longitud de la muestra LengthSample. En el array, creado por el indicador "Tendencia del Indicador", recibimos los recuentos que se utilizarán como datos con respecto a los cuales se entrenará la red neuronal. Ahora debemos formar una matriz que será alimentada a la entrada de la red neuronal. El indicador "Kristi_GrafModelWav" escribe en el disco un array formado por 40 columnas que corresponden a sus señales de salida, y con la longitud LengthSample. Tenemos que seleccionar de esta matriz las filas correspondientes a los puntos de muestreo del indicador "Tendencia del indicador". Esto puede hacerse fácilmente utilizando la matriz obtenida del indicador "Tendencia del indicador", su segunda columna contiene los números ordinales de las muestras de los puntos de muestreo. Dado que la longitud de la muestra de entrada para ambos indicadores es la misma, estos números corresponderán a la matriz del indicador "Kristi_GrafModelWav", seleccionando las líneas adecuadas del indicador "Kristi_GrafModelWav" realizaremos el muestreo de los datos del indicador "Kristi_GrafModelWav" de forma sincronizada con el indicador "Indicador Trend". De este modo, obtuvimos la matriz de entrada para el entrenamiento de la red neuronal. Ahora vamos a entrenar la red neuronal. Ahora tenemos que utilizar la red neuronal entrenada para realizar cálculos y hacer previsiones en tiempo real. Para ello , establezca LengthSample = 1 en la configuración del indicador "Kristi_GrafModelWav". A la llegada de cada nueva barra se escribirá en el disco un array formado por una sola línea que contiene los 40 valores de la señal. Debemos calcular la red neuronal en los momentos de formación de un nuevo punto de discretización del indicador "Tendencia del indicador" según el algoritmo de aprendizaje. Para determinar estos momentos sólo tenemos que utilizar dos variables globales, que están formadas por el indicador "Tendencia del indicador". En cuanto los valores de estas dos variables globales cambian relativamente entre sí, significa que se ha formado un nuevo punto de muestreo. En este punto debemos leer el array de datos del indicador "Kristi_GrafModelWav" del disco , alimentarlo a la entrada de la red neuronal entrenada y realizar el cálculo. Obtendremos una previsión del próximo punto de muestreo en el momento en que se formó el último. Esta es una estrategia de sistema de comercio basada en los indicadores que sugerí en su forma más simple. Usted puede construir estrategias más complejas utilizando todos los indicadores, que aumentará la precisión y la fiabilidad de las predicciones.

 

Para tener una mejor idea de la funcionalidad de los indicadores, aquí están las instrucciones para utilizar el indicador "Tendencia del Indicador" como ejemplo. Si hay algún comentario, sugerencia de corrección o adición, lo escucharé con gusto. Si está interesado, también puedo proporcionarle instrucciones para utilizar otros indicadores.

=======================================================================================================

Indicador de tendencia.

Este indicador "Tendencia del indicador " está destinado a la creación de un modelo de tendencia para el instrumento al que se adjunta el indicador. "Indicator Trend " utiliza en la base de su trabajo mi algoritmo desarrollado de muestreo de umbral con paso reconstruible en proporción a la dinámica de cambio de las cotizaciones. Como resultado de dicho muestreo se obtienen muestras correspondientes sólo a los puntos extremos de la señal, se comprime la señal y se realiza un filtrado profundo eliminando el ruido y las fluctuaciones insignificantes. La señal en cada barra se reconstruye por interpolación entre dos puntos de muestreo adyacentes.

El indicador funciona con cualquier instrumento, cualquier período y cualquier mercado. El indicador puede utilizarse para diseñar sistemas mecánicos de trading, y para el trading manual.

El indicador procesa los datos a la llegada de una nueva barra. El indicador funciona en dos modos, estático y dinámico. En el modo estático, el indicador construye un modelo de tendencia para toda la longitud de la muestra histórica especificada y recalcula toda su longitud a la llegada de una nueva barra, creando plantillas de una longitud especificada, que pueden mostrarse en el gráfico y guardarse en el disco. En el modo dinámico, el indicador calcula el valor sólo para la nueva barra recibida, acumulando gradualmente los valores calculados a medida que llegan nuevos datos. La longitud del historial procesado viene determinada por la variable"LengthSample" en la pestaña "Propiedades - Parámetros de entrada", la longitud del historial puede ser cualquiera.

El almacenamiento de los valores de la señal, calculados por el indicador en el disco, con los correspondientes permisos en los ajustes, es posible en dos variantes:

1). Guarda los valores de la señal en cada barra;

2). Guardando valores sólo puntos de muestreo (inversión de tendencia).

Los valores de la señal en los dos últimos puntos de muestreo también se guardan en las variables globales, los nombres de las variables globales se pueden cambiar, permite establecer cualquier número de indicadores con diferentes niveles de umbral para un instrumento y a través de las variables globales organizar la comunicación con el Asesor Experto u otros indicadores. Cuando el indicador funciona, es posible optimizar sus parámetros reconstruyendo la relación del umbral. La elección de un valor de umbral específico está determinada por en qué instrumento y marco temporal se instala el indicador, así como por qué estrategia de negociación se quiere implementar sobre la base de este indicador.

El cálculo se visualiza en el gráfico del instrumento, en la ventana donde está instalado el indicador.

Los parámetros de funcionamiento se establecen en la pestaña "Propiedades - Parámetros de entrada" al instalar el indicador en un gráfico en la ventana de MetaTrader 4.


El indicador "Tendencia del indicador " tiene los siguientes parámetros de entrada:

1). LengthSample - longitud del historial procesado;

2). Umbral - Coeficiente de umbral;

3). DynamicMode - modo de indicador dinámico/estático.

4). SaveFileData - bandera para permitir la escritura de los datos calculados por el indicador en el disco;

5). FileNameData - nombre de archivo para guardar los datos;

6). SaveFilePointsFracture - bandera del permiso para escribir en el disco los puntos de muestreo calculados por el indicador;

7). FileNamePointsFracture - nombre del archivo para guardar los puntos de muestra;

8). Subscripting_MT4 - dirección de indexación de las matrices que se escriben en el disco.

9). NameGlobalVariable0 - nombre de la variable global que guarda el valor del último punto de muestreo;

10). NombreVariableGlobal1 - nombre de la variable global que guarda el valor del penúltimo punto de muestreo.


1). La longitud del historial procesado viene determinada por la variable"LengthSample". El tamaño máximo no está limitado. Al mismo tiempo, es necesario que en la ventana y en el historial de los símbolos, con los que trabaja el indicador, no haya menos número de barras, que"LengthSample + 1".

2). Factor de umbral, establece el umbral de muestreo en "puntos".

3). DynamicMode es una bandera que determina la elección del modo de funcionamiento dinámico o estático del indicador, si DynamicMode = 1 - modo dinámico, si DynamicMode = 0 - modo estático. El modo dinámico permite acelerar el trabajo del indicador, ya que sólo se procesarán las nuevas barras en lugar de recalcular todo el historial. Al mismo tiempo, se acumularán los valores calculados. Sólo los datos acumulados como resultado del cálculo se guardarán en el archivo y se mostrarán en el gráfico, así como si la escritura en el disco está activada. En el modo estático, cuando llegue una nueva barra, se recalculará todo el historial por la profundidad de"LengthSample". La duración completa del historial procesado se guardará en el archivo y se mostrará en el gráfico, y cuando se active la escritura en el disco.

4). La bandera SaveFileData prohíbe a escribir en el disco los datos calculados por el indicador cuando el valor es 0, si no se requiere un mayor procesamiento de los datos. Si es necesario procesar y guardar los datos en el disco, SaveFileData debe ser puesto a 1.

5). FileNameData - nombre del archivo en el que se guardarán los datos en el disco. Puede utilizar cualquier nombre, pero la extensión del archivo debe permanecer inalterada.csv, de lo contrario se producirá un error al escribir el archivo. El tamaño máximo de la matriz guardada está determinado por "Length Sample", pero el número de líneas en ella puede ser menor que"LengthSample", por el número de barras que separan el último punto de muestreo de la barra cero.

6). El indicador SaveFilePointsFracture prohíbe a escribir en el disco los precios de los puntos de muestreo calculados por el indicador cuando el valor es 0, si no es necesario el procesamiento posterior de los datos. Si es necesario procesar los datos y guardarlos en el disco, el valor de SaveFilePointsFracture debe establecerse en 1.

7). FileNamePointsFracture - el nombre del archivo donde se guardarán los valores de los precios en los puntos de muestreo y el número de serie de la barra desde el principio de la historia procesada"LengthSample", correspondiente a cada punto de muestreo. El número de registros de este archivo vendrá determinado por el número de puntos de muestreo obtenidos sobre la longitud del historial igual a"LengthSample" en la relación de umbral establecida. En el modo dinámico - el número de puntos de muestreo formados desde el inicio del indicador. El número de serie de la barra, correspondiente a cada punto de muestreo, también se calculará a partir del momento de inicio del indicador.

8). La variable Subscripting_MT4 - define la dirección de indexación del array que se escribe en el disco, si lo ponemos a 1, la indexación corresponderá a la utilizada en MetaTrader 4, desde la posición inicial hasta el cero, si lo ponemos a 0, la indexación estándar será desde el cero hasta la posición inicial. Se refiere tanto a FileNameData como a FileNamePointsFracture.

9). NombreVariableGlobal0 - Nombre de la variable global que almacena el valor del precio en el último punto de muestreo.

10). NameGlobalVariable1 - el nombre de la variable global que guarda el valor del precio en el penúltimo punto de muestreo.


Cuando el indicador funciona, en la esquina superior izquierda del gráfico aparecerá la información sobre la duración del historial procesado "LengthSample", el valor del Umbral y el número de ciclos trabajados por el indicador "AmountRunning".


Descomprimir todo el contenido del archivo Indicador de tendencia.rar e instale el indicador Trend.ex4 en la carpeta \experts/indicators, reinicie el terminal MetaTrader 4, después de eso indicador "Indicator Trend" aparece en la ventana de indicadores personalizados \NNNavigator/Indicators/User Indicators, puede ser instalado en el gráfico en la ventana de MetaTrader 4.

 

Si no hay preguntas sobre las instrucciones anteriores para el funcionamiento del indicador "Tendencia del Indicador", no daré instrucciones para otros indicadores, sino que sólo daré extractos relacionados con el principio de su trabajo. Para los indicadores Kristi_GrafModelWav,"Indicador Tendencia", lo he hecho en el ejemplo de estrategia comercial, daré para el "Indicador Power" y "Indicador Canal" .

=====================================================================================================

Indicador Indicador "Power".

La idea, en base a la cual se desarrolló el indicador " Power", es trazar dinámicamente la lucha de la tendencia alcista y bajista, que tiene lugar en el mercado en este momento. Si domina la tendencia alcista, cuando llegan nuevas barras, el indicador sube en la barra cero proporcionalmente a la fuerza de la tendencia, cuando domina la tendencia bajista - respectivamente hacia abajo. Si la tendencia oscila ligeramente hacia uno u otro lado, los valores del indicador muestran una línea recta, que se desplaza lentamente a lo largo del último punto de ruptura en proporción a la fuerza de la tendencia predominante, y cuando una de las tendencias crece significativamente, salta hacia el lado correspondiente, formando un nuevo punto de ruptura. " Indicador Power " - utiliza en la base de su funcionamiento el algoritmo de muestreo de umbral, desarrollado por mí, con el paso que se reconstruye en proporción a la dinámica de los cambios en las cotizaciones. Como resultado de este muestreo obtenemos lecturas que corresponden sólo a los extremos de la señal. El nivel de la señal, mostrado por el indicador, está determinado por la fuerza de la tendencia dominante en el momento, y cambia lentamente en proporción a la fuerza de la tendencia, hasta que se forma el siguiente punto de muestreo y fija este nivel.

Indicador Indicador decanal.

Hay dos tendencias en el mercado, la alcista y la bajista. Estas tendencias tienen un carácter diferente, pero sin embargo dependen unas de otras y se influyen mutuamente. Este indicador se basa en la idea de separar estas dos tendencias del flujo general de datos de las cotizaciones, formalizarlas en una serie temporal, reflejando su desarrollo e influencia mutua, así como el resultado de su lucha. Indicador "Indicador Channel" crea un canal de tendencia y refleja la dinámica de su comportamiento, extrapolando la dirección de las tendencias del mercado. La líneasuperior muestra el carácter de una tendencia alcista bajo la influencia de una bajista, la línea inferior muestra el carácter de una tendencia bajista bajo la influencia de una alcista, la línea del medio es el resultado de su lucha, y en realidad es uno de los armónicos de la tendencia correspondiente al nivel especificado de muestreo del flujo de cotizaciones. El diferente nivel de muestreo permite separar los armónicos con diferentes características de amplitud-frecuencia. "Indicador Channel " - utiliza en la base de su trabajo mi algoritmo desarrollado de muestreo de umbral con un paso reconstruido en proporción a la dinámica de los cambios en las cotizaciones. Como resultado de dicho muestreo obtenemos las muestras correspondientes a los puntos extremos de la señal para cada tendencia por separado. El nivel de la señal, para cada una de las tres líneas del indicador, está determinado por la dinámica de la tendencia correspondiente y cambia lentamente en proporción a la fuerza de la tendencia, y a la naturaleza de la prevalencia de una sobre la otra, hasta que se forme el siguiente punto de discretización y fije este nivel.

Los componentes informativos del indicador son: estrechamiento y ensanchamiento del canal, ángulos de divergencia de los rayos superior e inferior, puntos de inflexión y los momentos de inversión de la línea central del canal. Cuando se reciben nuevas barras, el indicador refleja dinámicamente el cambio de tendencia del mercado, reconstruyendo los rayos desde el último punto de ruptura hasta la primera barra.

 

Me parece que el precio que has puesto es demasiado alto, porque es casi comparable a los productos de software más conocidos, que puede ser que tus desarrollos sean geniales, pero sólo los conocemos por tus palabras.Pero si los indicadores ofrecidos para la compra están escritos con el mismo espíritu, la construcción de un Asesor Experto basado en ellos, que en mi opinión requiere un gran número de experimentos, probablemente requiere al menos un ordenador "Elbrus" :)).Si había intentado utilizar un Asesor Experto elemental basado en él, tuve que dejarlo porque me costaba optimizar mi no tan débil PC.

 
lovova:

Me parece que el precio que has puesto es demasiado alto, porque es casi comparable a los productos de software más conocidos, que puede ser que tus desarrollos sean geniales, pero sólo los conocemos por tus palabras.Pero si los indicadores ofrecidos para la compra están escritos con el mismo espíritu, la construcción de un Asesor Experto basado en ellos, que en mi opinión requiere un gran número de experimentos, probablemente requiere al menos un ordenador "Elbrus" :)).Traté de usar simple Asesor Experto basado en él, pero me di por vencido porque mi equipo no muy débil apenas podía jadear, y para probar toda la historia que usted sabe, y la optimización.

Gracias por el guijarro. He desarrollado un sistema de comercio automatizado y soy responsable de su funcionamiento eficaz. Aprecio el esfuerzo que he hecho y creo que los precios que he puesto son adecuados para el contenido. Como debe quedar claro por lo que he escrito sobre los indicadores, no son de tipo primitivo, y aunque el código está optimizado y no es muy grande, el algoritmo de su trabajo es bastante complicado, pasé varios años para ponerlos al día. Si los comparamos con Asesores Expertos de buen nivel, por ejemplo, los precios son comparables, y es mucho más fácil escribir un Asesor Experto en el que la mayoría de los bloques estándar están ocupados, que crear un algoritmo eficaz de análisis de mercado. Todavía no tengo un "nombre", pero a juzgar por este artículo y varios temas en los que he participado, no soy un extraño en esta industria, y tengo algo de experiencia. No estoy diciendo que estos indicadores deban comprarse juntos, sino que se desarrollaron como herramientas complementarias para el análisis multifacético de diferentes algoritmos de mercado y son más eficaces cuando se utilizan juntos. Pero pueden trabajar por separado o por parejas, como se muestra en el ejemplo. En cuanto a las garantías, este es un tema aparte, puedo garantizar que su trabajo como escribí, pero si usted va a hacer un beneficio de su uso depende de la estrategia que va a construir en ellos, y si usted piensa que usted necesita para discutir la estrategia conmigo, así que puedo recomendar algo, tener una mejor idea de las posibilidades de los indicadores. Si hay problemas y dificultades para dominar su trabajo, por supuesto que le proporcionaré apoyo técnico.

Lo que estoy proponiendo ahora no se puede comparar con el indicador Krisity, lo empecé a escribir para dominar MQL, es el primer código que escribí en un lenguaje que es nuevo para mí. Todavía no conocía las posibilidades del lenguaje y las funciones, y no me propuse escribirlo de forma óptima, sólo estaba aprendiendo. Por supuesto, ahora todo se veía y funcionaba de manera diferente.

 

Recibo correos electrónicos pidiendo que me envíen versiones de demostración de los indicadores para ver cómo funcionan. Lamentablemente, no tengo ninguna versión de demostración. Para compensarlo parcialmente, para dar una idea de cómo funcionan en dinámica 3 indicadores - "Indicador Tendencia", "Indicador Potencia" e "Indicador Canal", decidí demostrar su trabajo durante varios días en forma de diapositivas tomadas de mi terminal de demostración. Para no sobrecargar el tema con imágenes, mostraré sólo las diapositivas que reflejan los cambios en la situación del mercado y el cambio de los valores de los indicadores. La diferencia horaria entre la terminal y el foro es de 2 horas. Primera foto:

 

Segunda diapositiva, he aumentado ligeramente el umbral del indicador "Tendencia del indicador", es mejor, no voy a ajustar nada más.

 
Razón de la queja: