Советники: BADX - страница 2

 
ммм а вот тест за девятый год что мы имеем ? банальный подгон под историю
 
excelf:




ммм а вот тест за девятый год что мы имеем ? банальный подгон под историю


Тогда что это ?

Оптимизация: 01.01.2006-12.30.2008

Форвард тест: 01.01.2009-12.30.2009

И торговля с теми же параметрами: 01.01.2010-12.30.2010

На мой взгляд наличие некоторой закономерности.

 
Корабль нельзя называть "Беда". А советник нельзя называть "BAD-X".
 

Предлагаю прикрутить к нему время работы, что бы отсеять тренд, так как он флэтовый, думаю результаты будут лучше.

 

Время можно прикрутить как здесь http://codebase.mql4.com/ru/code/10034

 

Кстати, какие параметры оптите?:)

 
marker:

Предлагаю прикрутить к нему время работы, что бы отсеять тренд, так как он флэтовый, думаю результаты будут лучше.


Возможно вы из него ночной хотите сделать?

Чтобы потестить достаточно во внешние переменные и в старт добавить:

   extern int HourOn  = 21; 
   extern int HourOff = 6;
   if (Hour()<HourOn && Hour()>HourOff) 
   return(0);  

Оптить желательно все параметры.

А с фильтром по времени и сделок меньше и результат скромнее.

 

Да нет, ночник не хотел сделать, отсеять просто время американской сессии, как то так))Не кодер-добавить не смогу, ну раз вы говорите что сделок меньше и результат хуже, то пусть будет как есть. А как оптите?

 
marker:

Да нет, ночник не хотел сделать, отсеять просто время американской сессии, как то так))Не кодер-добавить не смогу, ну раз вы говорите что сделок меньше и результат хуже, то пусть будет как есть. А как оптите?


Оптим примерно так.

Вот отсеял входы во время АС.

//+------------------------------------------------------------------+
//|                                                         BADX.mq4 |
//|                                           Copyright © 2011, AM2. |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AM2."
#property link      "http://www.forexsystems.biz"
 
#define MagicNumber  208238
extern double StopLoss   = 500;
extern double TakeProfit = 750;
extern int HourOn        = 1; 
extern int HourOff       = 17;
extern double ADXPeriod  = 14;
extern double BBPeriod   = 20;
extern double BBDev      = 2;
extern int Level         = 30;
extern double Lot        = 1;
bool b=true, s=true;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int pos=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if(OrderType()==OP_BUY || OrderType()==OP_SELL)  pos++;
        }
     }
//---- return orders volume
   if(pos>0) return(pos);
    }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;  
//----   
   int    res;  
//---- get Indicatorrs 
   double bbh=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_UPPER,0);
   double bbl=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_LOWER,0);
   double adx=iADX(NULL,0,ADXPeriod,PRICE_CLOSE,MODE_MAIN,0);
//---- buy 
   if(adx<Level && Ask<bbl && b && Hour()>HourOn && Hour()<HourOff)  
     {
      res=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue);
      b=false; s=true;
      return;
     }        
//---- sell   
   if(adx<Level && Bid>bbh && s && Hour()>HourOn && Hour()<HourOff) 
     {
      res=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red);
      b=true; s=false;
      return;
     }   
  }  
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {      
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
//----
  }
//+------------------------------------------------------------------+
 

По ценам открытия можно оптить?

Причина обращения: