ayaalg

 
Уровень 3

  Торгую в компаниях:

  Моя торговля


График торгового счета ayaalg


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

Рейтинг 2151



РЕКОМЕНДУЮ



Можете написать советник по индикатору PBF scalper show me

Здравствуйте можете написать советник по индикатору, который открывает сделки по направлению и времени алерта, и в то же время закрывает предыдущую сделку. Период часовой и по 1 сделке на алерт
В настройках советника прошу добавить размер лота
PBF_Scalper_Show_Me2 (2).ex4 (27 Kb)
PBF_Scalper_Show_Me2 (2).mq4 (8 Kb)
  • +2
  • Просмотров: 3716
  • 30 мая 2018, 05:05
  • ayaalg
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

Брокер для ваших роботов, 15 лет на рынке

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

+
0
ищите поручителя
avatar

  35  AM2 Сообщений: 16421 - Андрей

  • 30 мая 2018, 17:33
+
+1
Поручусь
avatar

  10  Daylight Сообщений: 76 - Indictator

  • 31 мая 2018, 07:43
+
0
Спасибо
avatar

  3  ayaalg Автор Сообщений: 11

  • 31 мая 2018, 08:13
+
0
Сделал набросок. Входы выходы по стрелкам:




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

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Slip          = 30;       // реквот
extern int Shift         = 1;        // на каком баре сигнал индикатора
extern int Magic         = 123;      // магик

extern string IndName    = "PBF_Scalper_Show_Me2 (2)";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double b = iCustom(NULL,0,IndName,1,Shift);
   double s = iCustom(NULL,0,IndName,0,Shift);

   if(b>0)
     {
      PutOrder(0,Ask);
     }

   if(s>0)
     {
      PutOrder(1,Bid);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ClosePos()
  {
   double b = iCustom(NULL,0,IndName,1,Shift);
   double s = iCustom(NULL,0,IndName,0,Shift);

   if(s>0)
     {
      CloseAll(0);
     }

   if(b>0)
     {
      CloseAll(1);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0) break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double b = iCustom(NULL,0,IndName,1,Shift);
   double s = iCustom(NULL,0,IndName,0,Shift);

   if(CountTrades()<1) OpenPos();
   else ClosePos();

   Comment("\n b: ",b,
           "\n s: ",s);
  }
//+------------------------------------------------------------------+


avatar

  35  AM2 Сообщений: 16421 - Андрей

  • 31 мая 2018, 18:03
+
0
Лучше по алертам, поскольку стрелки он перерисовывает(бывает что стрелки появляются перед концом движения часа там через 2-5 после алерта и движения в нужном направлении)
avatar

  3  ayaalg Автор Сообщений: 11

  • 1 июня 2018, 04:12
+
0
когда есть стрелка значит есть сигнал и по нему можно открыть позу. как вы предлагаете открыть ордер по алерту?
avatar

  35  AM2 Сообщений: 16421 - Андрей

  • 1 июня 2018, 11:50
+
0
Здравствуйте, можете скинуть последнюю версию этого советника. Спасибо
avatar

  1  antifaster Сообщений: 5

  • 24 января 2019, 11:17
+
0
смысл в том, что приходит алерт потом цена проходит от 2 до 6 баров, потом идет по сигналу, и только когда проходит 3-4 бара появляется стрелка в том месте где цена пошла по алерту а это уже на 3-4 бара позже
avatar

  3  ayaalg Автор Сообщений: 11

  • 2 июня 2018, 04:11
+
0
Спасибо*victory* 
avatar

  3  ayaalg Автор Сообщений: 11

  • 9 июня 2018, 06:05
+
0
Здравствуйте, можете скинуть последнюю версию этого советника. Спасибо ;) 
avatar

  1  antifaster Сообщений: 5

  • 24 января 2019, 09:15

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