← К каталогу
Исходный код · ID 1284

stoch7whtstoch2 alert.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой индикатор для платформы MetaTrader 4, рассчитывающий стохастические осцилляторы на нескольких таймфреймах, включая ежедневный и недельный. Отображает рассчитанные линии в отдельном окне с возможностью настройки уровней и стилей отображения.

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

Поддерживаются режимы фильтрации по свопу, отображение сигналов только на покупку или продажу, а также алерты по закрытию позиций на основе стохастика и наклона TMA-линии. Дополнительно доступен режим контр-трендовых сигналов.

Настройки программы

НастройкаОписание
UseSwapFilter Включает фильтрацию сигналов по величине свопа.
ShowOnlyBuyEntryAlerts При значении true отображаются только алерты входа в покупку.
ShowOnlySellEntryAlerts При значении true отображаются только алерты входа в продажу.
gives too CT alerts (ShowCounterTrend) Включает отображение контр-трендовых сигналов.
setting this to true the indicator shows to the D1 2.1.1 Stoch (ShowDaily2_1) При значении true индикатор отображает стохастик 2.1.1 на таймфрейме D1.
this setting will only use the Stoch 7.2.2 for the enrty alerts the HigherTF Stoch 2.1.1 is not used (UseOnly7_2forEntry При значении true для алертов входа используется только стохастик 7.2.2, без учёта старшего таймфрейма 2.1.1.
ALERTS WHEN WHENEVER PRICE GOES BELOW 90&70 AND ABOVE 10&30 AND HT STOCH CONFIRMS (PopupAlert) Включает или отключает всплывающие окна-уведомления при срабатывании алертов.
EmailAlert Включает или отключает отправку email-уведомлений при срабатывании алертов.
PushAlert Включает или отключает push-уведомления при срабатывании алертов.
set this to false if you have set ShowCounterTrend to true, because it will give you an immediatly e (GiveStoch2_1_ExitA Включает алерты на закрытие позиций на основе стохастика старшего таймфрейма 2.1.1.
gives Stoch 7.2.2 exits alerts for BUY if we have Stoch 7.2.2 >=90 and for SELL if we have Stoch 7.2 (GiveStoch7ExitAler Включает алерты на закрытие позиций на основе стохастика 7.2.2 при достижении крайних уровней.
GiveTMASlopeExitAlert Включает алерты на закрытие позиций на основе изменения наклона TMA-линии.
Set_Stoch_Alert_Levels Текстовый параметр, задающий группу уровней алертов по умолчанию.
default = 20 (LevelOne) Нижний уровень стохастика, при пересечении которого срабатывают алерты на покупку.
CHANGE TO 10 IF YOU ONLY WANT 1 ALERT // default = 40 (LevelTwo) Второй нижний уровень стохастика для алертов покупки.
CHANGE TO 90 IF YOU ONLY WANT 1 ALERT // default = 60 (LevelThree) Второй верхний уровень стохастика для алертов продажи.
default = 80 (LevelFour) Верхний уровень стохастика, при пересечении которого срабатывают алерты на продажу.
Stoch_Settings Текстовый параметр, задающий группу настроек стохастика по умолчанию.
KPeriod Период K для расчёта основного стохастика.
DPeriod Период D для расчёта основного стохастика.
Slowing Параметр замедления (сглаживания) для расчёта стохастика.
Method Метод усреднения для расчёта стохастика.
0=Low/High, 1=Close/Close (Price) Источник ценовых данных для расчёта: 0 — Low/High, 1 — Close/Close.
K_period_HT Период K для расчёта стохастика старшего таймфрейма.
D_period_HT Период D для расчёта стохастика старшего таймфрейма.
S_period_HT Период сглаживания для стохастика старшего таймфрейма.
STOCH_MAIN_Line_Style_HT Стиль линии основного стохастика старшего таймфрейма.
STOCH_SIGNAL_Line_Style_HT Стиль сигнальной линии стохастика старшего таймфрейма.
STOCH_MAIN_Price_HT Тип цены для основного стохастика старшего таймфрейма.
STOCH_SIGNAL_Price_HT Тип цены для сигнальной линии стохастика старшего таймфрейма.
STOCH_MAIN_Ma_HT Метод усреднения для основного стохастика старшего таймфрейма.
STOCH_SIGNAL_Ma_HT Метод усреднения для сигнальной линии стохастика старшего таймфрейма.
Level_Styles Справочник стилей линий уровней: 0 — сплошная, 1 — пунктир, 2 — точечный, 3 — штрих-пунктир, 4 — двойной пунктир.
LevelOneStyle Стиль линии уровня One.
LevelOneColor Цвет горизонтальной линии уровня One.
LevelTwoStyle Стиль линии уровня Two.
LevelTwoColor Цвет горизонтальной линии уровня Two.
LevelThreeStyle Стиль линии уровня Three.
LevelThreeColor Цвет горизонтальной линии уровня Three.
LevelFourStyle Стиль линии уровня Four.
LevelFourColor Цвет горизонтальной линии уровня Four.
slp Текстовый разделитель для настроек TMA-наклона.
H4 TF for the TMA-Slope (TMASlopeTF) Таймфрейм для расчёта наклона TMA-линии.
TMASlopeCloseBuyAlertLevel Пороговое значение наклона TMA для алерта закрытия покупаемой позиции.
TMASlopeCloseSellAlertLevel Пороговое значение наклона TMA для алерта закрытия продаваемой позиции.
Получить полный код

Поиск по коду файла

#property	indicator_separate_window
#property	indicator_maximum			100
#property	indicator_minimum			0
#property	indicator_buffers			3
#property	indicator_color1			DodgerBlue
#property	indicator_width1			1
#property	indicator_width2			3
#property	indicator_color2			Gold
#property	indicator_width3			5
#property	indicator_color3			Red

extern bool     UseSwapFilter=false;
extern bool     ShowOnlyBuyEntryAlerts=false;
extern bool     ShowOnlySellEntryAlerts=false;
double actual_long_swap=0;
double actual_short_swap=0;
extern bool    ShowCounterTrend=false;//gives too CT alerts
extern bool    ShowDaily2_1=true;//setting this to true the indicator shows to the D1 2.1.1 Stoch

extern bool   UseOnly7_2forEntryAlert=false;// this setting will only use the Stoch 7.2.2 for the enrty alerts the HigherTF Stoch 2.1.1 is not used independend from the above setting
extern bool      PopupAlert=true; // ALERTS WHEN WHENEVER PRICE GOES BELOW 90&70 AND ABOVE 10&30 AND HT STOCH CONFIRMS 
extern bool      EmailAlert= false;
extern bool      PushAlert=false;
extern bool    GiveStoch2_1_ExitAlerts=false;//set this to false if you have set ShowCounterTrend to true, because it will give you an immediatly exit alert in that case
extern bool    GiveStoch7ExitAlerts=false;//gives Stoch 7.2.2 exits alerts for BUY if we have Stoch 7.2.2 >=90 and for SELL if we have  Stoch 7.2.2<=10
extern bool    GiveTMASlopeExitAlert=false;
int     HigherTF_Used           = 1440;
int     HigherTF2_Used          =10080;
extern string  Set_Stoch_Alert_Levels="Default = 20, 40, 60, 80";
extern int     LevelOne=10;                                    // default = 20
extern int     LevelTwo                = 30; //CHANGE TO 10 IF YOU ONLY WANT 1 ALERT // default = 40
extern int     LevelThree              = 70; //CHANGE TO 90 IF YOU ONLY WANT 1 ALERT // default = 60
extern int     LevelFour=90;                                    // default = 80

extern string  Stoch_Settings="Default = 7, 2, 2, 2, 1";

extern int   KPeriod                     = 7;
extern int   DPeriod                     = 2;
extern int   Slowing=2;
extern int   Method=MODE_SMMA;
extern int   Price=1;                                     // 0=Low/High, 1=Close/Close
extern int K_period_HT = 2;
extern int D_period_HT = 1;
extern int S_period_HT = 1;
extern int STOCH_MAIN_Line_Style_HT=2;
extern int STOCH_SIGNAL_Line_Style_HT=2;
extern int STOCH_MAIN_Price_HT=1;
extern int STOCH_SIGNAL_Price_HT=1;
extern int STOCH_MAIN_Ma_HT=0;
extern int STOCH_SIGNAL_Ma_HT=0;
extern string  Level_Styles            = "0 Solid, 1 Dash, 2 Dot, 3 Dashdot, 4 Dashdotdot";
extern int     LevelOneStyle           = 0;
extern color   LevelOneColor           = Blue;
extern int     LevelTwoStyle           = 2;
extern color   LevelTwoColor           = Blue;
extern int     LevelThreeStyle         = 2; 
extern color   LevelThreeColor         = Gold;
extern int     LevelFourStyle          = 0;
extern color   LevelFourColor          = Gold;
extern string   slp="--TMA-SlopeSettings--";
extern int      TMASlopeTF=240;//H4 TF for the TMA-Slope
extern double   TMASlopeCloseBuyAlertLevel=-0.3;
extern double   TMASlopeCloseSellAlertLevel=0.3;

double          TMASlopeVal[8];
bool     BrokerHasSundayCandle=false;
int count_var=0;

double dStochMain[];
double HTStochMain[];
double HT2StochMain[];

int indiWindow=0;

int OnInit(void)
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
   count_var=0;

   ObjectDelete("stolvl1");
   ObjectDelete("stolvl2");
   ObjectDelete("stolvl3");
   ObjectDelete("stolvl4");
  }

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[])
  {
      // код доступен только после оплаты
   }

   if(rates_total<=KPeriod+DPeriod+Slowing)
      return(0);
       BrokerHasSundayCandle=false;
       int BrokerHour=TimeHour(TimeCurrent());
   for(int CC=0; CC<8; CC++)
     {
      if(TimeDayOfWeek(iTime(NULL,PERIOD_D1,CC))==0)
        {
         BrokerHasSundayCandle=true;
         break;
        }
     }
      int m_bar=0;//Need to deal with a Sunday candle
     int n_bar=0;//Need to deal with a Sunday candle
     int tma_bar=0;
   int d= TimeDayOfWeek(TimeCurrent());

   actual_long_swap=MarketInfo(Symbol(),MODE_SWAPLONG);
   actual_short_swap=MarketInfo(Symbol(),MODE_SWAPSHORT);

      double   HigherTF1STOCH=iStochastic(NULL,HigherTF_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,m_bar);
      double   HigherTF2STOCH=iStochastic(NULL,HigherTF2_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,n_bar);
       if(d == 1 && BrokerHasSundayCandle && HigherTF_Used==1440)
      {
     HigherTF1STOCH=((iStochastic(NULL,HigherTF_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1))+BrokerHour*(iStochastic(NULL,HigherTF_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1)))/(1+BrokerHour);;
      }
        if(d == 1 && BrokerHasSundayCandle && HigherTF2_Used==1440)
      {
      HigherTF2STOCH=((iStochastic(NULL,HigherTF2_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1))+BrokerHour*(iStochastic(NULL,HigherTF2_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1)))/(1+BrokerHour);;
      }
      /*if(UseD1StochforAlert==true) double HigherTFSTOCH=HigherTF1STOCH;
      else if(UseW1StochforAlert==true) HigherTFSTOCH=HigherTF2STOCH;
      else HigherTFSTOCH=HigherTF2STOCH;*/

   static datetime tLastAlert=0;
   static datetime tLastAlert_exit=0;
   static datetime tLastAlert_fastexit= 0;
   static datetime tLastAlert_cssexit = 0;

/*int	iBarsToCalc = Bars - IndicatorCounted();
	if (iBarsToCalc < Bars) iBarsToCalc++;

	int i;
	for (i=iBarsToCalc-i;i>=0;i--) {

		dStochMain[i]   	= iStochastic(NULL,0,KPeriod,DPeriod,Slowing,Method,Price,MODE_MAIN,i);

	}*/
   int i=0;
   datetime TimeArray2[];
   datetime TimeArray3[];
   datetime TimeArray4[];
   int    limit,y2=0,y3=0,y4=0,counted_bars=IndicatorCounted();

   ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),Period());
   ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),HigherTF_Used);
   ArrayCopySeries(TimeArray4,MODE_TIME,Symbol(),HigherTF2_Used);

   limit=Bars-counted_bars+Period()/Period();
   limit=Bars-counted_bars+HigherTF_Used/Period();
   limit=Bars-counted_bars+HigherTF2_Used/Period();

   for(i=0,y2=0,y3=0,y4=0;i<limit;i++)

     {
      if(Time[i]<TimeArray2[y2]) y2++;
      if(Time[i]<TimeArray3[y3]) y3++;
      if(Time[i]<TimeArray4[y4]) y4++;
       if(d == 1 && BrokerHasSundayCandle && Period()==1440 && i==0)
      {
      dStochMain[0]=((iStochastic(NULL,0,KPeriod,DPeriod,Slowing,Method,Price,MODE_MAIN,1))+BrokerHour*(iStochastic(NULL,0,KPeriod,DPeriod,Slowing,Method,Price,MODE_MAIN,0)))/(1+BrokerHour);
      }
       if(d == 1 && BrokerHasSundayCandle && HigherTF_Used==1440 && i==0)
      {
      HTStochMain[0]=((iStochastic(NULL,HigherTF_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1))+BrokerHour*(iStochastic(NULL,HigherTF_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1)))/(1+BrokerHour);;
      }
        if(d == 1 && BrokerHasSundayCandle && HigherTF2_Used==1440 && i==0)
      {
      HT2StochMain[0]=((iStochastic(NULL,HigherTF2_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_MAIN,1))+BrokerHour*(iStochastic(NULL,HigherTF2_Used,K_period_HT,D_period_HT,S_period_HT,STOCH_MAIN_Ma_HT,STOCH_MAIN_Price_HT,MODE_M

Показано первые 50% кода (символов: 15247)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 524,70₽ ≈ $18.63