Publi

Publi

Resultados 1 al 6 de 6


  1. #1

    ergaster


    Reputación:
    Poder de reputación: 3

    Mensajes: 24
    Créditos: 847

    Problema con asesor experto en Probador de estrategia


    Publi
    Buenas tardes a tod@s,

    Soy nuevo en el Foro y en diversas ocasiones consulte diferentes temas, pero hasta hoy nunca me decidí a registrarme ni tuve la necesidad de abrir un tema.

    Llevo ya un tiempo tradeando tanto en demo como en cuenta real y hace poco empece a trastear para crear asesores expertos. Conozco el C++ ya que fue el lenguaje con el que aprendí a programar, aunque el MT5 utiliza un lenguaje basado en c++, estoy teniendo algún problema en adaptarme a el jeje.

    Mi principal problema es el probador de estrategias. Os pongo en situación:

    He empezado a crear un asesor experto con un indicador (IRSI) que me de una señal de compra y esta se realice automáticamente.

    Pasos que doy:
    1º Creo un nuevo proyecto (ejemplo Prueba1)
    2º Realizo el código, le hago una depuración para ver si el código esta correctamente escrito, y si esta correcto paso a probarlo en el probador de estrategias.
    3º Lo pruebo en el probador de estrategias por primera vez (ojo a este dato).

    Aquí viene el problema. Si vuelvo a cambiar algo en el código ya sea por ejemplo en la variable double Lote=0.1 y le pongo 0.2 o le cambio el indicador IRSI por un ICCI o cualquier otro cambio que haga, el depurador me lo coge bien, pero si lo ejecuto en el probador de estrategias, me sigue realizando la prueba como en la primera vez que lo ejecute, es decir no me ejecuta los cambios realizados en el código.
    En cambio si ese mismo código lo copio y creo un nuevo proyecto por ejemplo Prueba2 y lo ejecuto en el probador de estrategias por primera vez si que me lo hace, el problema viene si hago cualquier cambio en el código y quiero ejecutarlo después en el probador.
    Es como si se quedara colgado algo en el probador.

    ¿Alguien sabe que puede ser?

    Me estoy desesperando ya que hago cambios constantemente y no puedo probarlos, y tampoco puedo estar creando proyectos constantemente ya que me hace perder mucho tiempo.

    Espero que me entendáis, no se si me explique bien.

    Un saludo y gracias.
    Foro de Forex Trading United

     

  2.                         
    Publi
  3. #2
    Avatar de Hermo
    Heidelbergensis


    Reputación:
    Poder de reputación: 11

    Mensajes: 858
    Créditos: 5,058

    Re: Problema con asesor experto en Probador de estrategia

    Cita Iniciado por Rick7 Ver mensaje
    Aquí viene el problema. Si vuelvo a cambiar algo en el código ya sea por ejemplo en la variable double Lote=0.1 y le pongo 0.2 o le cambio el indicador IRSI por un ICCI o cualquier otro cambio que haga, el depurador me lo coge bien, pero si lo ejecuto en el probador de estrategias, me sigue realizando la prueba como en la primera vez que lo ejecute, es decir no me ejecuta los cambios realizados en el código.
    Buenas tardes Rick7

    Para que nos entendamos, una vez que terminas el código tu le das a Debug, que es para depurar el código.



    oro/attachment.php?s=be06f06aa8ff429485e38956090f9e0e&attachmentid=32308&d=1413390080" id="attachment32308" rel="Lightbox_117433" >Problema con asesor experto en Probador de estrategia-debug.jpg

    Hasta aquí todo perfecto.

    Pero a continuación modificas cualquier cosa del código y vuelves a depurar. Pero realmente lo que tienes que hacer es compilar y si quieres también vuelves a depurar, pero realmente el proceso para que los cambios surjan efecto es el de compilar.



    Problema con asesor experto en Probador de estrategia-compilar.jpg

    Y si después de todo esto, los cambios no surgen efecto, pero están compilados.

    Vete al Probador de estrategias, seleccionas la pestaña de parámetros de entrada y modificas el que te interese, en ocasiones aunque realices cambios en el código, si nos los realizas a posterior en parámetros de entrada no te los coge.


    Problema con asesor experto en Probador de estrategia-probador.jpg

    Creo que te he tocado todo lo que te puede estar pasando, si no es así, por favor háznoslo saber.

    Un saludo

    Hermo.
    Foro de Forex Trading United



  4. #3
    Avatar de robertomar
    Heidelbergensis


    Reputación:
    Poder de reputación: 9

    Espana
    Mensajes: 905
    Créditos: 15,929

    Re: Problema con asesor experto en Probador de estrategia

    Añado que si una de las veces cambiando el EA le metes más variables externas, en ocasiones éstas no te aparecen para poderlas seleccionar (solo puedes cambiar aquellas que ya tenías metidas en la anterior compilación del EA).

    Si te ocurriese esto, en el probador de estrategias carga otro EA (el que sea) como si fueras a backtestearlo, pero no inicies el backtest ni nada, y acto seguido, cargas de nuevo tu EA y ya te aparecen todas las variables nuevas.

    Saludos y un abrazo.
    Foro de Forex Trading United

     

  5. #4

    ergaster


    Reputación:
    Poder de reputación: 3

    Mensajes: 24
    Créditos: 847

    Re: Problema con asesor experto en Probador de estrategia

    Antes conteste a Hermo dándole las gracias por contestar y solucionarme el problemilla, y no apareció el mensaje en el foro y eso que me decía que en un rato se visualizaría el mensaje pero se ve que no.

    Lo que puse fue que tiene su lógica que haya que compilar, ya que lo que ejecuta el probador de estrategias es el "programa" y no el código en si. Estoy acostumbrado a programar en otros lenguajes sin tener que compilar para probarlo, ya que solo compilo llegado a un punto, y no había pensado en ello la verdad.

    Comentar para el que pueda tener el mismo problema que como bien dijo Hermo, no se cambian los parámetros una vez has ejecutado el asesor y luego realizas cambios en el código, pero los cambias manual y listo.

    También dar las gracias Robertomar por su aporte.

    Como no se muy bien las normas del foro, ¿se puede poner un trozo del código si uno se estanca, para que alguien pueda ayudar?

    Un saludo y gracias a tod@s.
    Foro de Forex Trading United

     

  6. #5
    Avatar de Hermo
    Heidelbergensis


    Reputación:
    Poder de reputación: 11

    Mensajes: 858
    Créditos: 5,058

    Re: Problema con asesor experto en Probador de estrategia

    Cita Iniciado por Rick7 Ver mensaje

    Como no se muy bien las normas del foro, ¿se puede poner un trozo del código si uno se estanca, para que alguien pueda ayudar?
    Buenos dias Rick7:

    Por su puesto que puedes poner codigo.

    Un saludo

    Hermo
    Foro de Forex Trading United



  7. #6

    ergaster


    Reputación:
    Poder de reputación: 3

    Mensajes: 24
    Créditos: 847

    Re: Problema con asesor experto en Probador de estrategia


    Publi
    Buenas noches,

    Después de unos días de descanso vuelvo a la faena, y como me habéis dicho que se puede poner el código, pues ahí va, ya que estoy atascado y no lo pillo. Esa forma de realizar las señal en el rsi la vi en el manual de mql5, aunque la adapte.

    como veis el If lo que indica es que cuando el rsi se encuentre por debajo de 30 haga un compra. Y el otro cuando este por encima de 70 venda.

    No me entra en el if (rsi_buffer[2]<30 && rsi_buffer[1]>30) ni en el else if(rsi_buffer[2]>70 && rsi_buffer[1]<70) por lo tanto no llega a realizar la compra o venta.


    //+------------------------------------------------------------------+
    //| Declaracion de variables
    //+------------------------------------------------------------------+input double Lote=0.01; // Lotes
    input int magic=7777777; // magic
    //+------------------------------------------------------------------+
    //| Declarar variables para almacenar los manejadores de indicadores |
    //+------------------------------------------------------------------+
    int rsi_handle;
    int CCI_handle;
    //+------------------------------------------------------------------+
    //| Declarar variables para almacenar los datos de los indicadores |
    //+------------------------------------------------------------------+
    double rsi_buffer[];
    //+------------------------------------------------------------------+
    //| Expert initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    rsi_handle=iRSI(Symbol(),Period(),14,PRICE_CLOSE);
    CCI_handle=iCCI(Symbol(),Period(),14,PRICE_TYPICAL );
    if(rsi_handle==INVALID_HANDLE)
    {
    Alert("Error al cargar el indicador, intentar de nuevo");
    return(-1);
    }

    return(0);
    }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    if(rsi_handle!=INVALID_HANDLE)IndicatorRelease(rsi _handle);

    }
    //+------------------------------------------------------------------+
    //| Expert tick function |
    //+------------------------------------------------------------------+
    void OnTick()
    {
    if(CopyBuffer(rsi_handle,0,0,3,rsi_buffer)<0) // manejador del indicador // número del buffer del indicador //posición de inicio // cantidad de datos a copiar // array de destino en el que se copian los datos
    {
    return;
    }

    if(!ArraySetAsSeries(rsi_buffer,true))
    {
    return;
    }

    if(!PositionSelect(_Symbol))
    {

    MqlTradeRequest mrequest;
    MqlTradeResult mresult;
    ZeroMemory(mrequest);
    mrequest.action = TRADE_ACTION_DEAL;
    mrequest.symbol = Symbol();
    mrequest.volume = Lote;
    mrequest.magic = magic;

    if (rsi_buffer[2]<30 && rsi_buffer[1]>30)
    {

    mrequest.type = ORDER_TYPE_BUY;
    mrequest.price = SymbolInfoDouble(Symbol(),SYMBOL_ASK);

    }
    else if(rsi_buffer[2]>70 && rsi_buffer[1]<70)
    {

    mrequest.type=ORDER_TYPE_SELL;
    mrequest.price = SymbolInfoDouble(Symbol(),SYMBOL_BID);

    }

    }
    }

    A ver si podéis echar una mano.
    Un saludo y gracias.
    Foro de Forex Trading United

     

Publi
Publi


Aviso Legal
Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal