Советники: V5 MA MACD - страница 10

 
denver74:
По ходу хозяин совы слился в небытие вместе с депозитом, а жаль....

Денвер,че ты зациклился на этом сливоботе я все не пойму? ))Много других ботов со сл и тп есть.
 

ну не похоже на сливатор. с 22.04 по сегодня. Месяц даже в +

 
Гле твоя 6 версия? Покажешь?
 
denver74:
Гле твоя 6 версия? Покажешь?

не получается пока задуманное. как сделаю вылажу.
 

тест евродоллар м15 4зн с 1.01.2011 по сейчас

чёт не похоже на прибыльный советник.. за исключением того куска что на картинке выложенной автором)) на других участках в лучшем случае плавает в нуле а кое-где и стабильно идет в минус

 
Ellie:

тест евродоллар м15 4зн с 1.01.2011 по сейчас

чёт не похоже на прибыльный советник.. за исключением того куска что на картинке выложенной автором)) на других участках в лучшем случае плавает в нуле а кое-где и стабильно идет в минус

там доделывать надо много. к примеру не открывать 2 сделки на одном баре, подтверждения с другого тайм фрейма и есть ещё много наблюдений что я сейчас дорабатывыаю. ( это просто скелет будущего советника) + мультивалютность.

И как я писал, я его начал стряпать с 1 января 2012. прошлый год даже не смотрел. (а вот после того как глянул, теперь вписываю отсечение убыточных)

 
Вроде как скелетом был советник v4, но не суть!! Интересно что ты решил в мультивалютность податься! Вроде как только с евро работал!! Смысл будущего советника? На одном графике работать по многим парам или на каждую пару ставить советник?
 
denver74:
Вроде как скелетом был советник v4, но не суть!! Интересно что ты решил в мультивалютность податься! Вроде как только с евро работал!! Смысл будущего советника? На одном графике работать по многим парам или на каждую пару ставить советник?

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

подправил для любителей


#define MagicNum1 65
#define MagicNum2 66
#define MagicNum3 67
#define MagicNum4 68 
extern   double TakeProfit = 40;
extern   double Lots = 0.1;
extern   double LotsDOL = 0.2;
extern   double Osn = 9;
extern   double Sig = 26;
extern   double Sig2 = 52;
extern   double Xs = 9;
extern   double Xs2 = 10;
extern   double Regul = 11;
   double LMA1 = 0.00023;
   double LMA2 = -0.00023;
   double MA1;
   double MA2;
   double MA3;
   double MA4;
   double MA5;
   double MA6;
extern   int ticket=0;
int US1=0;
extern  int SLD1=23;
extern  int TPD1=39;
extern   int AA=5;
extern  int AB=7;
extern  int AC=7;
extern  int AD1=21;
extern  int AD2=27;
extern  int AD=13;
extern  int AF=2;
extern  int AG=26;
extern  double  AE=32;
double XX=1.95;
extern  int XD=40;
int XF=8;
extern  int SS=41;
   
static int      prevtime = 0;        
      
         
         
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious;         
         
         
int start()
{if(Time[0] == prevtime) 
 return(0);
 prevtime = Time[0];
 int cnt, ticket, total;  
 
 
 
MA1=iMA(NULL,0,Osn,0,MODE_SMA,PRICE_CLOSE,0);     
MA2=iMA(NULL,0,Sig,0,MODE_SMMA,PRICE_CLOSE,0);     
MA3=iMA(NULL,0,Xs,0,MODE_EMA,PRICE_CLOSE,0);       
MA4=iMA(NULL,0,Xs2,0,MODE_SMA,PRICE_CLOSE,0);
MA5=iMA(NULL,0,Regul,0,MODE_SMA,PRICE_CLOSE,0);
MA6=iMA(NULL,0,Sig2,0,MODE_SMMA,PRICE_CLOSE,0);     
 
 
MacdCurrent=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_SIGNAL,1);
 
 
      total=OrdersTotal();
         if(total<1) 
            {
                  if (US1<1 && SignalPrevious>MacdPrevious && Ask>MA3-AC*Point  && Bid<MA4 && MA1<MA2 )
                     {
                        ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid, Digits),4,0,0,"Продаём",MagicNum1,0,Blue);
                        if(ticket>0)
                        {
                           if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
                           Print("Продажа : ",OrderOpenPrice());
                        }
                        return;
                      }
                   if (US1<1 && SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                      {
                        ticket=OrderSend(Symbol(),OP_SELL,LotsDOL,NormalizeDouble(Bid, Digits),4,0,0,"Продаём",MagicNum2,0,Gold);
                        if(ticket>0)
                        {
                           if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                           Print("Продажа : ",OrderOpenPrice());
                        }
                        return;
                      }
                   if (US1>0 && MA3-AF*Point<Ask)
                      {
                        ticket=OrderSend(Symbol(),OP_BUY,LotsDOL,NormalizeDouble(Ask, Digits),4,0,0,"Покупаемс",MagicNum3,0,Black);
                        if(ticket>0)
                           {
                              if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                              Print("Покупаемс : ",OrderOpenPrice());
                           }
                        US1--;
                        return;
                       }
                    if (US1<1 && SignalCurrent/MacdCurrent>XX && MA3<MA1 && MA6-AE*Point<MA2 && MA2<MA6 && MA5>MA1)
                       {
                         ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),4,0,0,"Покупаемс",MagicNum4,0,Red);
                         if(ticket>0)
                            {
                              if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                              Print("Покупаемс : ",OrderOpenPrice());
                             }
                         return;
                        }
              return;
             }
             
         for(cnt=OrdersTotal()-1;cnt >= 0;cnt--)
          {
            if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)
             {
               if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNum1)
                  {
                  if ( SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,LawnGreen);
                        return(0);
                        }
                  if ( Ask<(OrderOpenPrice()-(TakeProfit*Point)) && SignalCurrent<MacdCurrent )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Gold);
                        return(0);
                        }
                  if ( Ask>(OrderOpenPrice()+(AG*Point)) && Bid>MA3 && MA2>MA6)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                  if ( SignalCurrent<SignalPrevious && MacdCurrent>SignalCurrent && Ask<MA3 && MA3<MA6 && Ask<(OrderOpenPrice()-(AD*Point)))
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Red);
                        US1++;
                        return(US1);
                        }
                   }
                   
               if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
                   {
                     if ( Ask>(OrderOpenPrice()+(AD1*Point)) )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                     if ( Ask<(OrderOpenPrice()-(AD2*Point)) )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                   }
                   
                if(OrderType()== OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum3)
                   { 
                     if (Bid<OrderOpenPrice()-SLD1*Point)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,White);
                        return(0);
                        }
                     if (Bid>OrderOpenPrice()+TPD1*Point)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,White);
                        return(0);
                        }
                      if (SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,LawnGreen);
                        return(0);
                        }
                     }
                  if(OrderType()== OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum4)
                     {
                        if ( SignalCurrent>0 && MacdCurrent>0  && MacdCurrent<SignalCurrent && Bid>OrderOpenPrice()+XD*Point && MA2>MA6 && MA2+XF*Point>MA1 && Bid>MA3)
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,Blue);
                           return(0);
                           }
                        if ( Bid<OrderOpenPrice()-SS*Point )
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,Black);
                           return(0);
                           }
                        if ( SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,LawnGreen);
                           return(0);
                           }
                      }
                 }
              else
              Print("OrderSelect() вернул ошибку - ",GetLastError());
              return;   
            }
               
 return;
 }