Conozca más sobre otras "Estrategias de negociación" - página 4

 
doshur: La media de entrada siempre está bien, cuando tienes un tamaño de lote enorme y quieres salir, puede que no haya volumen para que salgas al precio que quieres.

cuando las noticias se liberan, me pregunto si este sistema puede sobrevivir como aud en estos días

Imo, cualquier cosa puede sobrevivir si el lot_size es lo suficientemente pequeño. Si va a valer la pena para usted es otra cuestión totalmente. ¿Puede presentar un sistema que puede hacer mejor en Aud estos días? Solo como recordatorio, este no es un hilo sobre sistemas rentables de otras personas. Este es un hilo donde mi intención es que la gente presente diferentes expertos y revise lo bueno y lo malo de la estrategia. Rentable o no, no importa.
 

Encontré un error en la función YesLstTrdWin().

bool YesLstTrdWin(){
    if(!PositionSelect(CurSetSymbol)){return(false);}
    ulong   PosType=PositionGetInteger(POSITION_TYPE);
    ulong   PosOpTime=PositionGetInteger(POSITION_TIME);
    double  PosPrice=PositionGetDouble(POSITION_PRICE_CURRENT);
    HistorySelect(PosOpTime,TimeCurrent());
    int DealsTotal=HistoryDealsTotal();
    for(int i=DealsTotal-1; i>=0; i--){
        ulong DealTicket=HistoryDealGetTicket(i);
        ulong DealEntry=HistoryDealGetInteger(DealTicket,DEAL_ENTRY);
        if(DealEntry!=DEAL_ENTRY_IN){continue;}
        ulong DealMagic=HistoryDealGetInteger(DealTicket,DEAL_MAGIC);
        if(DealMagic!=SystemMagic1){continue;}
        string DealSymb=HistoryDealGetString(DealTicket,DEAL_SYMBOL);
        if(DealSymb!=CurSetSymbol){continue;}
        ulong  DealType=HistoryDealGetInteger(DealTicket,DEAL_TYPE);
        double DealPrice=HistoryDealGetDouble(DealTicket,DEAL_PRICE);
        if(DealType==DEAL_TYPE_BUY  && PosPrice>DealPrice){return(true);}
        if(DealType==DEAL_TYPE_SELL && PosPrice<DealPrice){return(true);} //This Line Was Left Out.
        return(false);
    }   return(false);
}

Olvidé el último comprobador de venta que lo castigaba a promediar dentro del rango de la posición.

*En otra nota: promediar dentro y/o anti-grillas puede ser una estrategia efectiva para sistemas de tendencia.

 
Ubzen:

Encontré un error en la función YesLstTrdWin().

Olvidé el último comprobador de venta que lo castigaba a promediar dentro del rango de la posición.

*En otra nota: promediar dentro y/o anti-grillas puede ser una estrategia efectiva para sistemas de tendencia.

Hola Ubzen,

Vi este hilo hace un tiempo y tenía la intención de contribuir, lo siento por la demora espero que esto se convierta en uno de esos mini hilos de foros dentro de mql5. El hecho de que estés utilizando una señal aleatoria no optimizada para obtener beneficios constantes es ciertamente prometedor. Todavía tengo que estudiar la señal, de hecho, acabo de ver el código hoy y he ido directamente a su función MaxDDCurrency(). Tiene una línea que creo que podría ser un error...

¿Debería esto

if(TempDD>MaxDDCurency){return;}

ser esta?

if(TempDD<=MaxDDCurency){return;}

En otra nota general. ¿Qué tan confiables crees que son los datos de precios en el probador de estrategias, especialmente en lo que respecta a la propagación?

PS: Voy a publicar uno de los míos, así pronto.

 

También parece llamar a

BrkEveEquity();

En el tick. ¿No debería llamar a esto desde la función HighestEquity(), es decir, cuando se establece un nuevo máximo de la equidad. Lo siento si mis comentarios parecen fuera Todavía estoy para probar realmente la EA a mí mismo en probador de la estrategia, pero pensé que iba a tener una idea de lo que estaba pensando cuando escribió esto.

 
ssn: Hola Ubzen, vi este hilo hace un tiempo y tenía la intención de contribuir, perdón por la demora espero que esto se convierta en uno de esos mini hilos del foro dentro de mql5. El hecho de que estés utilizando una señal aleatoria no optimizada para obtener beneficios constantes es ciertamente prometedor. Todavía tengo que estudiar la señal, de hecho, acabo de ver el código hoy y he ido directamente a su función MaxDDCurrency(). Tiene una línea que creo que podría ser un error...

¿Debería ser esto? En otra nota general. ¿Qué tan confiables crees que son los datos de precios en el probador de estrategias, especialmente en lo que respecta a la propagación? PS: Voy a publicar uno de los míos, así pronto.

Función completa:

void MaxDDCurency(){
    int TempDD=AcountEquity-HighesEquity;
    if(TempDD>MaxDDCurency){return;}
    MaxDDCurency=TempDD;
}

1) Establece el máximo DrawDown en moneda. Esta función establece la variable global con el mismo nombre a -Negativo drawdown mínimo en la moneda de la cuenta. Debido a que su valor es negativo, usted querrá pensar en forma inversa. Ejemplo Highest_Equity=10,000. Equidad_de_la_cuenta=9,500. Quiero la máxima reducción en $ de -500. Resulta como [9,500 - 10,000]. Entonces, si el Draw Down temporal es menor que -500, quiero que eso se registre como el nuevo MaxDD.

2) Los spreads son mucho más altos en el probador de estrategias de lo que la mayoría de la gente pagaría hoy en día. Es mi opinión porque muchos corredores están ofreciendo sub-pips. Los datos del precio no importan mucho. El EA no procesa dentro de las barras de un minuto, sólo procesa en la apertura de la barra m1 del gráfico al que está unido. A menos que sus datos no tengan muchas barras m1, este método debería ser lo suficientemente fiable.

3) El resultado que recibí fue el primer resultado que obtuve después de montarlo. Después de eso hice otras pruebas que no fueron tan prometedoras. Pero incluso con las otras 3 pruebas que hice, el sistema terminó ligeramente rentable o ligeramente no rentable. Pero sí, el hecho sigue siendo que un sistema al azar, no optimizado todavía sobrevivió a través de la crisis de 2008 todo el camino hasta 2012. Tal vez la optimización de un sistema de este tipo podría ser un tema de estudio. Ejemplo: tu dirección personal, **no puede ser peor que el azar, ¿verdad?)

4) Claro, publica un sistema que siempre hayas enseñado que es interesante y cualquier cosa que te moleste de ese sistema. Intentaré sugerir ideas que puedan contrarrestar esos problemas.

 
ssn: Usted también parece estar llamando a On tick. ¿No debería llamar a esto desde la función HighestEquity(), es decir, cuando se establece un nuevo máximo de la equidad. Lo siento si mis comentarios parecen fuera de lugar Todavía tengo que probar el EA yo mismo en el probador de estrategias, pero pensé que podría tener una idea de lo que estaba pensando cuando escribió esto.

Función completa :

void BrkEveEquity(){
    if(SysMagTotCnt()!=0){return;}
    BrkEveEquity=HighesEquity;
    BrkEveEquTme=(int)TimeCurrent();
    SysCloseMode=false;
}
La equidad de equilibrio que he utilizado desde hace bastante tiempo. En algún momento esta función está dentro de la función Equity_High pero creo que la eliminé de ese lugar hace mucho tiempo por las siguientes razones. 1) Si el Equity Break-Even está dentro de Equity_High entonces no necesito el BE ya que podría usar Equity_High en su lugar. 2) Quiero establecer el Equity_High cuando se alcanza un nuevo Account_Equity High y no cuando System_Magic_Total_Count==0. 3) Quiero establecer el Break_Even cuando All_Symbols están cerrados. Esto ofrece las siguientes ventajas cuando se opera en vivo. Cuando se cierran todas_las_posiciones, podría sufrir algún deslizamiento negativo. Su nuevo objetivo se convierte en Equity_High + Target$$$ en lugar de Account_Balance + Target$$ por ejemplo.
 

- Sí, el DD es negativo, no lo había visto. Gracias

- Creo que incluso los precios de apertura m1 tienen una oferta y una demanda. Si tu entrada está en el bid tendrás que salir en el ask (por ejemplo si te has puesto corto). He hecho pruebas con datos de mt5 y con un spread fijo personalizado, y los resultados son claramente diferentes.

- Creo que su enfoque con la señal aleatoria es el camino a seguir si su entrada es técnica basada. Si usted puede mantener fuera de cualquier optimización que debe ser mejor ... Creo. ;)...

- El sistema que voy a publicar utiliza SOM ... en realidad será una clase reutilizable. Necesito hacer algunos ajustes finales...

- Bien, eso está claro en BE. Ahora bien, ¿el MinPerMinLot es una variable fija que utiliza para establecer su volumen en proporción al tiempo transcurrido desde que se cerraron todas las posiciones?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
ssn:

- Sí, el DD es negativo, no lo había visto. Gracias

- Creo que incluso los precios de apertura m1 tienen una oferta y una demanda. Si tu entrada está en el bid tendrás que salir en el ask (por ejemplo si te has puesto corto). He hecho pruebas con datos de mt5 y con un spread fijo personalizado, y los resultados son claramente diferentes.

- Creo que su enfoque con la señal aleatoria es el camino a seguir si su entrada es técnica basada. Si usted puede mantener fuera de cualquier optimización que debe ser mejor ... Creo. ;)...

- El sistema que voy a publicar utiliza SOM ... en realidad será una clase reutilizable. Necesito hacer algunos ajustes finales...

- Bien, eso está claro en BE. ¿Ahora el MinPerMinLot es una variable fija que usas para establecer tu volumen en proporción al tiempo desde que se cerraron todas las posiciones?

1) De nada.

2) Estoy de acuerdo. Ojalá pudiéramos arreglar los spreads en mt5. Pero también es importante probar con spreads realistas y no engañarse.

3) En mi experiencia, con sistemas optimizados, las pruebas en vivo de un mes suelen ser totalmente diferentes a los resultados esperados. Esta manera de probar suele producir las estadísticas esperadas durante mis pruebas en vivo.... pero también suele morir de la misma manera que muere dentro del probador de estrategias.

4) k

5) Sí. Más o menos, pero mucho mejor verlo como "desde que account_equity era >= break-even equity". He sacado el Set_Break_Even_Time de la función Break_Even_Equity. Me estoy dando cuenta de que el establecimiento de variables individuales con su propio set_function funciona mucho más reutilizable que la agrupación en otro set_function.

Estoy pensando en hacer un sistema de seguimiento de la tendencia siguiente con la adición de lotes como la tendencia progresa.

 
Ubzen:

1) De nada.

2) De acuerdo. Ojalá pudiéramos arreglar los spreads en mt5. Pero también es importante probar con spreads realistas y no engañarse.

3) Mi experiencia, con sistemas optimizados, la prueba en vivo de un mes suele ser totalmente diferente a los resultados esperados. Esta manera de probar suele producir las estadísticas esperadas durante mis pruebas en vivo.... pero también suele morir de la misma manera que muere dentro del probador de estrategias.

4) k

5) Sí. Más o menos, pero mucho mejor verlo como "desde que account_equity era >= break-even equity". He sacado el Set_Break_Even_Time de la función Break_Even_Equity. Me estoy dando cuenta de que el establecimiento de variables individuales con su propio set_function funciona mucho más reutilizable que la agrupación en otro set_function.

Estoy pensando en hacer un sistema de seguimiento de la tendencia siguiente con la adición de lotes como la tendencia progresa.

4)...
Archivos adjuntos:
SignalSOM.mqh  24 kb
 
ssn: 4)...
??? ¿Tienes las cosas adicionales de acuerdo con las reglas. #Parece que faltan los números 1, 3 y 4.