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

Рейтинг 2146



РЕКОМЕНДУЮ



Стрелка на выходе из зоны перекупленности\перепроданности

Здравствуйте, прошу Вас написать стрелку на основе стохастика.
Настройки 9,1,9 что бы получалась сглаженная линия и сигнал нужен на выход из зоны перекупленности\перепроданности.
Настройки нужны все:



Примеры сигнала alert:

  • 0
  • Просмотров: 2062
  • 26 июня 2020, 17:27
  • maksGruv
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
закрытие свечи и выход стохастика из зоны перекупленности\перепроданности
avatar

  9  maksGruv Автор Сообщений: 340

  • 26 июня 2020, 18:43
+
+1
Вот этот не подойдёт, правда стрелки на основном графике
//+------------------------------------------------------------------+
//|                                       Stochastic_Cross_Alert.mq4 |
//|                         Copyright © 2006, Robert Hill            |
//|                                                                  |
//| Written Robert Hill for use with AIME for the stochastic cross   |
//| to draw arrows and popup alert or send email                     |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, Robert Hill"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LawnGreen
#property indicator_color2 Red
#property indicator_width1  2
#property indicator_width2  2

extern bool SoundON=true;
extern bool EmailON=false;
//---- input parameters
extern int KPeriod=5;
extern int DPeriod=3;
extern int Slowing=3;
extern int MA_Method = 0; // SMA 0, EMA 1, SMMA 2, LWMA 3
extern int PriceField = 0; // Low/High 0, Close/Close 1
extern double LB=25;
extern double LS=75;

double CrossUp[];
double CrossDown[];
int flagval1 = 0;
int flagval2 = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int limit, i, counter;
   double tmp=0;
   double fastMAnow, slowMAnow, fastMAprevious, slowMAprevious;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
   if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;
   
   for(i = 1; i <= limit; i++) {
   
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fastMAnow = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i);
      fastMAprevious = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i+1);

      slowMAnow = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, i);
      slowMAprevious = iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, i+1);
      
      CrossUp[i] = 0;
      CrossDown[i] = 0;
      if ((fastMAnow > LB) && (fastMAprevious < LB))
      {
         if (i == 1 && flagval1==0)
         {
           flagval1=1;
           flagval2=0;
           if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
           if (EmailON) SendMail("BUY signal alert","BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
         }
         CrossUp[i] = Low[i] - Range*0.75;
      }
      else if ((fastMAnow < LS) && (fastMAprevious > LS))
      {
         if (i == 1 && flagval2==0)
         {
          flagval2=1;
          flagval1=0;
         if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
         if (EmailON) SendMail("SELL signal alert","SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
         }
         CrossDown[i] = High[i] + Range*0.75;
      }
   }

   return(0);
}


Редактирован: 26 июня 2020, 19:21
avatar

  20  alex30774 Сообщений: 748

  • 26 июня 2020, 18:55
+
+1
Но это без учёта закрытия свечи: просто выходы из зон перекупленности перепроданности.
avatar

  20  alex30774 Сообщений: 748

  • 26 июня 2020, 19:00
+
0
спасибо большое!!! то что надо!!! Но нету буферов для закрепа в прокладке…
Редактирован: 27 июня 2020, 13:39
avatar

  9  maksGruv Автор Сообщений: 340

  • 27 июня 2020, 13:37
+
+1
это ваш второй заказ. пока набросок. напомните в следующем месяце.


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

extern int Count         = 555;      // баровдля расчета

extern int UpLevel       = 70;       // верхний уровень стоха
extern int DnLevel       = 30;       // нижний уровень стоха

extern int KPeriod       = 5;        // к период стоха
extern int DPeriod       = 3;        // д период стоха
extern int Slowing       = 3;        // замедление

datetime t=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutArrow(string name,int code,double p,datetime time,color clr)
  {
   ObjectDelete(0,name);
//--- создадим стрелку
   ObjectCreate(0,name,OBJ_ARROW,0,time,p);
//--- установим код стрелки
   ObjectSetInteger(0,name,OBJPROP_ARROWCODE,code);
//--- установим способ привязки
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_CENTER);
//--- установим цвет стрелки
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=1; i<Count; i++)
     {
      double sto1=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,0,0,0,i);
      double sto2=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,0,0,0,i+1);

      bool buy = sto2<DnLevel && sto1>DnLevel;
      bool sell = sto2>UpLevel && sto1<UpLevel;

      if(t!=time[0])
        {
         if(buy)
           {
            PutArrow("UP"+string(time[i]),233,low[i],time[i],Lime);
            Alert(_Symbol+" Buy!!!");
           }
         if(sell)
           {
            PutArrow("Dn"+string(time[i]),234,high[i],time[i],Red);
            Alert(_Symbol+" Sell!!!");
           }
        }
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 27 июня 2020, 13:19
+
0
Андрей спасибо большое)Напомню в следующем месяце!) еще раз спасибо!
avatar

  9  maksGruv Автор Сообщений: 340

  • 27 июня 2020, 13:39
+
0
Андрей, там еще бы в настройки внести:
extern int MA_Method = 0; // SMA 0, EMA 1, SMMA 2, LWMA 3
extern int PriceField = 0; // Low/High 0, Close/Close 1
avatar

  9  maksGruv Автор Сообщений: 340

  • 27 июня 2020, 13:42
+
0
вам как нужно стрелки на основном или чтобы и в подвале был индикатор со стрелками?
avatar

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

  • 27 июня 2020, 14:03
+
0
Андрей, на основном, что бы можно было прикрутить буферы к прокладке
avatar

  9  maksGruv Автор Сообщений: 340

  • 27 июня 2020, 15:32
+
0
avatar

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

  • 27 июня 2020, 17:26
+
0
Андрей у меня как то по другому, на двух брокерах пробовал… настройки менял на стандартные…
Но вместо стрелок просто алерт висит постоянный и всё…
avatar

  9  maksGruv Автор Сообщений: 340

  • 1 июля 2020, 13:44

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