Por que minha EA continua dando lucro negativo quando volta a testar? - página 2

 
deVries:

Reescreva seu código e experimente um teste veja também as configurações

Não com os melhores dados retroativos, mas se você fizer bem, pode ser lucrativo

Relatório de teste de estratégia
RSI_strategy_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar americano)
PeríodoDiário (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada carrapato (o método mais preciso baseado em todos os prazos mínimos disponíveis)
ParâmetrosRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0,1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategy"; Slippage.Pips=3;
Barras em teste1603Carrapatos modelados40187739Qualidade de modelagemn/d
Erros de gráficos não correspondentes2062601
Depósito inicial3000.00
Lucro líquido total967.18Lucro bruto2226.34Perda bruta-1259.16
Fator de lucro1.77Pagamento previsto13.62
Desembolso absoluto107.10Máximo de drawdown327.47 (7.99%)Drawdown relativo7.99% (327.47)
Total de negócios71Posições curtas (ganhadas %)66 (69.70%)Posições longas (ganho %)5 (80.00%)
Lucros comerciais (% do total)50 (70.42%)Perdas comerciais (% do total)21 (29.58%)
A maiorcomércio lucrativo120.07comércio de perdas-60.00
Médiacomércio lucrativo44.53comércio de perdas-59.96
Máximovitórias consecutivas (lucro em dinheiro)8 (424.26)perdas consecutivas (perda em dinheiro)3 (-179.93)
Maximallucro consecutivo (contagem de vitórias)424.26 (8)perda consecutiva (contagem de perdas)-179.93 (3)
Médiavitórias consecutivas4perdas consecutivas2


assistiu ao...??? eu tinha escrito pelo menos 7-10 vezes de maneiras diferentes e ou não executou nenhuma posição ou teve lucro negativo... como você fez isso????
 
RaptorUK:
Isso me faria pensar que há algo que não está certo.


    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 sim, mas neste caso não, é feito com a configuraçãocyxstudio escolheu para RSI
 
deVries:

Reescreva seu código e experimente um teste veja também as configurações

Não com os melhores dados retroativos, mas se você fizer bem, pode ser lucrativo

Relatório de teste de estratégia
RSI_strategy_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar americano)
PeríodoDiário (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada carrapato (o método mais preciso baseado em todos os prazos mínimos disponíveis)
ParâmetrosRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0,1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategy"; Slippage.Pips=3;
Barras em teste1603Carrapatos modelados40187739Qualidade de modelagemn/d
Erros de gráficos não correspondentes2062601
Depósito inicial3000.00
Lucro líquido total967.18Lucro bruto2226.34Perda bruta-1259.16
Fator de lucro1.77Pagamento previsto13.62
Desembolso absoluto107.10Máximo de drawdown327.47 (7.99%)Drawdown relativo7.99% (327.47)
Total de negócios71Posições curtas (ganhadas %)66 (69.70%)Posições longas (ganho %)5 (80.00%)
Lucros comerciais (% do total)50 (70.42%)Perdas comerciais (% do total)21 (29.58%)
A maiorcomércio lucrativo120.07comércio de perdas-60.00
Médiacomércio lucrativo44.53comércio de perdas-59.96
Máximovitórias consecutivas (lucro em dinheiro)8 (424.26)perdas consecutivas (perda em dinheiro)3 (-179.93)
Maximallucro consecutivo (contagem de vitórias)424.26 (8)perda consecutiva (contagem de perdas)-179.93 (3)
Médiavitórias consecutivas4perdas consecutivas2


Por favor, deixe-me ver seu código... Preciso estudá-lo e aprender com meus erros.
 
deVries:
Normalmente sim, mas neste caso não, é feito com a configuraçãocyxstudio escolheu para RSI
Ah OK, se você puder explicar, então não há nenhuma preocupação ;-)
 

Com UpperBound 90 e LowerBound 10

Relatório de teste de estratégia
RSI_strategy_cyxstudio
AlpariUK-Demo - Micro+Classic (Build 451)

SímboloEURUSD (Euro vs Dólar americano)
PeríodoDiário (D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)
ModeloCada carrapato (o método mais preciso baseado em todos os prazos mínimos disponíveis)
ParâmetrosRSIPeriod=3; UpperBound=90; LowerBound=10; MASlowPeriod=200; MAFastPeriod=5; Lots=0,1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategy"; Slippage.Pips=3;
Barras em teste1603Carrapatos modelados40187739Qualidade de modelagemn/d
Erros de gráficos não correspondentes2062601
Depósito inicial3000.00
Lucro líquido total782.62Lucro bruto3062.38Perda bruta-2279.76
Fator de lucro1.34Pagamento previsto7.38
Desembolso absoluto106.90Máximo de drawdown400.70 (9.90%)Drawdown relativo9.90% (400.70)
Total de negócios106Posições curtas (ganhadas %)66 (69.70%)Posições longas (ganho %)40 (55.00%)
Lucros comerciais (% do total)68 (64.15%)Perdas comerciais (% do total)38 (35.85%)
A maiorcomércio lucrativo120.07comércio de perdas-60.12
Médiacomércio lucrativo45.04comércio de perdas-59.99
Máximovitórias consecutivas (lucro em dinheiro)8 (425.96)perdas consecutivas (perda em dinheiro)4 (-240.12)
Maximallucro consecutivo (contagem de vitórias)490.51 (6)perda consecutiva (contagem de perdas)-240.12 (4)
Médiavitórias consecutivas3perdas consecutivas2

Como fica isso

 
cyxstudio:

Por favor, deixe-me ver seu código... Preciso estudá-lo e aprender com meus erros.

Este é o início.....

Dê seu comentário ..... sobre o que é diferente do seu até agora...

//+------------------------------------------------------------------+
//|                                       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;
        } 

Depois faça uma leitura em https://www.mql5.com/en/forum/139654 e tente fazer uma contagem regressiva das operações de verificação

 
deVries:

Este é o início.....

Dê seu comentário ..... sobre o que é diferente do seu até agora...

Depois faça uma leitura em https://www.mql5.com/en/forum/139654 e tente fazer uma contagem regressiva das operações de verificação


Não está completo...

estou tentando preencher o resto e testá-lo agora...

a propósito, por que você usaria quando um simples Ask pode devolver o mesmo valor?

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


Não está completo...

estou tentando preencher o resto e testá-lo agora...

a propósito, por que você usaria quando um simples Ask pode devolver o mesmo valor?

O pedido pode estar desatualizado, a chamada acima será atualizada sem a necessidade de ligar para RefreshRates()
 

Aslo the int BUYS=1,SELLS=1; são destinados a ser indicadores se uma posição foi aberta corretamente?

acrescento em meus próprios scripts e quando o testei com o testador de estratégia por 20 dias...nada aconteceu, nenhuma negociação foi executada

 
cyxstudio:

Aslo the int BUYS=1,SELLS=1; são destinados a ser indicadores se uma posição foi aberta corretamente?

acrescento em meus próprios scripts e quando o testo com o testador de estratégia por 20 dias...nada aconteceu, nenhuma negociação foi executada

quando você inicia seu Metatrader, a EA tem que descobrir se há um comércio aberto

Eu faço apenas a contagem regressiva do loop para verificar o comércio se houver um comércio

Se eu o defino no início em um e OrdensTotal() >0 então eu o faço verificando as negociações if(.......> ||| .......> ){do the loop....

Razão: