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

dynamic zones polychromatic momentum 5.13.mq5

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

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

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

О программе

Индикатор Polychromatic Momentum для MetaTrader 4 рассчитывает импульсное значение на основе выбранной цены и сглаживает его пользовательским фильтром. Используется динамическая зональная модель через внешнюю DLL-библиотеку для определения уровней перекупленности и перепроданности. Индикатор отображает результат в отдельном окне и на графике цены в виде цветных полос и свечей.

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

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

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

НастройкаОписание
Time frame to use (TimeFrame) Таймфрейм — Таймфрейм для расчёта индикатора
Unique ID for the indicator (UniqueID) Уникальный идентификатор — Уникальный ID индикатора для именования объектов на графике
Momentum length (MomentumLength) Длина импульса — Период расчёта импульсного значения
Price to use (Price) Цена — Вид цены для расчёта (Close, Open, High, Low, Median и др.)
Smoothing length (SmoothLength) Длина сглаживания — Длина сглаживающего фильтра
Smoothing phase (SmoothPhase) Фаза сглаживания — Параметр фазы сглаживающего фильтра
Dynamic zones look back bars (DzLookBackBars) Баров динамических зон — Количество баров для расчёта динамических зон
Dynamic zones buy probability (DzStartBuyProbability) Вероятность покупки динамических зон — Начальная вероятность для зоны покупки
Dynamic zones sell probability (DzStartSellProbability) Вероятность продажи динамических зон — Начальная вероятность для зоны продажи
Color for up (ColorUp) Цвет роста — Цвет для отрисовки бычьих баров
Color for down (ColorDown) Цвет падения — Цвет для отрисовки медвежьих баров
Bars width (ColorWidth) Ширина цветных линий — Ширина линий цветных отметок на графике
Total bars to draw (ColorBars) Баров для отрисовки — Общее количество баров для отрисовки цветных полос
Divergence visible? (divergenceVisible) Видимость расхождений — Отображать ли линии расхождений на графике
Divergence on values should be visible? (divergenceOnValuesVisible) Видимость расхождений по значениям — Отображать ли линии расхождений в окне индикатора
Divergence on chart should be visible? (divergenceOnChartVisible) Видимость расхождений на графике цены — Отображать ли линии расхождений на графике цены
Bullish divergence color (divergenceBullishColor) Цвет бычьего расхождения — Цвет линий бычьего расхождения
Bearish divergence color (divergenceBearishColor) Цвет медвежьего расхождения — Цвет линий медвежьего расхождения
Divergence should alert? (divergenceAlert) Алерт расхождений — Включать ли оповещения при обнаружении расхождений
Divergence should show alert message? (divergenceAlertsMessage) Сообщение о расхождении — Отображать ли всплывающее сообщение при расхождении
Divergence alerts should play alert sound? (divergenceAlertsSound) Звук расхождений — Воспроизводить ли звук при расхождении
Divergence alerts should send an email? (divergenceAlertsEmail) Email о расхождении — Отправлять ли email при расхождении
Divergence alerts should send push notification? (divergenceAlertsNotify) Push-уведомление о расхождении — Отправлять ли push-уведомление при расхождении
Divergence alerts sound file (divergenceAlertsSoundName) Файл звука расхождений — Имя файла звука для оповещений о расхождениях
Arrows visible? (ShowArrows) Видимость стрелок — Отображать ли стрелки сигналов на графике
Arrows on outer level cross visible? (arrowsCrossesVisible) Видимость пересечений уровней — Отображать ли стрелки при пересечении внешних уровней
Arrows on reverts visible? (arrowsRevertsVisible) Видимость разворотов — Отображать ли стрелки при развороте направления
Arrows on middle level cross visible? (arrowsMiddleVisible) Видимость пересечения среднего уровня — Отображать ли стрелки при пересечении среднего уровня
Arrows upper gap (arrowsUpperGap) Верхний зазор стрелок — Отступ стрелок вверх от бара в процентах от ATR
Arrows lower gap (arrowsLowerGap) Нижний зазор стрелок — Отступ стрелок вниз от бара в процентах от ATR
Arrows uuper color (arrowsUpColor) Цвет стрелок вверх — Цвет стрелок бычьего сигнала
Arrows lower color (arrowsDnColor) Цвет стрелок вниз — Цвет стрелок медвежьего сигнала
Arrows upper code (arrowsUpCode) Код стрелки вверх — Код графического объекта стрелки вверх
Arrows lower code (arrowsDnCode) Код стрелки вниз — Код графического объекта стрелки вниз
Turn alerts on? (alertsOn) Включить алерты — Включить или выключить систему оповещений
Alert on ob line cross? (alertsOnobLineCross) Алерт пересечения ос line — Оповещать ли при пересечении линии ос (oversold)
Alerts on os line cross? (alertsOnosLineCross) Алерт пересечения os line — Оповещать ли при пересечении линии os (overbought)
Alerts on middle line cross? (alertsOnmiLineCross) Алерт пересечения средней линии — Оповещать ли при пересечении нулевой линии
Alerts on current (still opened) bar? (alertsOnCurrent) Алерт на текущем баре — Генерировать ли алерты на ещё не закрытом баре
Alerts should display pop-up message? (alertsMessage) Сообщение об алерте — Отображать ли всплывающее сообщение при алерте
Alerts should play alert sound? (alertsSound) Звук алерта — Воспроизводить ли звук при алерте
Alerts should send an email? (alertsEmail) Email алерта — Отправлять ли email при алерте
Alerts should send push notification? (alertsNotify) Push-уведомление алерта — Отправлять ли push-уведомление при алерте
On chart bars visible? (barsVisible) Видимость баров — Отображать ли цветные свечи на графике
On chart bars wick width (widthWick) Ширина теней — Ширина теней цветных свечей
On chart bars body width (widthBody) Ширина тела — Ширина тел цветных свечей
On chart bars should be displayed in background? (drawInBackgound) Отрисовка на заднем плане — Отображать ли цветные бары на заднем плане графика
Interpolate in multi time frame mode? (Interpolate) Интерполяция — Интерполировать ли значения при мультитаймфреймном режиме
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1  clrDimGray
#property indicator_color2  clrDarkOrange
#property indicator_color3  clrLimeGreen
#property indicator_color4  clrLimeGreen
#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT
#property indicator_width4  2
#property strict

#import "dynamicZone.dll"
   double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
   double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision);
#import

enum enPrices
{
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_haclose,    // Heiken ashi close
   pr_haopen ,    // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,      // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,  // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,  // Heiken ashi average
   pr_hamedianb,  // Heiken ashi median body
   pr_hatbiased,  // Heiken ashi trend biased price
   pr_hatbiased2  // Heiken ashi trend biased (extreme) price
};

extern ENUM_TIMEFRAMES TimeFrame        = PERIOD_CURRENT;        // Time frame to use
extern string UniqueID                  = "DZPCM";               // Unique ID for the indicator
extern int    MomentumLength            = 20;                    // Momentum length
extern enPrices Price                   = pr_close;              // Price to use
extern double SmoothLength              = 5;                     // Smoothing length
extern double SmoothPhase               = 0;                     // Smoothing phase
extern int    DzLookBackBars            = 35;                    // Dynamic zones look back bars
extern double DzStartBuyProbability     = 0.05;                  // Dynamic zones buy probability
extern double DzStartSellProbability    = 0.05;                  // Dynamic zones sell probability
extern color  ColorUp                   = clrLimeGreen;          // Color for up
extern color  ColorDown                 = clrOrangeRed;          // Color for down
extern int    ColorWidth                = 2;                     // Bars width
extern int    ColorBars                 = 1000;                  // Total bars to draw
extern bool   divergenceVisible         = false;                 // Divergence visible?
extern bool   divergenceOnValuesVisible = true;                  // Divergence on values should be visible?
extern bool   divergenceOnChartVisible  = true;                  // Divergence on chart should be visible?
extern color  divergenceBullishColor    = clrLimeGreen;          // Bullish divergence color
extern color  divergenceBearishColor    = clrOrangeRed;          // Bearish divergence color
extern bool   divergenceAlert           = true;                  // Divergence should alert?
extern bool   divergenceAlertsMessage   = true;                  // Divergence should show alert message?
extern bool   divergenceAlertsSound     = true;                  // Divergence alerts should play alert sound?
extern bool   divergenceAlertsEmail     = false;                 // Divergence alerts should send an email?
extern bool   divergenceAlertsNotify    = false;                 // Divergence alerts should send push notification?
extern string divergenceAlertsSoundName = "alert1.wav";          // Divergence alerts sound file
extern bool   ShowArrows                = false;                 // Arrows visible?
extern bool   arrowsCrossesVisible      = true;                  // Arrows on outer level cross visible?
extern bool   arrowsRevertsVisible      = true;                  // Arrows on reverts visible?
extern bool   arrowsMiddleVisible       = true;                  // Arrows on middle level cross visible?
extern double arrowsUpperGap            = 1.0;                   // Arrows upper gap
extern double arrowsLowerGap            = 1.0;                   // Arrows lower gap
extern color  arrowsUpColor             = clrLimeGreen;          // Arrows uuper color
extern color  arrowsDnColor             = clrOrangeRed;          // Arrows lower color
extern int    arrowsUpCode              = 241;                   // Arrows upper code
extern int    arrowsDnCode              = 242;                   // Arrows lower code
extern bool   alertsOn                  = false;                 // Turn alerts on?
extern bool   alertsOnobLineCross       = true;                  // Alert on ob line cross?
extern bool   alertsOnosLineCross       = true;                  // Alerts on os line cross?
extern bool   alertsOnmiLineCross       = true;                  // Alerts on middle line cross?
extern bool   alertsOnCurrent           = false;                 // Alerts on current (still opened) bar?
extern bool   alertsMessage             = true;                  // Alerts should display pop-up message?
extern bool   alertsSound               = true;                  // Alerts should play alert sound?
extern bool   alertsEmail               = false;                 // Alerts should send an email?
extern bool   alertsNotify              = true;                  // Alerts should send push notification?
extern bool   barsVisible               = true;                  // On chart bars visible?
extern int    widthWick                 = 0;                     // On chart bars wick width
extern int    widthBody                 = 2;                     // On chart bars body width
extern bool   drawInBackgound           = false;                 // On chart bars should be displayed in background?
extern bool   Interpolate               = true;                  // Interpolate in multi time frame mode?

double obLine[];
double osLine[];
double zeroLine[];
double buffer1[];
double buffer2[];
double ratios[];
double arrows[];
double arrowz[];

double trends[][3];
#define _tob 0
#define _tos 1
#define _tmi 2

string indicatorFileName;
bool   returnBars;
string shortName;

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

int deinit()
{
   string lookFor       = UniqueID+":";
   int    lookForLength = StringLen(lookFor);
      for (int i=ObjectsTotal()-1; i>=0; i--) 
      {
         string name = ObjectName(i);  if (StringSubstr(name,0,lookForLength) == lookFor) ObjectDelete(name);
      }
   return(0); 
}

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

double wrk[][10];

#define bsmax  5
#define bsmin  6
#define volty  7
#define vsum   8
#define avolty 9

double iSmooth(double price, double length, double phase, int i, int s=0)
{
   if (length <=1) return(price);
   if (ArrayRange(wrk,0) != Bars) ArrayResize(wrk,Bars);

   int k,r = Bars-i-1; 
      if (r==0) { for(k=0; k<7; k++) wrk[r][k+s]=price; for(; k<10; k++) wrk[r][k+s]=0; return(price); }

      double len1   = MathMax(MathLog(MathSqrt(0.5*(length-1)))/MathLog(2.0)+2.0,0);
      double pow1   = MathMax(len1-2.0,0.5);
      double del1   = price - wrk[r-1][bsmax+s];
      double del2   = price - wrk[r-1][bsmin+s];
      double div    = 1.0/(10.0+10.0*(MathMin(MathMax(length-10,0),100))/100);
      int    forBar = MathMin(r,10);

         wrk[r][volty+s] = 0

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

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

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

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

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

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

Стоимость полного кода
2 570,90₽ ≈ $31.42