
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
He estado trabajando en un código y llegue a un punto donde me estoy dando cuenta que el backtest se comporta de manera errática realizando acciones y modificando variables que no se ven en el "Journal" del backtest pero si puedo verlas reflejadas al imprimir estas variables. Principalmente algo que no llego a entender es como el test trabaja sobre el balance. En mi código cada vez que se envía una orden de compra uso la "funcionAccountInfoDouble(ACCOUNT_MARGIN_FREE)" para obtener el margin disponible en ese momento y calcular el volumen acorde y asi evitar problemas de falta de dinero o un volumen grande en la compra. Al mismo tiempo me aseguro de cerrar la orden antes de abrir otra de forma que no queden ordenes abiertas que pudieran estar tomando parte del free margin. A manera de controlar imprimo cada vez que se ejecuta una compra el valor actual del balance, free margin, precio, volumen, etc. Y lo que estoy viendo es que durante el backtest el valor de free margin, equity y balance se ven disminuidos drasticamente como si deliberadamente el test apalancara la orden por 10 en momento donde hay perdidas con porcentajes altos, aún cuando las opciones de tester no están habilitando el apalancamiento. Lo que es peor al correr el mismo EA con diferentes depositos iniciales veo que a partir de determinado valor el algoritmo pasa de realizar casi 60 trades como deberñia a realizar 1 solo. Por ejemplo si el balance es 4000 hace 60 trades pero si el balance es 3000 hace 1 solo, este limite se da en torno al valor en divisa del volumen maximo permitido por el broker pero no estoy seguro si esta relacionado con esto.
Quisiera saber primero porque el backtest tiene este comportamiento y que cosas se pueden mejorar el código para evitarlo, es decir si existe variable ocultas que no se ven o mejores formas para trabajar con el balance disponible o si existe una cantidad de variables internas que no se ven pero que afectan el comportamiento y por tanto más allá de la información en la cuenta tenemos que trabajar con ellas por ejemplo he notado que si imprimo el resultado de "ACCOUNT_MARGIN_FREE" obtengo un valor distinto a funcionAccountInfoDouble(ACCOUNT_MARGIN_FREE), es como si hubiera un valor de free margin distinto al que vemos en la cuenta, esto me hace sospechar que mas alla del volumen que pongo en la compra puede haber variables ocultas de apalancamiento u otras que estan teniendo efectos inesperados en el test. Les dejo el código: