//+------------------------------------------------------------------+ //| ColorZerolagTriXOSMATrend_x10.mq5 | //| Copyright © 2015, Nikolay Kositsin | //| Khabarovsk, farria@mail.redcom.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2015, Nikolay Kositsin" #property link "farria@mail.redcom.ru" #property description "Индикатор отображает направление движения осциллятора ColorZerolagTriXOSMA с разных таймфреймов" //---- номер версии индикатора #property version "1.00" //---- отрисовка индикатора в главном окне #property indicator_chart_window //---- количество индикаторных буферов 0 #property indicator_buffers 0 //---- не использовано ни одного графического построения #property indicator_plots 0 //+-----------------------------------+ //| Объявление констант | //+-----------------------------------+ #define RESET 0 // константа для возврата терминалу команды на пересчет индикатора #define INDTOTAL 10 // константа для количества отображаемых индикаторов //+----------------------------------------------+ //| Описание перечисления type_font | //| Описание класса CFontName | //+----------------------------------------------+ #include //+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ input ENUM_TIMEFRAMES TimeFrame0=PERIOD_H1; // Период графика 1 input ENUM_TIMEFRAMES TimeFrame1=PERIOD_H2; // Период графика 2 input ENUM_TIMEFRAMES TimeFrame2=PERIOD_H3; // Период графика 3 input ENUM_TIMEFRAMES TimeFrame3=PERIOD_H4; // Период графика 4 input ENUM_TIMEFRAMES TimeFrame4=PERIOD_H6; // Период графика 5 input ENUM_TIMEFRAMES TimeFrame5=PERIOD_H8; // Период графика 6 input ENUM_TIMEFRAMES TimeFrame6=PERIOD_H12; // Период графика 7 input ENUM_TIMEFRAMES TimeFrame7=PERIOD_D1; // Период графика 8 input ENUM_TIMEFRAMES TimeFrame8=PERIOD_W1; // Период графика 9 input ENUM_TIMEFRAMES TimeFrame9=PERIOD_MN1; // Период графика 10 //---- параметры ColorZerolagTriXOSMA input uint smoothing1=15; input uint smoothing2=7; input ENUM_APPLIED_PRICE IPC=PRICE_CLOSE; // Ценовая константа //---- input double Factor1=0.05; input uint TriX_period1=8; //---- input double Factor2=0.10; input uint TriX_period2=21; //---- input double Factor3=0.16; input uint TriX_period3=34; //---- input double Factor4=0.26; input int TriX_period4=55; //---- input double Factor5=0.43; input uint TriX_period5=89; //---- input color CpColor=clrDarkOrchid; // Цвет названия индикатора input color UpColor=clrDodgerBlue; // Цвет перекупленности индикатора input color DnColor=clrMagenta; // Цвет перепроданности индикатора input color ZrColor=clrGray; // Цвет без изменения input int FontSize=11; // Размер шрифта input type_font FontType=Font14; // Тип шрифта input ENUM_BASE_CORNER WhatCorner=CORNER_LEFT_LOWER; // Угол расположения input uint Y_=20; // Расположение по вертикали input uint X_=5; // Расположение по горизонтали //+----------------------------------------------+ string sFontType; int min_rates_total; uint xshift,shift[11]; string sPer[10],sPerA[10],sPerB[10],Cap; ENUM_TIMEFRAMES ePer[10]; //+------------------------------------------------------------------+ //| Получение таймфрейма в виде строки | //+------------------------------------------------------------------+ string GetStringTimeframe(ENUM_TIMEFRAMES timeframe) {return(StringSubstr(EnumToString(timeframe),7,-1));} //+------------------------------------------------------------------+ //| Класс массивов | //+------------------------------------------------------------------+ class CIndArrow { //---- public: double m_ClrInd[1]; int m_Handle; ENUM_TIMEFRAMES m_TimeFrame; }; //---- объявление массивов, которые будут в //---- дальнейшем использованы для получения индикаторных значений CIndArrow Ind[INDTOTAL]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //---- ePer[0]=TimeFrame0; ePer[1]=TimeFrame1; ePer[2]=TimeFrame2; ePer[3]=TimeFrame3; ePer[4]=TimeFrame4; ePer[5]=TimeFrame5; ePer[6]=TimeFrame6; ePer[7]=TimeFrame7; ePer[8]=TimeFrame8; ePer[9]=TimeFrame9; for(int poz=0; poz