протестирую вашего эксперта !!!!!!

 
Протестирую и оптимизирую вашего эксперта.   Если понравиться готов купить :))))
 
Я так думаю, что если понравиться, то просто не вернёшь...бесплатно попользуешься.
 
Michel_S писал (а):
Я так думаю, что если понравиться, то просто не вернёшь...бесплатно попользуешься.

А как честность и порядочтность ?
 
Michel_S писал (а):
Я так думаю, что если понравиться, то просто не вернёшь...бесплатно попользуешься.

А потом если раз обмануть больше ведь не пришлют :)))
 
что за бред ?
 

почему бред ?

 
Вот советник: протестируй, оптимизируй, но лучше в Омеге. Напиши, каков будет результат.
//+------------------------------------------------------------------+
//|                                                         BB_2.mq4 |
//|                                          Copyright © 2006, Manin |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Manin"
#property link      "manin1@mail.ru"
#define MAGIC 011006
 
// расстояние до СтопЛосса первоначального в пунктах (0 - отключить СЛ)
extern int        SL_SO     =45;    // H1:EURUSD= H4:EURUSD= M30:EURUSD=
// расстояние до ТейкПрофита в пунктах (0 - отключить)
extern int        TP_SO     =0;
extern int        Otstup_SL =-10;   // H1:EURUSD= H4:EURUSD= M30:EURUSD=
extern int        Otstup_Open =10;  // H1:EURUSD= H4:EURUSD= M30:EURUSD=  
extern int        _PRICE    =0;     // 0-6
extern int        period    =11;    // H1:EURUSD= H4:EURUSD= M30:EURUSD=
extern double     deviation =2;     // H1:EURUSD= H4:EURUSD= M30:EURUSD=
extern double     Risk      =0.0;   // Часть свободных денег вкладываемых в лот
extern int        Slippage  =5;     // Проскальзывание
static datetime   PrevTime_OB=0; // Переменная для работы с только, что сформировавшемся баре с отложенными ордерами
static datetime   PrevTime_OS=0; // Переменная для работы с только, что сформировавшемся баре с отложенными ордерами
static datetime   PrevTime_TB=0; // Переменная для работы с только, что сформировавшемся баре с торгующими ордерами
static datetime   PrevTime_TS=0; // Переменная для работы с только, что сформировавшемся баре с торгующими ордерами
 
int start()
{
  int    _OrderTicket_BS_BB_2=0;// Ticket ордера BuyStop
  int    _OrderTicket_SS_BB_2=0;// Ticket ордера SellStop
  int    _OrderTicket_B_BB_2=0; // Ticket ордера Buy
  int    _OrderTicket_S_BB_2=0; // Ticket ордера Sell
  double _OrderOpenPrice_BS_BB_2=0;
  double _OrderOpenPrice_SS_BB_2=0;
  double _OrderStopLoss_B_BB_2=0;
  double _OrderStopLoss_S_BB_2=0;
  double _OrderTakeProfit_B_BB_2=0;
  double _OrderTakeProfit_S_BB_2=0;
  double StopLoss, TakeProfit, _OrderOpenPrice, Lots, BB_0_U, BB_0_L;
  int z, Modify_O, Modify_T, _Ticket;
  BB_0_U=iBands(NULL,0,period,deviation,0,_PRICE,MODE_UPPER,0);
  BB_0_L=iBands(NULL,0,period,deviation,0,_PRICE,MODE_LOWER,0);
                                      
//+------------------------------------------------------------------+
//| Блок управления ордерами                                         |
//+------------------------------------------------------------------+
  if (OrdersTotal()!=0)     //  
  {
    for (z=OrdersTotal()-1; z>=0; z --)
    {
      OrderSelect ( z, SELECT_BY_POS );
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=MAGIC) continue;
      if (OrderType()==OP_BUYSTOP)
      { 
        _OrderTicket_BS_BB_2=OrderTicket();
        _OrderOpenPrice_BS_BB_2=OrderOpenPrice();
        if (PrevTime_OB!=Time[0] && _OrderOpenPrice!=NormalizeDouble(BB_0_U+Otstup_Open*Point,Digits))  // 
        {
          _OrderOpenPrice=NormalizeDouble(BB_0_U+Otstup_Open*Point,Digits);
          StopLoss=NormalizeDouble(BB_0_L,Digits);
          if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice+TP_SO*Point,Digits); }
          else { TakeProfit=0.0; }
          Modify_O=OrderModify(_OrderTicket_BS_BB_2,_OrderOpenPrice,StopLoss,TakeProfit,0,Blue);
          if(Modify_O>0) 
          {
            Print("BUYSTOP ордер модифицирован: ",_OrderTicket_BS_BB_2);
            PrevTime_OB=Time[0];
          } 
          else Print("Ошибка модификации BUYSTOP ордера:",GetLastError()); 
        }
      }
      if (OrderType()==OP_SELLSTOP)
      {  
        _OrderTicket_SS_BB_2=OrderTicket();
        _OrderOpenPrice_SS_BB_2=OrderOpenPrice();
        if (PrevTime_OS!=Time[0] && _OrderOpenPrice!=NormalizeDouble(BB_0_L-Otstup_Open*Point,Digits))  // 
        {
          _OrderOpenPrice=NormalizeDouble(BB_0_L-Otstup_Open*Point,Digits);
          StopLoss=NormalizeDouble(BB_0_U,Digits);
          if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice-TP_SO*Point,Digits); }
          else { TakeProfit=0.0; }
          Modify_O=OrderModify(_OrderTicket_SS_BB_2,_OrderOpenPrice,StopLoss,TakeProfit,0,Red);
          if(Modify_O>0) 
          {
            Print("SELLSTOP ордер модифицирован:",_OrderTicket_SS_BB_2);
            PrevTime_OS=Time[0];
          } 
          else Print("Ошибка модификации SELLSTOP ордера:",GetLastError()); 
        }
      }
      if(OrderType()==OP_BUY) 
      {
        _OrderStopLoss_B_BB_2=OrderStopLoss();
        _OrderTicket_B_BB_2=OrderTicket();
        _OrderTakeProfit_B_BB_2=OrderTakeProfit();
        if (PrevTime_TB!=Time[0] && _OrderStopLoss_B_BB_2!=NormalizeDouble(BB_0_L+Otstup_SL*Point,Digits)) 
        { 
          Modify_T=OrderModify(OrderTicket(),0,NormalizeDouble(BB_0_L+Otstup_SL*Point,Digits),_OrderTakeProfit_B_BB_2,0,Yellow);
          if(Modify_T>0) 
          {
            Print("BUY ордер модифицирован:",_OrderTicket_B_BB_2);
            PrevTime_TB=Time[0];
          } 
          else Print("Ошибка модификации BUY ордера:",GetLastError()); 
        }
      }
      if(OrderType()==OP_SELL) 
      {
        _OrderStopLoss_S_BB_2=OrderStopLoss();
        _OrderTicket_S_BB_2=OrderTicket();
        _OrderTakeProfit_S_BB_2=OrderTakeProfit();
        if (PrevTime_TS!=Time[0] && _OrderStopLoss_S_BB_2!=NormalizeDouble(BB_0_U-Otstup_SL*Point,Digits))
        {
          Modify_T=OrderModify(OrderTicket(),0,NormalizeDouble(BB_0_U-Otstup_SL*Point,Digits),_OrderTakeProfit_S_BB_2,0,Yellow);
          if(Modify_T>0) 
          {
            Print("SELL ордер модифицирован: ",_OrderTicket_S_BB_2);
            PrevTime_TS=Time[0];
          } 
          else Print("Ошибка модификации SELL ордера:",GetLastError()); 
        }
      }
      continue;
    }
  }
//+------------------------------------------------------------------+
//| Блок открытия ордеров                                            |
//+------------------------------------------------------------------+
  if(AccountFreeMargin()<100)             //Проверяем свободные средства
  {      
    Comment("Нет денег. Свободная маржа=", AccountFreeMargin()," Открытые ордера=",OrdersTotal());      
    return(0);     
  }
  // Открываем BUYSTOP позицию ------------------------------------------------------------------------
  if (_OrderTicket_BS_BB_2==0 && BB_0_L<Ask && BB_0_U>Ask && _OrderTicket_B_BB_2==0) 
  {
    _OrderOpenPrice=NormalizeDouble(BB_0_U,Digits)+Otstup_Open*Point;
    Lots=NormalizeDouble(AccountFreeMargin()*Risk/1000.0,1); //Расчитываем размер лота
    if(Lots<0.1) Lots=0.1;
    StopLoss=NormalizeDouble(BB_0_L,Digits);
    if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice+TP_SO*Point,Digits); }
    else { TakeProfit=0.0; }
    _Ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,_OrderOpenPrice,Slippage,StopLoss,TakeProfit,"BB_2 Купили",MAGIC,0,Blue);
    if(_Ticket>0) 
    {
      Print("BUYSTOP ордер выставлен");
    } 
    else Print("Ошибка выставления BUYSTOP ордера:",GetLastError()); 
  }
  // Открываем SELLSTOP позицию ------------------------------------------------------------------------    
  if (_OrderTicket_SS_BB_2==0 && BB_0_L<Bid && BB_0_U>Bid && _OrderTicket_S_BB_2==0) 
  {
    _OrderOpenPrice=NormalizeDouble(BB_0_L,Digits)-Otstup_Open*Point; //
    Lots=NormalizeDouble(AccountFreeMargin()*Risk/1000.0,1); //Расчитываем размер лота
    if(Lots<0.1) Lots=0.1;
    StopLoss=NormalizeDouble(BB_0_U,Digits);
    if (TP_SO>0) { TakeProfit=NormalizeDouble(_OrderOpenPrice-TP_SO*Point,Digits); }
    else { TakeProfit=0.0; }
    _Ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,_OrderOpenPrice,Slippage,StopLoss,TakeProfit,"BB_2 Продали",MAGIC,0,Red);
    if(_Ticket>0) 
    {
      Print("SELLSTOP ордер выставлен");
    } 
    else Print("Ошибка выставления SELLSTOP ордера:",GetLastError()); 
  }
  //------------------------------------------------------------------------------------------------------------
  return(0);
}



 

хорошо.... на чем уже давал + результаты валюта и период ?

 
Проверяй, не жалко...
//+------------------------------------------------------------------+
//|                                               Moving Average.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#define MAGICMA  20050610
 
extern double Lots               = 0.1;
extern double MaximumRisk        = 0.02;
extern double DecreaseFactor     = 3;
extern double Stop_Loss          = 12;
extern double Take_Profit        = 12;
 
//+------------------------------------------------------------------+
//| Подсчет количества открытых ордеров                              |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Расчет оптимального размера лота                                 |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
//---- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
//---- return lot size
   if(lot<0.1) lot=0.1;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Расчет индикатора FATL                                           |
//+------------------------------------------------------------------+
double Fatl(int shift)
   {
     double fatl;
    
     fatl=+0.4360409450*Close[shift+0]
   
+0.3658689069*Close[shift+1]
+0.2460452079*Close[shift+2]
+0.1104506886*Close[shift+3]
-0.0054034585*Close[shift+4]
-0.0760367731*Close[shift+5]
-0.0933058722*Close[shift+6]
-0.0670110374*Close[shift+7]
-0.0190795053*Close[shift+8]
+0.0259609206*Close[shift+9]
+0.0502044896*Close[shift+10]
+0.0477818607*Close[shift+11]
+0.0249252327*Close[shift+12]
-0.0047706151*Close[shift+13]
-0.0272432537*Close[shift+14]
-0.0338917071*Close[shift+15]
-0.0244141482*Close[shift+16]
-0.0055774838*Close[shift+17]
+0.0128149838*Close[shift+18]
+0.0226522218*Close[shift+19]
+0.0208778257*Close[shift+20]
+0.0100299086*Close[shift+21]
-0.0036771622*Close[shift+22]
-0.0136744850*Close[shift+23]
-0.0160483392*Close[shift+24]
-0.0108597376*Close[shift+25]
-0.0016060704*Close[shift+26]
+0.0069480557*Close[shift+27]
+0.0110573605*Close[shift+28]
+0.0095711419*Close[shift+29]
+0.0040444064*Close[shift+30]
-0.0023824623*Close[shift+31]
-0.0067093714*Close[shift+32]
-0.0072003400*Close[shift+33]
-0.0047717710*Close[shift+34]
+0.0005541115*Close[shift+35]
+0.0007860160*Close[shift+36]
+0.0130129076*Close[shift+37]
+0.0040364019*Close[shift+38];
 
   return(fatl);
   }
//+------------------------------------------------------------------+
//| Открытие ордера                                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double fatl_0;
   double fatl_1;
   double fatl_2;
   double fatl_3;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//----  
   fatl_0=Fatl(0);
   fatl_1=Fatl(1);
   fatl_2=Fatl(2);
   fatl_3=Fatl(3);
//---- sell conditions
   if((fatl_3<fatl_2) && (fatl_1<fatl_2))  
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if((fatl_3>fatl_2) && (fatl_1>fatl_2))  
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//----
  }
//+------------------------------------------------------------------+
//| Закрытие ордера                                                  |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double fatl_0;
   double fatl_1;
   double fatl_2;
   double fatl_3;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- 
   fatl_0=Fatl(0);
   fatl_1=Fatl(1);
   fatl_2=Fatl(2);
   fatl_3=Fatl(3);
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //---- check order type 
      if(OrderType()==OP_BUY)
         { 
      if(((Bid-OrderOpenPrice())<-Stop_Loss/10000) || ((Bid-OrderOpenPrice())>Take_Profit/10000))
               {
                OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
                return;
               }
          if((fatl_3<fatl_2) && (fatl_1<fatl_2)) 
               {
                OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
                return;
               }
          break;
         }
      if(OrderType()==OP_SELL)
         {
      if(((OrderOpenPrice()-Ask)<-Stop_Loss/10000) || ((OrderOpenPrice()-Ask)>Take_Profit/10000))
               {
                OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
                return;
               }
          if((fatl_3>fatl_2) && (fatl_1>fatl_2))
               {
                OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
                return;
               }
          break;
         }
     }
//----
  }
//+------------------------------------------------------------------+
//| Основная функция                                                 |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
                                           CheckForClose();
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
//----
  }
//+------------------------------------------------------------------+
 
nchnch писал (а):

хорошо.... на чем уже давал + результаты валюта и период ?


EURUSD H1
Мне вообще интересно в реале он с профитом сможет торговать? Что такое "матожидание выйгрыша", насколько я понял значение меньше 15 - плохое значение. Получается, что торгуешь против ДЦ, а они и обидеться могут.
 

У меня стоит системка на реале профит фактор 1.7 мат.ожидание 6,средняя прибыльная сделка 11.(лот 0.1 постоянный)
Уж и не знаю,пипсовка ли это или нет.. Но вроде пока что никаких проблем мне не делают...
Поживем увидим... и вообще может кто нибудь знает какие советники не выгодны брокерам??