Группа "Стол заказов MQL"

Рейтинг 2081



РЕКОМЕНДУЮ



написать советник

Доброго времени суток Ув. АМ2, прошу написать советник по пробитию временной коробки. Тех задание и параметры настроек как здесь:
www.opentraders.ru/downloads/719/
Дело в том, что эта версия не работает в понедельник, а это один из 5ти раб.дней, решил попросить Вас написать точно такой же, но так как Вы это понимаете (видите), индикатор прилагаю:
BreakOut_PANCA_EAGLE.mq4 (6 Kb)
Да ещё один момент, вместо 2х ордеров (ТП1 и ТП2 ), открывается один Бай стоп и Сел стоп, всё остальное как есть.
Заранее Благодарен *hi* 
  • +2
  • Просмотров: 2225
  • 25 мая 2015, 21:53
  • Kolesik
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
кое что изменить в советнике
Следующая запись в группе  
Можно ли внедрить этот индикатор
25 мая 2015
27 мая 2015

Комментарии (2)

+
0
Cегодня буду смотреть.
avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 26 мая 2015, 08:45
+
0
Ваш индикатор не возвращает никаких значений. По нему нельзя написать советник. Нужно переделывать. А мое видение этого вопроса такое:



//+------------------------------------------------------------------+
//|                                                    Proboynik.mq4 |
//|                                            Copyright © 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property description "Forex expert advisor"

//--- Inputs
extern int StopLoss      = 2000; // стоплосс ордера
extern int TakeProfit    = 2000; // тейкпрофит ордера
extern int Slip          = 2;    // проскальзывание
extern int EndHour       = 11;   // час окончания торговой сессии
extern int CountHour     = 8;    // длительность торговой сессии(количество баров назад на Н1)
extern int Expiration    = 14;   // время истечения ордера
extern int Delta         = 100;  // расстояние от вершин
extern double Lots       = 0.1;  // объем позиции
extern int MAGIC         = 333;  // магик
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void PutOrder()
  {
   int    res,b,s;
   datetime expiration=TimeCurrent()+3600*Expiration;
   double up=iHigh(Symbol(),PERIOD_H1,iHighest(NULL,0,MODE_HIGH,CountHour,1));
   double dn=iLow(Symbol(),PERIOD_H1,iLowest(NULL,0,MODE_LOW,CountHour,1));
   double delta=up-dn;
   double price,tp,sl;
   Comment("\nHigh Price ",up,"\nLow Price  ",dn,"\nChannel Width  ",delta);

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUYSTOP)b++;
            if(OrderType()==OP_SELLSTOP)s++;
           }
        }
     }

//--- buy
   if(Hour()==EndHour && Ask<up && b<1)
     {
      price=up+Delta*Point;
      sl=price-StopLoss*Point;
      tp=price+TakeProfit*Point;
      res=OrderSend(Symbol(),OP_BUYSTOP,Lots,price,Slip,sl,tp,"",MAGIC,expiration,Blue);
     }

//--- sell 
   if(Hour()==EndHour && Bid>dn  && s<1)
     {
      price=dn-Delta*Point;
      sl=price+StopLoss*Point;
      tp=price-TakeProfit*Point;
      res=OrderSend(Symbol(),OP_SELLSTOP,Lots,price,Slip,sl,tp,"",MAGIC,expiration,Red);
     }
  }
//+------------------------------------------------------------------+
void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderType()==OP_BUYSTOP)  del=OrderDelete(OrderTicket());
      if(OrderType()==OP_SELLSTOP) del=OrderDelete(OrderTicket());
     }
  }
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar=0;
   datetime curbar=Time[0];
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   else
     {
      return(false);
     }
  }
//+------------------------------------------------------------------+

int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
   if(NewBar()==true)
     {
      if(CountTrades()<1)PutOrder();
      if(CountTrades()>0)DelOrder();
     }
//---
  }
//+------------------------------------------------------------------+


avatar

  34  AM2 Сообщений: 15873 - Андрей

  • 26 мая 2015, 10:46

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари