Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Script de prueba en la primera versión del algoritmo:
Para una función tan sencilla, han complicado demasiado la interfaz. Un montón de exportaciones innecesarias, mientras que las cosas necesarias están ausentes. No puedo entender su código de inmediato, puedo imaginar cómo se sienten las personas que no son tan buenas en la programación.
Ahora pensaré y propondré mi propia versión de exportación simplificada y operación de script de prueba.
Tal vez el enfoque "evolutivo" de la búsqueda de valores de los parámetros de la ecuación FF no tenga por objeto mejorar la eficacia de la búsqueda de valores, sino más bien modelar por software el proceso de evolución.
Bueno, como la evolución está representada por los científicos...
El enfoque es muy consistente en su conformidad con todos los cánones evolutivos...
Propuesta:
1. una función de aptitud toma una matriz de parámetros de tipo double y devuelve un número cuanto mayor sea la elección de los parámetros. El prototipo de la función de aptitud es el siguiente:
2. La función de fitness tiene algunos parámetros, que se especifican en la estructura FitnessParams. A continuación se describe la estructura:
3. La función de aptitud y sus parámetros están protegidos de influencias externas y se almacenan en una biblioteca independiente..\NScripts\\FF\\FF.ex5. Los valores de los parámetros de la función de aptitud y su algoritmo en sí se establecen en el momento de la compilación por un árbitro independiente y ya no pueden ser modificados por nadie.
4. Un algoritmo de optimización personalizado y un script de comprobación pueden encontrar los parámetros de una función de aptitud. Para ello, el archivo Export.mqh contiene los prototipos necesarios de esta función y sus parámetros. Para obtener los parámetros FF, se utiliza la función de exportación, que también se encuentra en ...\NScripts\\FF\FF.ex5:
void GetFitnessParams(FitnessParams& params);
5. El algoritmo de optimización del usuario se encuentra en una librería de usuario separada y cerrada..\N-Scripts\N-EncontrarExtremo.ex5 y se compila por separado, en el lado del usuario. La función FindExtremum debe exportarse a la biblioteca del usuario. Esta función será llamada por el script de comprobación. El prototipo completo de la función se indica a continuación:
6. El script de comprobación carga en su espacio de direcciones la librería de la función de fitness ..\Scripts\\FF\FF.ex5 con sus parámetros, y la librería del miembro Find Extremum..\Scripts\FF\UserFindExtremum.ex5. Después llama a la función miembro FindExtremum.
7. una vez ejecutada la función participante, la secuencia de comandos de comprobación consulta los parámetros de la función de aptitud, que contienen el valor máximo encontrado por la función participante y el número de llamadas que ha necesitado para encontrar ese máximo. A partir de estos datos, se genera un informe del resultado del participante en forma de tabla:
Enel siguiente post se adjuntarán los archivos necesarios y un ejemplo de uso
Archivo Export.mqh: lista de funciones disponibles y estructura de parámetros común a todos los participantes
Archivo FF.mq5 - ejemplo de una función de aptitud como biblioteca.
Archivo TestFF.mq5 - comprobación del algoritmo en forma de script
Archivo UserFindExtremum.mq5 - función personalizada para la búsqueda de un extremo en forma de biblioteca. Se utiliza como ejemplo una búsqueda aleatoria
Archivo Export.mqh: lista de funciones disponibles y estructura de parámetros común a todos los participantes
Archivo FF.mq5 - ejemplo de una función de aptitud como biblioteca.
Archivo TestFF.mq5 - comprobación del algoritmo en forma de script
Archivo UserFindExtremum.mq5 - función personalizada para la búsqueda de un extremo en forma de biblioteca. Se utiliza como ejemplo una búsqueda aleatoria
Para una función tan sencilla, han complicado demasiado la interfaz. Un montón de exportaciones innecesarias, mientras que las cosas necesarias por el contrario faltan. No he entendido tu código a la primera, me imagino lo que siente la gente que no es tan buena programando.
Lo pensaré y propondré mi propia versión de exportación simplificada y script de prueba.
¿Por qué no es necesario?
¿Qué tipo de cosas faltan?
Después de todo, no sólo para hacer la vida lo más difícil posible para los participantes, así que lo hice todo, y no el primer día pensé en todo, y ni siquiera el segundo.
¿Por qué no las correctas?
¿Cuáles son los que faltan?
Después de todo, no sólo para hacer la vida lo más difícil posible para los participantes por lo que hice todo, y no el primer día que pensé en todo, y ni siquiera el segundo.
Andrew, no sé los demás, pero personalmente me ha gustado más el ejemplo de Vasily. No te ofendas. Esto es sólo mi percepción subjetiva.
Para ser justos, propongo someter a votación la cuestión de la elección de una interfaz de conexión (la tuya o la de Vasiliy).
¿Qué te parece?
Andrew, no sé los demás, pero personalmente me ha gustado más el ejemplo de Vasily. No te ofendas. Es sólo mi percepción subjetiva...
Para ser justos, propongo someter a votación la cuestión de la elección de una interfaz de conexión (la tuya o la de Vasiliy).
¿Qué te parece?
¿Por qué no las correctas?
¿Cuáles son los que faltan?
No se trata de complicar la vida al máximo a los participantes, así lo hice yo, y no fue el primer día que lo pensé, ni siquiera el segundo.
En su ejemplo, la tarea de búsqueda se delega parcialmente en el script de comprobación. Esto es incorrecto. El script de comprobación debe llamar a la búsqueda y comprobar su resultado y nada más.
No todos los parámetros FF están disponibles. Por ejemplo, ¿cómo obtener el paso del parámetro (valor 0,1), el máximo y el mínimo posibles? Es genial, por supuesto, que cada usuario lea este foro y entienda que el paso resulta ser 0,1, el mínimo -10,0 y el máximo +10,0, luego introduzca estas constantes en su código y espere que la función FF piense lo mismo. Pero esta no es la manera de hacerlo de forma correcta.
Muchas funciones de exportación, como ServiceFunc1, sólo se utilizan en algoritmos de búsqueda específicos. Por ejemplo, no deben utilizarse en la búsqueda aleatoria. Entonces, ¿por qué una biblioteca de usuarios debería exportarlos? Basta con separar la tarea de comprobación de la de búsqueda para darse cuenta de que toda esta complicada combinación de funciones de exportación es innecesaria.
Hay muchas más cosas que hacen innecesarios los complementos.
¿Qué le gusta más exactamente?