Перейти к содержанию

Рекомендуемые сообщения

39743764315_745c80837b_c.jpg
2ТЭ10М-0936 by Pavel888, on Flickr

РУССКИЙ ЯЗЫК/Russian language.
НАБОР посвящается индикатору Parabolic SAR - который является стандартным в MetaTrader 4. Большинство индикаторов - с открытым кодом (файл mql в наличии). Однако для работы индикатора требуется только файл с разрешением EX. Если указано - что нет скрина - это значит, что индикатор выглядит аналогично вышеозначенному.
Успехов в работе!


АНГЛИЙСКИЙ ЯЗЫК/English language.

The SET is dedicated to the Parabolic SAR indicator - which is standard in MetaTrader 4. Most of the indicators are open source (mql file is available). However, only a file with EX resolution is required for the indicator to work. If it is indicated that there is no screenshot, it means that the indicator looks similar to the above. Good luck in your work!

 

С уважением, Павел aka Pavel888.


ОПИСАНИЕ ИНДИКАТОРА

Спойлер

1. Общий вид индикатора, описание.
2. Код индикатора.
3. Базовые настройки индикатора.
4. Формула расчёта индикатора.
5. Видеообзор индикатора.
6. Автор индикатора.
 

Общий вид индикатора, описание:
03-01-201714-32-36OBSVID.jpg

Технический индикатор Параболическая Система SAR (Parabolic SAR) был разработан для анализа трендовых рынков. Индикатор строится на ценовом графике. По своему смыслу данный индикатор аналогичен скользящей средней, с той лишь разницей, что Parabolic SAR движется с большим ускорением и может менять положение относительно цены. На «бычьем тренде» (Up Trend) индикатор располагается ниже цен, на «медвежьем» (Down Trend) — выше.

Если цена пересекает линии Parabolic SAR, то происходит разворот индикатора, а следующие его значения располагаются по другую сторону от цены. При этом «перевороте» индикатора точкой отсчета будет служить максимальная или минимальная цена за предыдущий период. Переворот индикатора — это сигнал либо об окончании (переходе в коррекцию или флэт) тренда, либо о его развороте.

Parabolic SAR превосходно определяет точки выхода из рынка. Длинные позиции следует закрывать, когда цена опускается ниже линии технического индикатора, а короткие — когда цена поднимается выше линии Parabolic SAR. Часто данный индикатор используют в качестве линии скользящего стопа (trailing stop).

Если открыта длинная позиция (то есть цена выше линии Parabolic SAR), то линия индикатора будет перемещаться вверх независимо от того, в каком направлении движутся цены. Величина перемещения линии Parabolic SAR зависит от величины ценового движения.

 

2. Код индикатора:

Спойлер
//+------------------------------------------------------------------+
//|                                                    Parabolic.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005-2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
#property description "Parabolic Stop-And-Reversal system"
#property strict

//--- indicator settings
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1  Lime
//--- input parameters
input double InpSARStep=0.02;    // Step
input double InpSARMaximum=0.2;  // Maximum
//---- buffers
double       ExtSARBuffer[];
//--- global variables
double       ExtSarStep;
double       ExtSarMaximum;
int          ExtLastReverse;
bool         ExtDirectionLong;
double       ExtLastStep,ExtLastEP,ExtLastSAR;
double       ExtLastHigh,ExtLastLow;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- checking input data
   if(InpSARStep     {
      ExtSarStep=0.02;
      Print("Input parametr InpSARStep has incorrect value. Indicator will use value ",
            ExtSarStep," for calculations.");
     }
   else
      ExtSarStep=InpSARStep;
   if(InpSARMaximum     {
      ExtSarMaximum=0.2;
      Print("Input parametr InpSARMaximum has incorrect value. Indicator will use value ",
            ExtSarMaximum," for calculations.");
     }
   else
      ExtSarMaximum=InpSARMaximum;
//--- drawing settings
   IndicatorDigits(Digits);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
//---- indicator buffers
   SetIndexBuffer(0,ExtSARBuffer);
//--- set short name
   IndicatorShortName("SAR("+DoubleToString(ExtSarStep,2)+","+DoubleToString(ExtSarMaximum,2)+")");
//--- set global variables
   ExtLastReverse=0;
   ExtDirectionLong=false;
   ExtLastStep=ExtLastEP=ExtLastSAR=0.0;
   ExtLastHigh=ExtLastLow=0.0;
//----
  }
//+------------------------------------------------------------------+
//| Parabolic SAR                                                    |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
   bool   dir_long;
   double last_high,last_low,ep,sar,step;
   int    i;
//--- check for minimum rates count
   if(rates_total      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtSARBuffer,false);
   ArraySetAsSeries(high,false);
   ArraySetAsSeries(low,false);
//--- detect current position for calculations 
   i=prev_calculated-1;
//--- calculations from start?
   if(i     {
      ExtLastReverse=0;
      dir_long=true;
      step=ExtSarStep;
      last_high=-10000000.0;
      last_low=10000000.0;
      sar=0;
      i=1;
      while(i        {
         ExtLastReverse=i;
         if(last_low>low)
            last_low=low;
         if(last_high)
            last_high=high;
         if(high>high[i-1] && low>low[i-1])
            break;
         if(high           {
            dir_long=false;
            break;
           }
         i++;
        }
      //--- initialize with zero
      ArrayInitialize(ExtSARBuffer,0.0);
      //--- go check
      if(dir_long)
        {
         ExtSARBuffer=low[i-1];
         ep=high;
        }
      else
        {
         ExtSARBuffer=high[i-1];
         ep=low;
        }
      i++;
     }
   else
     {
      //--- calculations to be continued. restore last values
      i=ExtLastReverse;
      step=ExtLastStep;
      dir_long=ExtDirectionLong;
      last_high=ExtLastHigh;
      last_low=ExtLastLow;
      ep=ExtLastEP;
      sar=ExtLastSAR;
     }
//---main cycle
   while(i     {
      //--- check for reverse
      if(dir_long && low        {
         SaveLastReverse(i,true,step,low,last_high,ep,sar);
         step=ExtSarStep;
         dir_long=false;
         ep=low;
         last_low=low;
         ExtSARBuffer[i++]=last_high;
         continue;
        }
      if(!dir_long && high>ExtSARBuffer[i-1])
        {
         SaveLastReverse(i,false,step,last_low,high,ep,sar);
         step=ExtSarStep;
         dir_long=true;
         ep=high;
         last_high=high;
         ExtSARBuffer[i++]=last_low;
         continue;
        }
      //---
      sar=ExtSARBuffer[i-1]+step*(ep-ExtSARBuffer[i-1]);
      //--- LONG?
      if(dir_long)
        {
         if(ep)
           {
            if((step+ExtSarStep)               step+=ExtSarStep;
           }
         if(high            sar=ExtSARBuffer[i-1];
         if(sar>low[i-1])
            sar=low[i-1];
         if(sar>low[i-2])
            sar=low[i-2];
         if(sar>low)
           {
            SaveLastReverse(i,true,step,low,last_high,ep,sar);
            step=ExtSarStep; dir_long=false; ep=low;
            last_low=low;
            ExtSARBuffer[i++]=last_high;
            continue;
           }
         if(ep)
            ep=last_high=high;
        }
      else // SHORT
        {
         if(ep>low)
           {
            if((step+ExtSarStep)               step+=ExtSarStep;
           }
         if(low            sar=ExtSARBuffer[i-1];
         if(sar            sar=high[i-1];
         if(sar            sar=high[i-2];
         if(sar)
           {
            SaveLastReverse(i,false,step,last_low,high,ep,sar);
            step=ExtSarStep;
            dir_long=true;
            ep=high;
            last_high=high;
            ExtSARBuffer[i++]=last_low;
            continue;
           }
         if(ep>low)
            ep=last_low=low;
        }
      ExtSARBuffer[i++]=sar;
     }
//---- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|  save last values to continue further calculations               |
//+------------------------------------------------------------------+
void SaveLastReverse(int reverse,bool dir,double step,double last_low,double last_high,double ep,double sar)
  {
   ExtLastReverse=reverse;
   if(ExtLastReverse      ExtLastReverse=2;
   ExtDirectionLong=dir;
   ExtLastStep=step;
   ExtLastLow=last_low;
   ExtLastHigh=last_high;
   ExtLastEP=ep;
   ExtLastSAR=sar;
  }
//+------------------------------------------------------------------+

 

3. Базовые настройки индикатора.
03-01-201714-32-04NASTROIKI.jpg

Step (шаг) – определяет чувствительность Параболика к изменению цены. По умолчанию, шаг равен 0.02. Чем меньше шаг, тем более достоверные сигналы будет давать индикатор, но они будут немного запаздывать по времени. Чем больше шаг, тем чувствительнее будет индикатор к изменению цены, что выражается в более раннем определении направления тренда, но при этом может увеличиться количество ложных сигналов;
Maximum (максимум) – данный параметр корректирует влияние шага, чтобы избежать искажения результатов при ярко выраженном тренде. По умолчанию, максимум равен 0.2;
Также можно выбрать цвет и размер точек.

 

4. Формула расчёта индикатора.

Расчет.

Для длинных позиций:

SAR (i) = ACCELERATION * (HIGH (i - 1) - SAR (i - 1)) + SAR (i - 1)

Для коротких позиций:

SAR (i) = ACCELERATION * (LOW (i - 1) - SAR (i - 1)) - SAR (i - 1)

где:

SAR (i - 1) — значение индикатора Parabolic SAR на предыдущем баре;
ACCELERATION — фактор ускорения;
HIGH (i - 1) — максимальная цена за предыдущий период;
LOW (i - 1) — минимальная цена за предыдущий период.

 

5. Видеообзор индикатора.

Чем вам поможет индикатор Parabolic SAR ?

 

6. Автор индикатора.

Автор Уэллс Уайлдер (Welles Wilder), описал индикатор в книге "Новые концепции в технических торговых системах".

Уэллс Уайлдер

UELLSUAILDER.jpg

 


СПИСОК И КОМПЛЕКТАЦИЯ ВСЕХ ИНДИКАТОРОВ

Спойлер

#Parabolic 4TF EX & MQL
^X_ParabolicRegression_StopAndReverse EX & MQL
ParabolicRegres EX & MQL
__channeluonsparabolicusar EX & MQL
_SAR_Slave EX & MQL
4 time frame parabolic SAR nmc EX
AO AC SAR Display EX
Brooky_Psar_Levels EX & MQL
Fast_Slow_SAR EX & MQL
FFx_ParabolicSAR EX
FXPT_AO_AC_PSAR45_v1 EX & MQL
hull_parabolic_2 EX & MQL
Ma_Parabolic_Alert_2 EX & MQL
Ma_Parabolic_st EX & MQL
Ma_Parabolic_st2.2 EX & MQL
Ma_Parabolic_v1 EX & MQL
multi_pair_psar_trend_2 EX & MQL
multi_pair_psar_trend_nmc EX & MQL
Nik_PSAR_2B EX & MQL
Parabolic SAR Color - Alert(2)email EX & MQL
parabolic_4cnk EX & MQL
parabolic_best_tro_modified_version EX & MQL
Parabolic_best_TRO_MODIFIED_VERSION (2) EX & MQL
parabolic_rsi_2 EX & MQL
parabolic_rsi_2_mtf EX & MQL
parabolic_sar_2_histo_mtfalertsarrows_-_nmc EX & MQL
parabolic_sar_color_and_alerts_v1.2 EX & MQL
parabolic_sar_color_and_alerts_v1.21 EX & MQL
parabolic_sar_mtf EX & MQL
parabolic_sar2_alerts EX & MQL
Parabolic_SW EX & MQL
Parabolic_SW_Pa EX
Parabolic_ZZ EX & MQL
Parabolic_ZZ_1 EX & MQL
Parabolic3par EX & MQL
ParabolicM EX & MQL
Parabolic-SAR-Color-Alert EX & MQL
Paradox_SAR_Swing EX
psar EX & MQL
SAR Colour EX & MQL
sar EX & MQL
SAR_Bar_v1 EX
SARMACD EX & MQL
signalTable sar EX & MQL
super_sar EX & MQL
ZigZagOnParabolic EX & MQL


ОПИСАНИЯ И СКРИНЫ ИНДИКАТОРОВ

Спойлер

#Parabolic 4TF
30-12-201622-05-39Parabolic4TF.jpg

^X_ParabolicRegression_StopAndReverse
30-12-201622-06-24X_ParabolicRegression_

ParabolicRegres
без скрина

__channeluonsparabolicusar
30-12-201622-07-08__channeluonsparabolic

_SAR_Slave
30-12-201622-07-46_SAR_Slave.jpg

4 time frame parabolic SAR nmc
30-12-201622-08-314timeframeparabolicSAR

AO AC SAR Display
30-12-201622-09-33AOACSARDisplay.jpg

Brooky_Psar_Levels
30-12-201622-10-47Brooky_Psar_Levels.jpg

Fast_Slow_SAR
30-12-201622-13-09Fast_Slow_SAR.jpg

FFx_ParabolicSAR
30-12-201622-13-56FFx_ParabolicSAR.jpg

FXPT_AO_AC_PSAR45_v1
30-12-201622-15-16FXPT_AO_AC_PSAR45_v1.j

hull_parabolic_2
30-12-201622-16-40hull_parabolic_2.jpg

Ma_Parabolic_Alert_2
30-12-201622-17-40Ma_Parabolic_Alert_2.j

Ma_Parabolic_st
30-12-201622-19-10Ma_Parabolic_st.jpg

Ma_Parabolic_st2.2
без скрина

Ma_Parabolic_v1
без скрина

multi_pair_psar_trend_2
30-12-201622-21-14multi_pair_psar_trend_

multi_pair_psar_trend_nmc
без скрина

Nik_PSAR_2B
30-12-201622-23-09Nik_PSAR_2B.jpg

Parabolic SAR Color - Alert(2)email
30-12-201622-23-46ParabolicSARColor-Aler

parabolic_4cnk
30-12-201622-24-29parabolic_4cnk.jpg

parabolic_best_tro_modified_version
30-12-201622-25-26parabolic_best_tro_mod

Parabolic_best_TRO_MODIFIED_VERSION (2)
без скрина

parabolic_rsi_2
30-12-201622-26-30parabolic_rsi_2.jpg

parabolic_rsi_2_mtf
30-12-201622-27-20parabolic_rsi_2_mtf.jp

parabolic_sar_2_histo_mtfalertsarrows_-_nmc
30-12-201622-28-32parabolic_sar_2_histo_

parabolic_sar_color_and_alerts_v1.2
30-12-201622-29-50parabolic_sar_color_an

parabolic_sar_color_and_alerts_v1.21
без скрина

parabolic_sar_mtf
30-12-201622-31-19parabolic_sar_mtf.jpg

parabolic_sar2_alerts
30-12-201622-32-03parabolic_sar2_alerts.

Parabolic_SW
30-12-201622-32-42Parabolic_SW.jpg

Parabolic_SW_Pa
30-12-201622-33-17Parabolic_SW_Pa.jpg

Parabolic_ZZ
30-12-201622-34-10Parabolic_ZZ.jpg

Parabolic_ZZ_1
без скрина

Parabolic3par
30-12-201622-35-41Parabolic3par.jpg

ParabolicM
без скрина

Parabolic-SAR-Color-Alert
30-12-201622-38-47Parabolic-SAR-Color-Al

Paradox_SAR_Swing
30-12-201622-39-53Paradox_SAR_Swing.jpg

psar
30-12-201622-40-47psar.jpg

SAR Colour
без скрина

sar
30-12-201622-42-00sar.jpg

SAR_Bar_v1
03-01-201714-30-39SAR_Bar_v1.jpg

SARMACD
30-12-201622-44-01SARMACD.jpg

signalTable sar
30-12-201622-44-52signalTablesar.jpg

super_sar
30-12-201622-46-03super_sar.jpg

ZigZagOnParabolic
30-12-201622-48-28ZigZagOnParabolic.jpg
 


ПОЛЕЗНЫЕ ССЫЛКИ

Спойлер

Как установить индикатор в терминал МТ4

 

Как тестировать индикатор в терминале МТ4


Как настроить уведомления на почту в MT4


Как компилировать старые MQ4 файлы под новые билды MetaTrader 4

 

 

 

Расшифровка часто встречающихся сокращений в названии индикаторов.

alert - перевод с английского - сигнал. Индикатор при достижении определённых значений, установленных пользователем в настройках, посылает сигнал (разными способами - звуковой, уведомление на почту и так далее).
Пример:

ALERT.jpeg

 

arrows - перевод с английского - стрелки. Индикатор может отображать стрелками на графике возможное движение цены в этом направлении.
Пример:

STRELKI.jpeg

 

Histogram (Hist) - перевод с английского - гистограмма. Показания индикатора в виде гистограммы.
Пример:

GISTOGRAMMA.jpeg

 

mtf - Multi Time Frame - перевод с английского - мультитаймфреймовый индикатор. Индикатор на установленном таймфрейме отображает данные с более старшего периода. Пока свеча старшего периода не закрыта - индикатор может менять свои показания.
Пример:

MTF.jpeg

 

Smoothed - перевод с английского - сглаженный. Индикатор на установленном таймфрейме отображается в виде плавных линий.
Пример:

SGLAZENNYI.jpeg

 


ИСТОРИЯ ОБНОВЛЕНИЙ

Спойлер

1

 

НАБОР_Parabolic_SAR_2017.01.06.zip

 

 

 

 

 

  • Лайк 15
Ссылка на сообщение
Поделиться на другие сайты

  • 2 years later...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...