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

BuySellWait

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

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для MetaTrader 4, который рассчитывает аналитическое значение на основе линейно-взвешенной скользящей средней (LWMA) и ценовых данных. Результат отображается в виде линии на графике в диапазоне от -1 до 1 с дополнительными уровнями на отметках 0.8 и -0.8.
Индикатор генерирует сигналы Buy и Sell при пересечении пороговых значений 0.8 и -0.8 соответственно. Сигналы визуализируются с помощью стрелок на графике, а текущий статус (Buy, Sell или Wait) отображается текстовой меткой в окне индикатора.
При генерации сигнала индикатор может отправлять уведомления (Alert) с указанием направления сделки и уровня StopLoss. Параметр SL_distance_pips задаёт расстояние StopLoss в пунктах от текущей цены для формирования уровня в алертах.

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

НастройкаОписание
FilterPeriod FilterPeriod — Период скользящей средней и фильтра, используемых в расчёте индикатора. Задаётся целым числом.
SL_distance_pips SL_distance_pips — Расстояние StopLoss в пунктах, используемое при формировании уровней в сигнальных уведомлениях. Задаётся целым числом.
Получить полный код

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

#property indicator_chart_window
#property indicator_minimum -1.2
#property indicator_maximum 1.2
#property indicator_levelcolor Lime
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 3
#property indicator_level1 0.8
#property indicator_level2 -0.8

int gi_76 = 22;
extern int FilterPeriod = 22;
double gd_84 = 1.0;
int gi_92 = 0;
extern int SL_distance_pips = 20;
double g_ibuf_100[];
double gda_104[];
double g_ibuf_108[];
int gi_112 = 14;
double gda_116[];
double gd_120;
int gia_128[];
int gia_132[];
int gi_136 = 0;
int g_time_140 = 0;
string gs_144 = "www.mql54.com";
string g_name_152;
datetime g_time_160;

void f0_7(string as_0, double ad_8, double ad_16, double ad_24) {
   string ls_32;
   string ls_40;
   string ls_48;
   if (Time[0] != g_time_160) {
      g_time_160 = Time[0];
      if (ad_24 != 0.0) ls_48 = " - price " + DoubleToStr(ad_24, 4);
      else ls_48 = "";
      if (ad_8 != 0.0) ls_40 = ", TakeProfit on " + DoubleToStr(ad_8, 4);
      else ls_40 = "";
      if (ad_16 != 0.0) ls_32 = ", StopLoss on " + DoubleToStr(ad_16, 4);
      else ls_32 = "";
      Alert("www.mql54.com " + as_0 + ls_48 + ls_40 + ls_32 + " ", Symbol(), ", ", Period(), " minute chart");
   }
}

void f0_0(int ai_0) {
   int li_4;
   int count_8;
   int li_12;
   int li_16;
   double ld_20;
   switch (gi_92) {
   case 0:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_CLOSE, ai_0);
      break;
   case 1:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_OPEN, ai_0);
      break;
   case 2:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_HIGH, ai_0);
      break;
   case 3:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_LOW, ai_0);
      break;
   case 4:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_MEDIAN, ai_0);
      break;
   case 5:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_TYPICAL, ai_0);
      break;
   case 6:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_WEIGHTED, ai_0);
      break;
   default:
      gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_WEIGHTED, ai_0);
   }
   for (int li_32 = ai_0 + gi_76 + 2; li_32 > ai_0; li_32--) {
      ld_20 = 0.0;
      li_4 = 0;
      count_8 = 0;
      li_12 = li_32 + gi_76;
      li_16 = li_32 - gi_76;
      if (li_16 < ai_0) li_16 = ai_0;
      while (li_12 >= li_32) {
         count_8++;
         ld_20 += count_8 * f0_4(li_12);
         li_4 += count_8;
         li_12--;
      }
      while (li_12 >= li_16) {
         count_8--;
         ld_20 += count_8 * f0_4(li_12);
         li_4 += count_8;
         li_12--;
      }
      gda_104[li_32] = ld_20 / li_4;
   }
}

double f0_4(int ai_0) {
   switch (gi_92) {
   case 0:
      return (Close[ai_0]);
   case 1:
      return (Open[ai_0]);
   case 2:
      return (High[ai_0]);
   case 3:
      return (Low[ai_0]);
   case 4:
      return ((High[ai_0] + Low[ai_0]) / 2.0);
   case 5:
      return ((Close[ai_0] + High[ai_0] + Low[ai_0]) / 3.0);
   case 6:
      return ((2.0 * Close[ai_0] + High[ai_0] + Low[ai_0]) / 4.0);
   }
   return (Close[ai_0]);
}

void f0_8(int ai_0) {
   double ld_4 = gda_104[ArrayMaximum(gda_104, FilterPeriod, ai_0)];
   double ld_12 = gda_104[ArrayMinimum(gda_104, FilterPeriod, ai_0)];
   g_ibuf_108[ai_0] = (2.0 * (gd_84 + 2.0) * gda_104[ai_0] - (ld_4 + ld_12)) / 2.0 / (gd_84 + 1.0);
}

double f0_1(double ada_0[], int ai_4) {
   double ld_8;
   for (int index_16 = 0; index_16 < ai_4; index_16++) ld_8 += MathPow(ada_0[index_16] - index_16 - 1.0, 2);
   double ld_ret_20 = 1 - 6.0 * ld_8 / (MathPow(ai_4, 3) - ai_4);
   return (ld_ret_20);
}

void f0_5(int aia_0[]) {
   double ld_4;
   double ld_12;
   int index_20;
   int li_24;
   int li_28;
   int li_32;
   double lda_36[];
   ArrayResize(lda_36, gi_112);
   ArrayCopy(gia_132, aia_0);
   for (int index_40 = 0; index_40 < gi_112; index_40++) lda_36[index_40] = index_40 + 1;
   ArraySort(gia_132, WHOLE_ARRAY, 0, MODE_DESCEND);
   for (index_40 = 0; index_40 < gi_112 - 1; index_40++) {
      if (gia_132[index_40] == gia_132[index_40 + 1]) {
         li_24 = gia_132[index_40];
         index_20 = index_40 + 1;
         li_28 = 1;
         ld_12 = index_40 + 1;
         while (index_20 < gi_112) {
            if (gia_132[index_20] != li_24) break;
            li_28++;
            ld_12 += index_20 + 1;
            index_20++;
         }
         ld_4 = li_28;
         ld_12 /= ld_4;
         for (int li_44 = index_40; li_44 < index_20; li_44++) lda_36[li_44] = ld_12;
         index_40 = i

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

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

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

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

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

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

Стоимость полного кода
665,80₽ ≈ $8.14