Una biblioteca rápida y gratuita para MT4, para deleite de los neuralnetworkers - página 8

 
newerty >> :

¿Puede decírmelo, por favor? ¿Cómo puedo hacer que mi EA opere con varios símbolos a la vez?

Por ejemplo, el oro, el gbpusd, el nzdusd, el audusd, etc.

En cada par, obviamente diferente S/L.

Clonar MT4... asesor de clones....???? ¿Y correr al mismo tiempo?

Sólo hay que poner el EA en diferentes gráficos.

El StopLoss de cada par es diferente.


Lo único que no se puede hacer es colgar otro EA en un par ocupado por un EA, u operar manualmente, porque los números mágicos no se utilizan. Es decir, para cada par no más de un EA.

 

Yuri, ¿podrías darme un ejemplo de los ajustes (marco temporal, periodo, etc.) que te dan un gran número de operaciones?

 
Solver.it >> :

Yuri, ¿podrías darme un ejemplo de los ajustes (marco temporal, periodo, etc.) que te dan un gran número de operaciones?

En la página 6 de este hilo hay un extracto de backtest. Ahí está todo dicho.

 

Si la línea

if (IsOptimization() || IsTesting()) {


se sustituye por

if (IsOptimization()){


entonces los resultados de la ejecución única se vuelven más estables.

Me encontré con un problema diferente: la red se ajusta muy rápidamente a los datos, gráficos como una regla en el probador, pero los forwards y backtests muestran un carácter de curva muy diferente.

 
Kharin >> :

Si la cadena

if (IsOptimization() || IsTesting()) {


para sustituirlo por

if (IsOptimization()){


entonces los resultados de la ejecución única serán más estables.

Me encontré con un problema diferente: la red se ajusta muy rápidamente a los datos, los gráficos como una regla en el probador, pero hacia adelante y backtests muestran un carácter de la curva muy diferente.

Esto se explica por sí mismo, ya que al eliminar esta función se desactiva la adaptación en el modo de prueba. Pero dejé esta característica en el EA a propósito. Cuanto más inestables sean los resultados en las diferentes ejecuciones de la prueba adaptada, más probable es que la red no haya aprendido nada en particular, porque es sólo una época más y todo es ya muy diferente. Es decir, si los resultados inestables muestran que la red no es segura en la muestra de prueba, entonces no podemos ni siquiera mencionar a los delanteros - neuronka ni siquiera ha visto sus cotizaciones.

 
Es cuestión de gustos, por supuesto, pero yo pondría esta elección en variables externas. Sin embargo, lo he hecho)))
 
Reshetov >> :

Repito: esta línea no lleva ninguna carga de información. El signo de ret no cambia, mientras que las operaciones se abrirán dependiendo de los valores positivos o negativos de ret

Es obvio lo del cartel. También es obvio que sin un dos esta función devuelve un valor significativo de la respuesta promediada del comité de mallas, pero con un dos es una mierda. Teniendo en cuenta que la misma función se llama en la ejecución normal de las cuadrículas después del entrenamiento y que es mejor rechazar los valores pequeños de ret (tanto positivos como negativos) sin generar tratos por ellos, esta línea realmente contiene información importante.

¿Todavía no has respondido por qué sólo enseñas las redes en los ejemplos negativos?

 
Kharin >> :

Me encontré con un problema diferente: la red se ajusta muy rápidamente a los datos, gráficos como una regla en el probador, pero los forwards y backtests muestran un carácter muy diferente de la curva.

Sí, en su forma actual, la EA no realiza una evaluación de la calidad de la formación. Si cambiamos la lógica de recogida de datos, podríamos insertar un par de llamadas: f2M_test (con datos de validación, no de entrenamiento) y f2M_get_MSE, deteniendo el entrenamiento cuando el error empieza a crecer.

 

Yuri, quiero hacer una pregunta fuera de tema: ¿es posible configurar una parrilla separada para SL (digamos por volatilidad - hacer predicciones, y ajustar SL a eso)?

¿Quizás eso ayudaría a los paternos a aprender de forma más consistente?

 

Yuri, creo que he encontrado otra imprecisión en el código... Estaba hurgando en mi código en busca de resultados de aprendizaje extraños y encontré esto:

double ann_pnn() {
...
    ret = 2 * ret / AnnsNumber;

Es imprescindible:

ret = ret / AnnsNumber;

El hecho de que el autor de la librería en su EA, por razones que no entiendo, dividió la parrilla por la mitad para posiciones cortas y largas en pares e impares respectivamente con sus respectivos ciclos:

for (i = 0; i < AnnsNumber; i += 2) - для четных С ПРИРАЩЕНИЕМ "2" !!!
for (i = 1; i < AnnsNumber; i += 2) - для нечетных

De ahí el doble en el denominador. En nuestro caso no lo necesitamos. Aunque está claro que no tendrá mucho efecto en los resultados del entrenamiento...

El significado de este bucle (funciones ann_pnn y run_anns) se me escapa por completo...

for (i = 0; i < AnnsNumber; i++) {    ret += AnnOutputs[i];    }

Si tenemos una red con una neurona de salida, ¿de dónde sacamos 16 salidas? ¿O es un comité de 16 mallas? Eso es lo que me inclino... Entonces la pregunta es: ¿qué sentido tiene? También he dejado esta pieza sin modificar por ahora, hasta que descubra su significado finalmente... ¿Alguien tiene alguna idea al respecto? Por favor, comparte...

Razón de la queja: