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

nrp indicator.mq4

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

Индикатор поддерживает выбор рабочего таймфрейма и интерполяцию значений для отображения данных с других таймфреймов на текущем графике. Цвета стрелок и идентификатор объектов настраиваются пользователем.

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

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

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

НастройкаОписание
PERIODIC Таймфрейм расчёта — Таймфрейм для расчёта индикатора (например, 240 — H4)
mt4 account ID (Licence_MT4ID) Идентификатор MT4-аккаунта — Идентификатор MT4-аккаунта для привязки лицензии
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 2

#define FLINESIZE 14 

 extern string PERIODIC        = "240";
 int    RsiPeriod        = 7;
 int    MaType           = 1;
 int    MaPeriod         = 7;
 bool   Interpolate      = false;
 string arrowsIdentifier = "HARZADOUS";
 color  arrowsUpColor    = Magenta;
 color  arrowsDnColor    = Yellow;
 bool   alertsOn         = TRUE;
 bool   alertsSound      = TRUE;
 bool   alertsOnCurrent  = FALSE;
 bool   alertsMessage    = FALSE;
 bool   alertsEmail      = FALSE;
 bool   push             = true;
  extern int Licence_MT4ID = 0;      // mt4 account ID
   string Licenced_Mail = "b************y*@gmail.com";      // mt4 account ID
   string Serial_Number= "UNLIMITED";
double G_ibuf_136[];
double G_ibuf_140[];
double G_ibuf_144[];
string gs_148;
bool   gi_156 = FALSE;
bool   gi_160 = FALSE;
int    g_timeframe_164;
string gs_nothing_168 = "nothing";
datetime g_time_176;

datetime lastArrTime = EMPTY;
datetime expiryDate = D'2040.1.30 23:59'; //change as per your requirement
 int acc_number= 0;
 string mail= "b************y*@gmail.com";
 string Serial_Key= "UNLIMITED" ;

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

   f0_2();
   return (0);
}

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

   int shift_0;
   int datetime_4;
   double Ld_8;
   int Li_16;
   int Li_32 = IndicatorCounted();
   if (Li_32 < 0) return (-1);
   if (Li_32 > 0) Li_32--;
   int Li_36 = MathMin(Bars - Li_32, Bars - 1);
   if (gi_160) {
      G_ibuf_136[0] = Li_36 + 1;
      return (0);
   }
   if (g_timeframe_164 > Period()) Li_36 = MathMax(Li_36, MathMin(Bars - 1, iCustom(NULL, g_timeframe_164, gs_148, "returnBars", 0, 0) * g_timeframe_164 / Period()));
   if (gi_156) {
      for (int Li_40 = 0; Li_40 < Li_36; Li_40++) G_ibuf_136[Li_40] = iRSI(NULL, 0, RsiPeriod, PRICE_CLOSE, Li_40);
      for (Li_40 = 0; Li_40 < Li_36; Li_40++) G_ibuf_140[Li_40] = iMAOnArray(G_ibuf_136, 0, MaPeriod, 0, MaType, Li_40);
      return (0);
   }
   int typeLastSignal = EMPTY;
           if(TimeCurrent() > expiryDate ||(acc_number!=0 && acc_number!=AccountNumber())||(Licenced_Mail!=mail))
  {
Alert("Account invalid or Licence expired contact @ b************y*@gmail.com" );
return(0);
  }
  else
  {

   for (Li_40 = Li_36; Li_40 >= 0; Li_40--) {
      shift_0 = iBarShift(NULL, g_timeframe_164, Time[Li_40]);
      G_ibuf_136[Li_40] = iCustom(NULL, g_timeframe_164, gs_148, "calculate", RsiPeriod, MaType, MaPeriod, 0, shift_0);
      G_ibuf_140[Li_40] = iCustom(NULL, g_timeframe_164, gs_148, "calculate", RsiPeriod, MaType, MaPeriod, 1, shift_0);
      G_ibuf_144[Li_40] = G_ibuf_144[Li_40 + 1];
      if (G_ibuf_136[Li_40] > G_ibuf_140[Li_40]) G_ibuf_144[Li_40] = 1; 
      if (G_ibuf_136[Li_40] < G_ibuf_140[Li_40]) G_ibuf_144[Li_40] = -1; 

      if (G_ibuf_144[Li_40] != G_ibuf_144[Li_40 + 1]) {
         if (G_ibuf_144[Li_40] == 1.0) { DrawArrowForBar(Li_40, arrowsUpColor, 217, 0); typeLastSignal = OP_BUY;  }
         if (G_ibuf_144[Li_40] == -1.0){ DrawArrowForBar(Li_40, arrowsDnColor, 218, 1); typeLastSignal = OP_SELL; }
      }
      if (g_timeframe_164 <= Period() || shift_0 == iBarShift(NULL, g_timeframe_164, Time[Li_40 - 1])) continue;
      if (Interpolate) {
         datetime_4 = iTime(NULL, g_timeframe_164, shift_0);
         for (int Li_44 = 1; Li_40 + Li_44 < Bars && Time[Li_40 + Li_44] >= datetime_4; Li_44++) {
         }
         Ld_8 = 1.0 / Li_44;
         for (int Li_48 = 1; Li_48 < Li_44; Li_48++) {
            G_ibuf_136[Li_40 + Li_48] = Li_48 * Ld_8 * (G_ibuf_136[Li_40 + Li_44]) + (1.0 - Li_48 * Ld_8) * G_ibuf_136[Li_40];
            G_ibuf_140[Li_40 + Li_48] = Li_48 * Ld_8 * (G_ibuf_140[Li_40 + Li_44]) + (1.0 - Li_48 * Ld_8) * G_ibuf_140[Li_40];
         }
      }
   }

   if (alertsOn) {
      if (alertsOnCurrent) Li_16 = 0;
      else Li_16 = 1;
      if (G_ibuf_144[Li_16] != G_ibuf_144[Li_16 + 1]) {
         if (G_ibuf_144[Li_16] == 1.0) f0_5("Trend UP");
         if (G_ibuf_144[Li_16] == -1.0) f0_5("Trend DOWN");
      }
   }

   datetime curTime = iTime(NULL, g_timeframe_164, 0);
   string nameCurObj = arrowsIdentifier + ":" + iTime(NULL, g_timeframe_164, 0);      

   if( ObjectFind(nameCurObj) != EMPTY && curTime > lastArrTime )
   {
      if( typeLastSignal != EMPTY )
      {
         if( lastArrTime == EMPTY  )
            SaveSignal(curTime, typeLastSignal);
         else
         {
            datetime minuts = iTime(NULL, PERIOD_M1, 0);
            SaveSignal(curTime, typeLastSignal, minuts);

            if( Period() < g_timeframe_164 )   
 

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

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

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

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

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

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

Стоимость полного кода
883,40₽ ≈ $10.80