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

pbf_trend_bars_v2.mq5

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

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

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

О программе

Индикатор pbf_trend_bars_v2 реализован для платформы MetaTrader 5 и отображает результаты анализа в отдельном окне с помощью шести буферов стрелок (три зелёных и три красных). Он рассчитывает разницу между короткой и полной линиями взвешенной скользящей средней (LWMA) для трёх групп параметров, затем дополнительно сглаживает эти разницы и сигнализирует о смене направления через стрелки.

Для каждой из трёх групп параметров (Length1–3) вычисляются промежуточные значения: удвоенная краткосрочная LWMA минус полная LWMA. Полученные массивы дополнительно обрабатываются функцией iMAOnArray с периодами, полученными из квадратного корня исходной длины. Сравнение текущего и предыдущего значений сглаженных линий определяет, в какой буфер (верхний или нижний) помещается стрелка.

В коде присутствуют закомментированные блоки, связанные с валидацией через DLL, однако они неактивны и не влияют на работу индикатора. Основная логика полностью сосредоточена в функции start(), которая вызывается при каждом обновлении ценовых данных.

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

НастройкаОписание
Length1 Первый период для расчёта краткосрочной и полной линий взвешенной скользящей средней (LWMA) в первой группе параметров.
Length2 Второй период для расчёта краткосрочной и полной линий взвешенной скользящей средней (LWMA) во второй группе параметров.
Length3 Третий период для расчёта краткосрочной и полной линий взвешенной скользящей средней (LWMA) в третьей группе параметров.
Position1 Вертикальное смещение стрелок, отображаемых для первой группы параметров.
Position2 Вертикальное смещение стрелок, отображаемых для второй группы параметров.
Position3 Вертикальное смещение стрелок, отображаемых для третьей группы параметров.
Получить полный код

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

/*
   Generated by EX4 TO MQ4 decompile Service 
   Website:  
   E-mail : i**o*@ex4Tomq4.net 
*/

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_color5 Lime
#property indicator_color6 Red

/*
#import "ServerValidate.dll"
   void ValidateUser(string a0, string a1, int a2, int a3, int& a4[], int& a5[], string a6);
   double Func2(double a0, double a1);
   double Func3();
   double Func4();
   double Func5(double a0);
   int IsValidated();
#import
*/

extern int Length1 = 13;
extern int Length2 = 34;
extern int Length3 = 89;
extern int Position1 = 35;
extern int Position2 = 0;
extern int Position3 = -35;
/*
extern string Username;
extern string Password;
*/
double g_ibuf_116[];
double g_ibuf_120[];
double g_ibuf_124[];
double g_ibuf_128[];
double g_ibuf_132[];
double g_ibuf_136[];
double gda_140[];
double gda_144[];
double gda_148[];
bool gi_152 = TRUE;
datetime g_time_156;

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

int deinit() {
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   string ls_0;
   int period_64;
   double ld_68;
   double ld_76;
   double ima_on_arr_96;
   double ima_on_arr_104;
   double ima_on_arr_112;
   double ima_on_arr_120;
/*
   if (AccountNumber() == 0) return (0);
   if (IsValidated() == 1) gi_152 = TRUE;
   Comment("");
   if (gi_152 == FALSE) {
      ls_0 = "12345678901234567890123456789012345678901234567890ABCDEFGHIJKLMNOP";
      int lia_8[] = {0};
      int lia_12[] = {0};
      ValidateUser(Username, Password, AccountNumber(), 0, lia_12, lia_8, ls_0);
      if (lia_12[0] == 1) {
         Print("Validated");
         gi_152 = TRUE;
      } else {
         Alert("Not validated - return message: ", ls_0);
         return (0);
      }
   }
*/
   int li_24 = IndicatorCounted();
   if (li_24 < 0) return (-1);
   if (li_24 > 0) li_24--;
   int li_16 = Bars - li_24;
   bool li_28 = FALSE;
   if (g_time_156 != Time[0]) li_28 = TRUE;
   g_time_156 = Time[0];
   if (li_28) {
      ArrayResize(gda_140, Bars);
      ArrayResize(gda_144, Bars);
      ArrayResize(gda_148, Bars);
      if (li_24 > 0) {
         for (int li_20 = Bars - 1; li_20 > 0; li_20--) {
            gda_140[li_20] = gda_140[li_20 - 1];
            gda_144[li_20] = gda_144[li_20 - 1];
        

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

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

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

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

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

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

Стоимость полного кода
468,30₽ ≈ $5.72