¿Por qué mi EA sigue dando ganancias negativas cuando hace pruebas de espalda? - página 2

 
deVries:

He reescrito su código y probado una prueba ver también la configuración

No con los mejores backtestdata pero si lo haces bien puede ser rentable

Informe de prueba de la estrategia
RSI_estrategia_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar)
PeriodoDiario (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada tick (el método más preciso basado en todos los marcos temporales mínimos disponibles)
ParámetrosRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="Estrategia RSI"; Slippage.Pips=3;
Barras en la prueba1603Ticks modelados40187739Calidad de la modelizaciónn/d
Errores de gráficos desajustados2062601
Depósito inicial3000.00
Beneficio neto total967.18Beneficio bruto2226.34Pérdida bruta-1259.16
Factor de beneficio1.77Beneficio esperado13.62
Reducción absoluta107.10Reducción máxima327.47 (7.99%)Reducción relativa7.99% (327.47)
Total de operaciones71Posiciones cortas (% de ganancias)66 (69.70%)Posiciones largas (% de won)5 (80.00%)
Operaciones con beneficios (% del total)50 (70.42%)Operaciones con pérdidas (% del total)21 (29.58%)
Mayorde beneficios120.07operación con pérdidas-60.00
Mediade beneficios44.53Comercio de pérdidas-59.96
Máximovictorias consecutivas (beneficio en dinero)8 (424.26)Pérdidas consecutivas (pérdida en dinero)3 (-179.93)
Máximobeneficio consecutivo (recuento de victorias)424.26 (8)Pérdidas consecutivas (recuento de pérdidas)-179.93 (3)
Mediaganancias consecutivas4pérdidas consecutivas2


¿que...?? he escrito por lo menos 7-10 veces de diferentes maneras y o bien no se ejecuta ninguna posición en absoluto o hacer que el beneficio negativo... ¿cómo hacer que????
 
RaptorUK:
Eso me hace pensar que hay algo que no está bien.


    if (BUYS<1 && CurrentRSI < LowerBound && pAsk > MA200) 
        {    //Condition to execute buy entry  
         Ticket = OrderSend(Symbol(), OP_BUY,......


// LowerBound=5


  if (SELLS<1 && CurrentRSI > UpperBound && pBid > MA200) 
      {     //Condition to execute sell entry
       Ticket = OrderSend(Symbol(), OP_SELL, Lots,......


// UpperBound=90
Normalmente sí, pero en este caso no, se hace con la configuración quecyxstudio ha elegido para RSI
 
deVries:

He reescrito su código y probado una prueba ver también la configuración

No con los mejores backtestdata pero si lo haces bien puede ser rentable

Informe de prueba de la estrategia
RSI_estrategia_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar)
PeriodoDiario (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada tick (el método más preciso basado en todos los marcos temporales mínimos disponibles)
ParámetrosRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="Estrategia RSI"; Slippage.Pips=3;
Barras en la prueba1603Ticks modelados40187739Calidad de la modelizaciónn/d
Errores de gráficos desajustados2062601
Depósito inicial3000.00
Beneficio neto total967.18Beneficio bruto2226.34Pérdida bruta-1259.16
Factor de beneficio1.77Beneficio esperado13.62
Reducción absoluta107.10Reducción máxima327.47 (7.99%)Reducción relativa7.99% (327.47)
Total de operaciones71Posiciones cortas (% de ganancias)66 (69.70%)Posiciones largas (% de won)5 (80.00%)
Operaciones con beneficios (% del total)50 (70.42%)Operaciones con pérdidas (% del total)21 (29.58%)
Mayorde beneficios120.07operación con pérdidas-60.00
Mediade beneficios44.53Comercio de pérdidas-59.96
Máximovictorias consecutivas (beneficio en dinero)8 (424.26)Pérdidas consecutivas (pérdida en dinero)3 (-179.93)
Máximobeneficio consecutivo (recuento de victorias)424.26 (8)Pérdidas consecutivas (recuento de pérdidas)-179.93 (3)
Mediaganancias consecutivas4pérdidas consecutivas2


¿podrías dejarme ver tu código? necesito estudiarlo y aprender de mis errores.
 
deVries:
Normalmente sí, pero en este caso no, se hace con la configuración quecyxstudio ha elegido para RSI
Ah OK, si puedes explicarlo entonces no hay motivo de preocupación ;-)
 

Con UpperBound 90 y LowerBound 10

Informe del probador de estrategias
RSI_estrategia_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar)
PeriodoDiario (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada tick (el método más preciso basado en todos los marcos temporales mínimos disponibles)
ParámetrosRSIPeriod=3; UpperBound=90; LowerBound=10; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="Estrategia RSI"; Slippage.Pips=3;
Barras en la prueba1603Ticks modelados40187739Calidad de la modelizaciónn/d
Errores de gráficos desajustados2062601
Depósito inicial3000.00
Beneficio neto total782.62Beneficio bruto3062.38Pérdida bruta-2279.76
Factor de beneficio1.34Beneficio esperado7.38
Reducción absoluta106.90Reducción máxima400.70 (9.90%)Reducción relativa9.90% (400.70)
Total de operaciones106Posiciones cortas (% de ganancias)66 (69.70%)Posiciones largas (% de won)40 (55.00%)
Operaciones con beneficios (% del total)68 (64.15%)Operaciones con pérdidas (% del total)38 (35.85%)
Mayormayor beneficio120.07operación con pérdidas-60.12
Mediade beneficios45.04Comercio de pérdidas-59.99
Máximovictorias consecutivas (beneficio en dinero)8 (425.96)Pérdidas consecutivas (pérdida en dinero)4 (-240.12)
Máximobeneficio consecutivo (recuento de victorias)490.51 (6)Pérdidas consecutivas (recuento de pérdidas)-240.12 (4)
Mediaganancias consecutivas3pérdidas consecutivas2

¿Cómo se ve eso?

 
cyxstudio:

¿podrías dejarme ver tu código? necesito estudiarlo y aprender de mis errores.

Este es el inicio.....

Haz tu comentario ..... sobre lo que es diferente de lo tuyo hasta ahora...

//+------------------------------------------------------------------+
//|                                       RSI_strategy_cyxstudio.mq4 |
//|                                  Copyright 2013, Tjipke de Vries |
//|                                     https://forum.mql4.com/53695/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int RSIPeriod        =  3;      //number of periods for RSI
extern double UpperBound    =  90;     //set upper bound value for RSI
extern double LowerBound    =  5;      //set lower bound value for RSI
extern int MASlowPeriod     = 200;
extern int MAFastPeriod     = 5;
extern double Lots  = 0.1;
extern double StopLoss      = 60;       //Set the stop loss level
extern double TakeProfit    = 120;       //Set the take profit level
extern double TrailingStop = 40;
//extra settings for OrderSend
extern int        MagicNumber = 54333;
extern string     CommentEA = "RSI strategy";
extern int        Slippage.Pips    = 3;


int    BUYS=1,SELLS=1;
//++++ These are adjusted for 5 digit brokers.
int     pips2points;      // slippage  3 pips    3=points    30=points
double  pips2dbl;         // Stoploss 15 pips    0.015      0.0150
int     Digits.pips;      // DoubleToStr(dbl/pips2dbl, Digits.pips)
//---
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----   
   if(Digits % 2 == 1)  // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
     {pips2dbl = Point*10; pips2points = 10;   Digits.pips = 1;}
     else {pips2dbl = Point;    pips2points =  1;   Digits.pips = 0;}
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl        
//----      

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   int Ticket;
   double SL,TP;
   int Total;
   
   double pAsk = MarketInfo(Symbol(), MODE_ASK);
   double pBid = MarketInfo(Symbol(), MODE_BID);
   double MA200 = iMA(NULL, 1440, MASlowPeriod, 0,MODE_SMA,PRICE_CLOSE, 0);  //200 day Moving Average   
   double MA5 = iMA(NULL, 1440, MAFastPeriod, 0,MODE_SMA,PRICE_CLOSE, 0);      //  5 day Moving Average
   double CurrentRSI = iRSI (NULL, 1440, RSIPeriod,PRICE_CLOSE ,0);
   
   
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   
   if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }


   if(OrdersTotal()<1)
        {
         BUYS=0;
         SELLS=0;
        } 

Entonces lee https://www.mql5.com/en/forum/139654 y trata de hacer un bucle de cuenta atrás comprobando las operaciones

 
deVries:

Este es el comienzo.....

Haz tu comentario ..... sobre lo que es diferente de lo tuyo hasta ahora...

A continuación, tomar una lectura en https://www.mql5.com/en/forum/139654 y tratar de hacer un bucle de cuenta atrás comprobando oficios


No está completo...

Estoy tratando de completar el resto y probarlo ahora...

por cierto ¿por qué usas cuando un simple Ask puede devolver el mismo valor?

double pAsk = MarketInfo(Symbol(), MODE_ASK);  
 
cyxstudio:


No está completo...

estoy tratando de completar el resto y probarlo ahora...

Por cierto, ¿por qué usar cuando un simple Ask puede devolver el mismo valor?

Ask puede estar desactualizado, la llamada anterior será actual sin necesidad de llamar a RefreshRates()
 

Además, los int BUYS=1,SELLS=1; son indicadores de si se ha abierto una posición, ¿verdad?

he añadido en mis propias secuencias de comandos y cuando lo pruebe con el probador de la estrategia de 20 días ... no pasó nada, no se ejecutaron las operaciones

 
cyxstudio:

Además, los int BUYS=1,SELLS=1; son indicadores de si se ha abierto una posición, ¿verdad?

he añadido mis propios scripts y cuando lo he probado con el probador de estrategias durante 20 días... no ha pasado nada, no se ha ejecutado ninguna operación

cuando inicias tu Metatrader el EA tiene que averiguar si hay una operación abierta

Solo hago el bucle de cuenta atrás para comprobar las operaciones si hay una operación

Si lo pongo al principio en uno y OrdersTotal() >0 entonces lo hago comprobando operaciones if(.......> || .......> ){hacer el bucle....

Razón de la queja: