DPO on DPO AA8 MTF TT
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dpo on dpo nd aa8 mtf tt@free_fx_pro_5400269987095022286.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «DPO on DPO AA8 MTF TT» — пользовательский технический индикатор для MetaTrader 4, реализующий безтрендовый осциллятор DPO (Detrended Price Oscillator) в многотаймфреймовом режиме. Основной расчёт строится как разница между ценой и скользящей средней, сдвинутой относительно цены, с последующей нормализацией и отображением в отдельном окне графика.
Индикатор поддерживает отображение сигнальной линии, рассчитанной как разница двух скользящих средних от нормализованной основной линии. Встроенная система стрелок позволяет визуально отмечать различные торговые ситуации — пересечения уровней, экстремумы, пересечения сигнальной линии. Доступны настройки отображения стрелок, их позиционирования и типов сигналов.
Продукт предоставляет систему уведомлений: всплывающие сообщения, звуковые оповещения, email- и мобильные уведомления. Поддерживается интерполяция данных между таймфреймами (линейная и квадратичная), а также режим перерисовки или фиксации сигналов на старых барах. Индикатор работает с настраиваемыми периодами, методами усреднения и ценовыми типами.
Настройки программы
| Настройка | Описание |
|---|---|
| 288=D1/M5 //576=D2/M5; //864=D3/M5; //1152=D4/M5; //1440=D5/M5; (History) | Глубина истории — Количество исторических баров для расчёта (288=D1/M5, 576=D2/M5, 864=D3/M5, 1152=D4/M5, 1440=D5/M5) |
| true; (RePaintMTF) | Перерисовка в MTF — Переключатель перерисовки в MTF-режиме: true — разрешить перерисовку, false — фиксировать сигналы |
| TimeFrame | Таймфрейм — Таймфрейм для расчёта индикатора (PERIOD_CURRENT и другие) |
| intQuad; //true; (Interpolate) | Интерполяция — Тип интерполяции между таймфреймами: intNO, intLinear, intQuad |
| PAIR | Символ пары — Символ торговой пары для расчёта индикатора (пустая строка — текущий символ) |
| 12; //12; //288 (Fast1) | Быстрый период 1 — Быстрый период первой скользящей средней |
| Slow1 | Медленный период 1 — Медленный период первой скользящей средней |
| Shift11 | Сдвиг 11 — Сдвиг первой скользящей средней |
| Shift12 | Сдвиг 12 — Второй сдвиг первой скользящей средней |
| MODE_SMMA; // (Mode1) | Метод усреднения 1 — Метод усреднения первой скользящей: MODE_SMA, MODE_SMMA и другие |
| PRICE_TYPICAL; //PRICE_WEIGHTED; (Price1) | Ценовой тип 1 — Ценовой тип для первой скользящей: PRICE_TYPICAL, PRICE_WEIGHTED и другие |
| NormPeriod | Период нормализации — Период нормализации основной линии через стандартное отклонение |
| MODE_SMMA; // (NormMode) | Метод нормализации — Метод усреднения для расчёта нормализации: MODE_SMA, MODE_SMMA и другие |
| 9; //Signal (Fast2) | Быстрый период 2 — Быстрый период сигнальной скользящей средней |
| Slow2 | Медленный период 2 — Медленный период сигнальной скользящей средней |
| Shift21 | Сдвиг 21 — Сдвиг сигнальной скользящей средней |
| Shift22 | Сдвиг 22 — Второй сдвиг сигнальной скользящей средней |
| MODE_SMMA; // (Mode2) | Метод усреднения 2 — Метод усреднения сигнальной скользящей: MODE_SMA, MODE_SMMA и другие |
| CrossLevel | Уровень пересечения — Уровень пересечения для определения зон и сигналов |
| TrendLevel | Уровень тренда — Уровень тренда для определения трендовых сигналов |
| enum arrows { ArrowsOFF, arSignal50, arMoreLess, arMoreLessLV, arCrossSignal, arExtremeLV, arCross50 (WhichArrows) | Тип стрелок — Тип отображаемых стрелок: ArrowsOFF, arSignal50, arMoreLess, arMoreLessLV, arCrossSignal, arExtremeLV, arCross50 и другие |
| IN (ShowArrows) | Отображение стрелок — Позиция отображения стрелок: HideArrows, INSIDE, CENTER, OUTSIDE |
| На каком баре рисовать Стрелку: =0 - рисовать на текущем (до закрытия - может исчезнуть) (ARROWBAR) | На каком баре рисовать Стрелку: =0 - рисовать на текущем (до закрытия - может исчезнуть) — На каком баре рисовать стрелку: 0 — рисовать на текущем баре (до закрытия может исчезнуть) |
| Дистанция от High/Low свечи (ArrowGap) | Дистанция от High/Low свечи — Дистанция от High/Low свечи для позиционирования стрелки |
| allAlerts; // (WhichAlerts) | Тип алертов — Тип алертов для уведомлений: allAlerts и другие варианты |
| SIGNALBAR | Бар сигнала — Бар сигнала для определения момента срабатывания алертов |
| "expert.wav"; //"stops.wav" //"alert2.wav" //"news.wav"; // (SoundFile) | Звуковой файл — Путь к звуковому файлу для оповещений |
| HISTO; //DOTS; // (ShowDPO) | Отображение DPO — Тип отображения основной линии: HideThis, DOTS, LINE, HISTO |
| crossSignal; // (Color) | Цветовая схема — Цветовая схема отображения: ColorOFF, moreLess, crossSignal, crossZero, crossLev |
| Size | Размер — Размер отображаемых элементов индикатора |
| 159; (DotCode) | Код точки — Код точки (стрелки) для отрисовки индикатора |
Поиск по коду файла
#property description "Detrended Price Oscillator [DPO] — безтрендовый осциллятор, ввиде разницы между"
#property description "текущей ценой и простой скользящей средней;"
#property description "где МА сдвинута относительно Цены на половину периода и ещё смещена на один бар."
#property description "Дивергенция образуется, когда Цена достигает нового максимума/минимума,"
#property description "а DPO не удается создать новый пик/впадину."
#property description " "
#property description "Индикатор НЕ перерисовывается в режиме MTF если RePaintMTF=false!!!" //"НЕ перерисовывается! в режиме MTF."
#property description "ARROWBAR и SIGNALBAR скорректированы для MTF."
#property description " " //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "
#property description "Почта: t*******e*@mail.ru"
#property version "5.22" //из "5.11"
#property indicator_separate_window //chart_window
#property indicator_buffers 4
#property indicator_color1 clrRoyalBlue //MediumPurple //MediumOrchid //LightSkyBlue //DodgerBlue //
#property indicator_color2 clrLightSteelBlue //LimeGreen //SeaGreen //LightSkyBlue //SpringGreen //LightSkyBlue //MediumSeaGreen //PaleVioletRed
#property indicator_color3 clrCrimson //Magenta //MediumVioletRed //LightPink //Coral //HotPink //LightCoral //LightPink //Red //DimGray
#property indicator_color4 clrYellow //White //Lime //Magenta //LightCyan //GreenYellow //Lime //Gold
#property indicator_style1 STYLE_DASH
#property indicator_style2 STYLE_DASH
#property indicator_style3 STYLE_DASH
#property indicator_style4 STYLE_DOT
#property indicator_levelcolor clrDarkSlateGray //DimGray //C'85,86,88' //DarkSlateBlue //SteelBlue //DarkGreen //SlateGray // //
#property indicator_levelstyle STYLE_DOT
enum Iterpolation { intNO,/*No interpolation*/ intLinear,/*Linear Interpolation*/ intQuad/*Quadratic Interpolation*/ };
enum arrows { ArrowsOFF,/*OFF*/ arSignal50,/*Signal cross Center*/ arMoreLess,/*Index more/less Previous*/ arMoreLessLV,/*Index more/less Previous on Level*/ arCrossSignal,/*Index cross Signal*/ arExtremeLV,/*Index Extremum on Level */ arCross50,/*Index cross Center*/ arCrossLev,/*Index cross Level*/ arMoreLessVLD,/*trend VLADISLAVIAN*/ allArrows/*All setups*/ };
enum showAR { HideArrows, INSIDE, CENTER, OUTSIDE }; //enum showAR { aDoNotCALC, HideArrows, aOnCHART, aOnINDIK };
enum showCD { HideThis, DOTS, LINE, HISTO };
enum cciCLR { ColorOFF, moreLess, crossSignal, crossZero, crossLev };
extern int History = 3456; //288=D1/M5 //576=D2/M5; //864=D3/M5; //1152=D4/M5; //1440=D5/M5;
extern bool RePaintMTF = true; //true;
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern Iterpolation Interpolate = intNO; //intQuad; //true;
bool SignalMTF = true;
extern string PAIR = "";
extern int Fast1 = 1; //12; //12; //288
extern int Slow1 = 33;
extern int Shift11 = 0;
extern int Shift12 = 17;
extern ENUM_MA_METHOD Mode1 = MODE_SMA; //MODE_SMMA; //
extern ENUM_APPLIED_PRICE Price1 = PRICE_CLOSE; //PRICE_TYPICAL; //PRICE_WEIGHTED;
extern int NormPeriod = 17;
extern ENUM_MA_METHOD NormMode = MODE_SMA; //MODE_SMMA; //
extern int Fast2 = 1; //9; //Signal
extern int Slow2 = 33;
extern int Shift21 = 0;
extern int Shift22 = 17;
extern ENUM_MA_METHOD Mode2 = MODE_SMA; //MODE_SMMA; //
bool ShowSignal = true;
extern int CrossLevel = 100;
extern int TrendLevel = 200;
extern arrows WhichArrows = arCrossSignal; //enum arrows { ArrowsOFF, arSignal50, arMoreLess, arMoreLessLV, arCrossSignal, arExtremeLV, arCross50, arCrossLev, arMoreLessVLD, allArrows };
extern showAR ShowArrows = OUTSIDE; //IN
extern int ARROWBAR = 0; //На каком баре рисовать Стрелку: =0 - рисовать на текущем (до закрытия - может исчезнуть)
extern int ArrowGap = 3; //Дистанция от High/Low свечи
extern color ColorBUY = clrWhite, //SpringGreen, //LightBlue, //LimeGreen, //LightCyan, //Aqua, // //DarkTurquoise, //FireBrick, //Magenta, //Aqua, //
ColorSELL = clrRed; //HotPink; //HotPink; //LightSalmon; //Gold; // //HotPink; //Orange; //SlateBlue; //DodgerBlue; //Lavender; //Gold; //
extern int CodeBUY = 233,
CodeSELL = 234,
ArrowSize = 0;
extern arrows WhichAlerts = arCrossSignal; //allAlerts; //
extern int SIGNALBAR = 1;
extern bool AlertsMessage = true, //false,
AlertsSound = true, //false,
AlertsEmail = false,
AlertsMobile = false;
extern string SoundFile = "alert2.wav"; //"expert.wav"; //"stops.wav" //"alert2.wav" //"news.wav"; //
extern showCD ShowDPO = LINE; //HISTO; //DOTS; //
extern cciCLR Color = crossZero; //crossSignal; //
extern int Size = 2;
extern int DotCode = 167; //159;
double CCUP[], CCDN[], MAIN[], SIGMA[], FLAG[], TEMP[]; bool Once=false;
double levZR, levLO, levHI, tevLO, tevHI;
int fast1, slow1, normPer, fast2, slow2, MTF, TFK, MTK, MAX, ARB, SGB;
int shift11, shift12, shift21, shift22;
string TWIN, PREF; bool PlotLN=false; datetime TimeArr=0, TimeBar=0;
int init()
{
// код доступен только после оплаты
}
int deinit() { ALL_OBJ_DELETE(); Comment(""); return(0); }
void ALL_OBJ_DELETE()
{
string name;
for (int s=ObjectsTotal()-1; s>=0; s--) {
name=ObjectName(s);
if (StringSubstr(name,0,StringLen(PREF))==PREF) ObjectDelete(name); }
}
datetime LastBarOpenTime=0;
bool NewBarTF(int period)
{
datetime BarOpenTime=iTime(NULL,period,0);
if (BarOpenTime!=LastBarOpenTime) {
LastBarOpenTime=BarOpenTime;
return (true); }
else
return (false);
}
datetime dtmPrevTime;
bool blnNewBar(ENUM_TIMEFRAMES TF)
{
if (dtmPrevTime==iTime(NULL,TF,0)) return(false);
dtmPrevTime=iTime(NULL,TF,0); return(true);
}
int start()
{
// код доступен только после оплаты
} //limit+=MAX; Comment(limit);
for (i=0; i<6; i++) {
SetIndexEmptyValue(i,0.0); //--- значение 0 отображаться не будет
if (History>MAX) SetIndexDrawBegin(i,Bars-History); //--- пропуск отрисовки первых баров
if (History<=MAX) SetIndexDrawBegin(i,MAX*3); } //--- пропуск отрисовки первых баров
for (i=limit; i>=0; i--) //(Close[i]-Low[iLowest(NULL,0,MODE_LOW,fast1,i)]) / (High[iHighest(NULL,0,MODE_HIGH,fast1,i)]-Low[iLowest(NULL,0,MODE_LOW,fast1,i)]) * 100;
{
y = (RePaintMTF) ? iBarShift(TWIN,MTF,Time[i],false) : i;
TEMP[i]=0; TEMP[i] = ( iMA(TWIN,MTF,fast1,shift11,Mode1,Price1,y) - iMA(TWIN,MTF,slow1,shift12,Mode1,Price1,y) ) / MarketInfo(TWIN,MODE_POINT); //iCCI(TWIN,MTF,fast1,CCIPrice,y); // /sqrt(iVolume(TWIN,MTF,y)) /pow(MarketInfo(TWIN,MODE_POINT),1.0) *100; //( iMA(NULL,tf1,f1,0,MAMode,MAPrice,y1) - iMA(NULL,tf1,s1,0,MAMode,MAPrice,y1) ) /_Point;
if (Interpolate==0 || (i>0 && y==iBarShift(NULL,MTF,Time[i-1]))) continue;
interpolate(TEMP,MTF,Interpolate,i);
}
for (i=limit; i>=0; i--)
{
double stDev = iStdDevOnArray(TEMP,Bars,normPer,0,NormMode,i);
MAIN[i]=0; MAIN[i] = (NormPeriod>1 && stDev!=0) ? TEMP[i] / stDev *15 : TEMP[i];
}
for (i=limit; i>=0; i--)
{
SIGMA[i]=0; if (Fast2>0 && Slow2>0) SIПоказано первые 50% кода (символов: 17576)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.