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
Todavía no he hecho nada, estoy intentando compilar este código:
Este código compila. Virtual y BestInterval se actualizaron ayer. Puede que tengas una versión anterior.
Compila sin Virtual ,
compila sin BestInterval también,
pero no compilan juntos.
¿Qué se supone que significa eso?
No hay otro parámetro de entrada de su biblioteca.¿Qué quiere decir con eso?
No hay ni un parámetro de entrada más de su biblioteca.Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Bibliotecas: BestInterval
fxsaber, 2018.10.16 2:57 pm.
Virtual y BestInterval se actualizaron ayer. Es posible que tengas una versión anterior.
Este código compila. Virtual y BestInterval se actualizaron ayer. Es posible que tengas una versión anterior.
Gracias.
Actualizado Virtual, se compila.
El Asesor Experto compila, los intervalos para saltar se calculan, el archivo aparece en Common.
Pero el parámetro inBestInterval_Action está ausente en el probador y no aparece ni con ni sin VIRTUAL_TESTER.
En consecuencia, no puedo realizar la prueba teniendo en cuenta los intervalos lanzados.
Necesito ayuda: ¿qué estoy haciendo mal?
El Asesor Experto se compila, se calculan los intervalos de salto y el archivo aparece en Común.
Pero el parámetro inBestInterval_Action falta en el probador y no aparece ni con ni sin VIRTUAL_TESTER.
En consecuencia, no hay forma de realizar la prueba teniendo en cuenta los intervalos lanzados.
Necesito ayuda: ¿qué estoy haciendo mal?
VIRTUAL_TESTER sólo es necesario para acelerar la optimización o la inversión. Es por eso que no está prescrito para trabajar con BestInterval
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Bibliotecas: BestInterval
fxsaber, 2018.10.15 13:30
1. Coge cualquier Asesor Experto y escribe estas líneas en su inicio
ZY Es bueno que hayas descifrado el código. Si las librerías están de la misma forma que en KB, no sé por qué. Quizás olvidaste compilarlas cuando eliminaste VIRTUAL_TESTER.
fxsaber:
ZY Es bueno que el código se haya solucionado. Si las librerías son las mismas que en KB, no sé por qué. Quizás olvidaste compilarlas al quitar VIRTUAL_TESTER.
He creado un fichero TesterEA_mq4.mq5 con el siguiente contenido:
El fichero TesterEA.mq4 es original, de KB. Compilado normalmente.
MT4Orders, Virtual, BestInterval son frescos de KB.
He corregido EMA.mqh (aparecía un error de división por cero):
EMA( const int period ) : Alfa(1.0 / periodo), Valor(0)
en
EMA( const int periodo ) : Alfa(2.0 / (periodo+1.0)), Valor(0)
He intentado en BestInterval.mqh en lugar de
hacer
La variable BestInterval Action aparece en el tester, con BestInterval Action=false todo es bonito en el log, pero con BestInterval Action=true todo el test se ejecuta y nada sobre los intervalos se escribe en el log....
Es una pena... :)
He creado el siguiente archivo TesterEA_mq4.mq5:
El archivo TesterEA.mq4 es original, de KB. Compilado normalmente.
MT4Orders, Virtual, BestInterval son frescos de KB.
Fijo EMA.mqh ( error de división por cero estaba apareciendo):
EMA( const int periodo ) : Alfa(1.0 / periodo), Valor(0)
por
EMA( const int periodo ) : Alfa(2.0 / (periodo+1.0)), Valor(0)
Periodo cero es un valor incorrecto. Así que la división por cero es normal y se deja a propósito para mostrar que tal valor no se puede establecer.
He probado en BestInterval.mqh en lugar de
hacer
La variable BestInterval Action aparece en el tester, con BestInterval Action=false todo es bonito en el log, pero con BestInterval Action=true todo el test se ejecuta y nada sobre los intervalos se escribe en el log....
Es una pena... :)
Aquí está la fuente de Acción
Con Action = true, en el informe del probador debería aparecer el mismo beneficio que se calculó en el registro con Action = false.
Para Action, éste es el código fuente
Si Acción = true, en el informe del Probador debería aparecer el mismo beneficio que se calculó en el registro si Acción = false.
No, no sale la flor de la piedra... :)
De esta forma, cuando Action = true, deja de cerrar órdenes e inmediatamente se come todo el margen con nuevas órdenes (probablemente algo con CloseBy)....
Con Virtual.mqh desactivado, todo funciona, pero los intervalos de Action son ignorados.
Y es un reto entender tu código más profundamente... creo que paso por ahora. ;)
No, no sale ninguna flor de piedra... :)
En este formulario, cuando Action = true, deja de cerrar órdenes en absoluto e inmediatamente se come todo el margen con nuevas órdenes (probablemente algo con CloseBy)....
No me sorprendería que se ejecutara en Netting. CloseBy no funciona allí.
Con Virtual.mqh deshabilitado, todo funciona, pero los intervalos de Acción son ignorados.
Y es un reto entender tu código más profundamente... creo que pasaré por ahora. ;)
Hazlo en el seto. No me molesté con la compensación, porque MT4-advisor no se supone que se ejecuta en este modo, por supuesto.
El algoritmo de ignorar los intervalos malos es simple. El TS se pone en marcha en un entorno virtual. Allí se calcula la posición neta de sólo aquellas posiciones abiertas que se ajustan a los intervalos calculados. A continuación, sincroniza su posición neta con la virtual en el entorno real. Esto se hace de la manera más fea para el análisis, pero simple de implementar - CloseBy.
En realidad, Reverse-mode se implementa de la misma manera. Podría reescribir la variante CloseBy para hacerla funcionar en cuentas de compensación también. No estaba ocupado con eso.