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

dl hurst macd st2050 v3.1.mq5

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

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

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

О программе

Это пользовательский индикатор для MetaTrader 4 на языке MQL4, работающий в отдельном окне графика. Индикатор вычисляет значения, аналогичные MACD, используя данные треугольных скользящих средних (TMA) с более высокого таймфрейма и отображает их в виде гистограмм. Дополнительно строится линия сигнала на основе простой скользящей средней и создаются горизонтальные уровни на графике для визуальной ориентации.

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

НастройкаОписание
use_SMA Использовать SMA — Включает или отключает построение линии сигнала на основе простой скользящей средней от основного буфера.
Signal SMA Period (SignalSMA) Период сигнальной SMA — Период простой скользящей средней, используемой для формирования линии сигнала.
TMA_centered_name Имя индикатора TMA — Название пользовательского индикатора TMAcentered, вызываемого через iCustom для расчёта значений.
TMA_slow_value Медленный период TMA — Период медленной TMA, используемой при расчёте значений.
TMA_fast_value Быстрый период TMA — Период быстрой TMA, используемой при расчёте значений.
st2050CommomSettings Общие настройки st2050 — Разделительный текстовый параметр для группировки общих настроек в диалоге ввода.
Timeframe Таймфрейм — Таймфрейм, с которого загружаются данные для расчёта через ArrayCopySeries и iCustom.
MaxBars Максимум баров — Ограничение на количество баров, обрабатываемых индикатором за один пересчёт.
WaitForClose Ожидание закрытия свечи — При включении индикатор не пересчитывается до появления новой свечи.
RecalcOnClose Пересчёт при закрытии — При включении и смене бара расширяет диапазон пересчитываемых баров, если текущий лимит слишком мал.
st2050LevelsSettings Настройки уровней st2050 — Разделительный текстовый параметр для группировки настроек уровней в диалоге ввода.
LevelColorUp Цвет уровня вверх — Цвет горизонтальной линии верхнего уровня.
LevelColorDown Цвет уровня вниз — Цвет горизонтальной линии нижнего уровня.
LevelZeroColor Цвет нулевого уровня — Цвет горизонтальной линии нулевого уровня.
SetZeroLevel Установить нулевой уровень — Включает отрисовку горизонтальной линии нулевого уровня на графике.
SetCommonLevels Установить общие уровни — Включает отрисовку горизонтальных уровней на расстоянии CommonLevelDistance от нуля.
CommonLevelDistance Расстояние общих уровней — Значение расстояния для общих уровней, пересчитываемое в зависимости от числа десятичных знаков инструмента.
SetExtraLevels Установить дополнительные уровни — Включает отрисовку дополнительных горизонтальных уровней на расстоянии ExtraLevelDistance от нуля.
ExtraLevelDistance Расстояние дополнительных уровней — Значение расстояния для дополнительных уровней, пересчитываемое в зависимости от числа десятичных знаков инструмента.
Получить полный код

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

#property version   "1.01"
#property  description "Dragons Lair Forex aims to interpret price action"
#property  description "on a day to day basis using classic and timeless "
#property  description "principles to gain an orientation and identify"
#property  description "key areas of interest for optimal trading." 
#property  description "---"
#property  description "Updated by st2050"
#property  description "Welcome to forexsystemsru.com"
#property strict

#include <MovingAverages.mqh>

#property  indicator_separate_window
#property  indicator_buffers 4
#property  indicator_color1  RoyalBlue
#property  indicator_color2  Sienna
#property  indicator_color3  CLR_NONE
#property  indicator_width1  2
#property  indicator_width2  2

#property indicator_levelcolor DimGray

input bool use_SMA = true;
input int SignalSMA=9;  // Signal SMA Period

extern string TMA_centered_name = "TMAcentered";
extern int TMA_slow_value = 66;
extern int TMA_fast_value = 22;

extern string st2050CommomSettings = "--- st2050 Common Settings ---";
extern int    Timeframe            = 240;
extern int    MaxBars              = 1000;
extern bool   WaitForClose         = true;
extern bool   RecalcOnClose        = true;
extern string st2050LevelsSettings = "--- st2050 Levels Settings ---";
extern color  LevelColorUp         = RoyalBlue;
extern color  LevelColorDown       = Sienna;
extern color  LevelZeroColor       = DimGray;
extern bool   SetZeroLevel         = true;
extern bool   SetCommonLevels      = true;
extern double CommonLevelDistance  = 20;
extern bool   SetExtraLevels       = true;
extern double ExtraLevelDistance   = 50;

double    MacdBuffer1[];
double    MacdBuffer2[];
double    SignalBuffer[];
double    MACDmaster[];

string IndicatorName;
int    WindowNo;
double PeriodMultiplier;

int deinit() { 

   RemoveObjects(IndicatorName);
   return(0); 
}

void RemoveObjects(string PreName)
{
   for(int k=ObjectsTotal()-1; k>=0; k--) 
     {
      string Obj_Name=ObjectName(k);                           // Запpашиваeм имя объeкта
      string Head=StringSubstr(Obj_Name,0,StringLen(PreName)); // Извлeкаeм первыe симолы
      if (Head==PreName)// Найдeн объeкт, ..
         {
         ObjectDelete(Obj_Name);
         }                  
     }
}

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

   SetIndexBuffer(0,MacdBuffer1);
   SetIndexStyle(0,DRAW_HISTOGRAM);

   SetIndexBuffer(1,MacdBuffer2);
   SetIndexStyle(1,DRAW_HISTOGRAM);

   SetIndexBuffer(2,SignalBuffer);
   SetIndexStyle(2,DRAW_LINE);

   SetIndexBuffer(3,MACDmaster);
   SetIndexStyle(3,DRAW_NONE);

   SetIndexDrawBegin(1,SignalSMA);

   if (Timeframe<=0) Timeframe=Period();

   IndicatorName="DL_Hurst_MACD_"+ IntegerToString(Timeframe);
   IndicatorShortName(IndicatorName);

   WindowNo=ChartWindowFind(ChartID(), IndicatorName);
   RemoveObjects(IndicatorName);

   string ObjName;
   double LevelValue;
   PeriodMultiplier=Timeframe/Period();

   if (SetZeroLevel)
   {
     ObjName=IndicatorName+"Level_Zero";
     ObjectCreate(0, ObjName, OBJ_HLINE, WindowNo, Time[0], 0);
     ObjectSet(ObjName, OBJPROP_COLOR, LevelZeroColor);
     ObjectSet(ObjName, OBJPROP_STYLE, STYLE_DOT); 
   }
   if (SetCommonLevels)
   {
     LevelValue=CommonLevelDistance/MathPow(10,Digits-1);
     ObjName=IndicatorNa

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

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

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

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

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

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

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