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

Рейтинг 2073



РЕКОМЕНДУЮ



Советник пробойник - рисовщик уровней.

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

Советник ищет на графике паттерны строит линию над телом второй свечи(хвост свечи остается за линией) и устанавливает Sell Limit под телом первой свечи. Линия строится не до конца графика, а достраивается вслед за последним баром (по возможности добавьте описание линии в виде ее цены(не обязательно к исполнению)) Линия строится с момента нахождения паттерна BUY/SELL и строит до тех пор пока советник с графика не удалят. После нахождения нового паттерна предыдущая линия не удаляется.
Советник работает все время, но торгует в указанное время.

Тех задание
Лот – Фиксировананный (Вводится в ручную)
STOP LOSS – Фиксировананный (Вводится в ручную)
Take Profit – Фиксировананный (Вводится в ручную)
Толщина линии (Поддержка) – Вводится вручную
Цвет линии (Сопротивление) – Вводится вручную
Время торговли – Вводится вручную
Тралинг стоп – Не нужен.
  • +1
  • Просмотров: 2873
  • 29 июля 2017, 11:32
  • Nadejda-stav
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Посмотрю сейчас.
avatar

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

  • 29 июля 2017, 13:06
+
0
Так примерно?




//+------------------------------------------------------------------+
//|                                                      Pattern.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

extern double Lots      = 0.1;      // торговый объем
extern int StopLoss     = 300;      // лось
extern int TakeProfit   = 600;      // язь
extern int StartHour    = 0;        // час начала торговли
extern int StartMin     = 30;       // минута начала торговли
extern int EndHour      = 23;       // час окончания торговли
extern int EndMin       = 30;       // минута окончания торговли
extern int Expiration   = 3;        // время истечения ордера в часах
extern int Slip         = 50;       // реквот
extern int Width        = 1;        // толщина линии
extern color Supp       = Red;      // цвет сопротивления
extern color Res        = Blue;     // цвет поддержки
extern int Magic        = 123;      // магик
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Установка ордера                                                 |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)   sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)   sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expiration*3600,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0,int mb=0,int he=0,int me=0)
  {
   datetime db, de;           // Время начала и окончания работы
   int      hc;               // Часы текущего времени торгового сервера

   db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
   de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
   hc=TimeHour(TimeCurrent());

   if(db>=de)
     {
      if(hc>=he) de+=24*60*60; else db-=24*60*60;
     }

   if(TimeCurrent()>=db && TimeCurrent()<=de) 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()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountOrders(int type)
  {
   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()==type) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(double pr,datetime t1,datetime t2,int width,color clr)
  {
   const string name="TrendLine"+TimeToStr(Time[0]);
   ObjectCreate(0,name,OBJ_TREND,0,t1,pr,t2,pr);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,0);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1 && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin))
     {
      //---- buy limit
      if(Close[0]>Open[0] && Close[2]<Open[2] && Bid>Open[2] && (Open[1]-Low[1])/(Close[1]-Open[1])>2 && (Open[1]-Low[1])/(High[1]-Close[1])>2)
        {
         if(CountOrders(2)<1) PutOrder(2,Open[2]);
         PutTrendLine(Open[2],Time[10],Time[0],Width,Res);
        }
      //---- sell limit   
      if(Close[0]<Open[0] && Close[2]>Open[2] && Bid<Open[2]/**/ && (High[1]-Close[1])/(Open[1]-Close[1])>2 && (High[1]-Close[1])/(Close[1]-Low[1])>2)
        {
         if(CountOrders(3)<1) PutOrder(3,Open[2]);
         PutTrendLine(Open[2],Time[10],Time[0],Width,Supp);
        }
     }
  }
//+------------------------------------------------------------------+

avatar

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

  • 29 июля 2017, 14:13
+
+1
Если можно сделайте как что бы линия продолжала рисовать когда советник не торгует по времени. (Линия патерна BUY/SELL должна быть независима от времени торговли советника)Спасибо за помощь
avatar

  10  Nadejda-stav Автор Сообщений: 157

  • 29 июля 2017, 15:00
+
0
avatar

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

  • 29 июля 2017, 16:14
+
0
Можно внести небольшие изменения в советник? Нужно сделать стрелки над патернами. Патерн BUY Стрелка зеленая, Патерн SELL Стрелка красная. Самое главное что бы стрелки не удалялись
Редактирован: 10 августа 2017, 10:26
avatar

  10  Nadejda-stav Автор Сообщений: 157

  • 10 августа 2017, 10:25

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