commit ce28e11d350d14dda3ba9ac9973b80d0e3a52e32 Author: GeneralTradingSarl Date: Tue Jun 24 00:49:58 2025 +0100 Initial commit: MQL5 Indicators Collection (MetaTrader 5) - Part 3 diff --git a/MC_HTF - indicator for MetaTrader 5/MC.mq5 b/MC_HTF - indicator for MetaTrader 5/MC.mq5 new file mode 100644 index 0000000..8aaeb8f --- /dev/null +++ b/MC_HTF - indicator for MetaTrader 5/MC.mq5 @@ -0,0 +1,178 @@ +//+---------------------------------------------------------------------+ +//| MC.mq5 | +//| Copyright © 2005, MetaQuotes Software Corp. | +//| http://www.metaquotes.net | +//+---------------------------------------------------------------------+ +//| Для работы индикатора следует положить файл SmoothAlgorithms.mqh | +//| в папку (директорию): каталог_данных_терминала\\MQL5\Include | +//+---------------------------------------------------------------------+ +#property copyright "Copyright © 2005, MetaQuotes Software Corp." +#property link "http://www.metaquotes.net" +//---- номер версии индикатора +#property version "1.00" +//---- отрисовка индикатора в отдельном окне +#property indicator_separate_window +//---- количество индикаторных буферов 2 +#property indicator_buffers 2 +//---- использовано всего два графических построения +#property indicator_plots 2 +//+-----------------------------------+ +//| Параметры отрисовки индикатора | +//+-----------------------------------+ +//---- отрисовка индикатора в виде заливки между двумя линиями +#property indicator_type1 DRAW_FILLING +//---- в качестве цветов заливки индикатора использованы цвета SteelBlue и HotPink цвета +#property indicator_color1 clrSteelBlue,clrHotPink +//--- отображение метки индикатора +#property indicator_label1 "XMACD Cloud" +//+-----------------------------------+ +//| Описание классов усреднений | +//+-----------------------------------+ +#include +//+-----------------------------------+ +//---- объявление переменных класса CXMA из файла SmoothAlgorithms.mqh +CXMA XMA1,XMA2,XMA3; +//+-----------------------------------+ +//| объявление перечислений | +//+-----------------------------------+ +enum Applied_price_ //Тип константы + { + PRICE_CLOSE_ = 1, //Close + PRICE_OPEN_, //Open + PRICE_HIGH_, //High + PRICE_LOW_, //Low + PRICE_MEDIAN_, //Median Price (HL/2) + PRICE_TYPICAL_, //Typical Price (HLC/3) + PRICE_WEIGHTED_, //Weighted Close (HLCC/4) + PRICE_SIMPL_, //Simpl Price (OC/2) + PRICE_QUARTER_, //Quarted Price (HLOC/4) + PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price + PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price + PRICE_DEMARK_ //Demark Price + }; +//+-----------------------------------+ +//| объявление перечислений | +//+-----------------------------------+ +/*enum Smooth_Method - перечисление объявлено в файле SmoothAlgorithms.mqh + { + MODE_SMA_, //SMA + MODE_EMA_, //EMA + MODE_SMMA_, //SMMA + MODE_LWMA_, //LWMA + MODE_JJMA, //JJMA + MODE_JurX, //JurX + MODE_ParMA, //ParMA + MODE_T3, //T3 + MODE_VIDYA, //VIDYA + MODE_AMA, //AMA + }; */ +//+-----------------------------------+ +//| ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА | +//+-----------------------------------+ +input Smooth_Method XMA_Method=MODE_T3; //метод усреднения гистограммы +input int Fast_XMA = 12; //период быстрого мувинга +input int Slow_XMA = 26; //период медленного мувинга +input int XPhase = 100; //параметр усреднения мувингов, +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- Для VIDIA это период CMO, для AMA это период медленной скользящей +input Smooth_Method Signal_Method=MODE_JJMA; //метод усреднения сигнальной линии +input int Signal_XMA=9; //период сигнальной линии +input int Signal_Phase=100; // параметр сигнальной линии, +//---- изменяющийся в пределах -100 ... +100, +//---- влияет на качество переходного процесса; +input Applied_price_ AppliedPrice=PRICE_CLOSE_;//ценовая константа +//+-----------------------------------+ +//---- Объявление целых переменных начала отсчёта данных +int min_rates_total,min_rates_1; +//---- объявление динамических массивов, которые будут в +// дальнейшем использованы в качестве индикаторных буферов +double XMACDBuffer[],SignBuffer[]; +//+------------------------------------------------------------------+ +//| XMACD indicator initialization function | +//+------------------------------------------------------------------+ +void OnInit() + { +//---- Инициализация переменных начала отсчёта данных + min_rates_1=MathMax(GetStartBars(XMA_Method,Fast_XMA,XPhase),GetStartBars(XMA_Method,Slow_XMA,XPhase)); + min_rates_total=min_rates_1+GetStartBars(Signal_Method,Signal_XMA,Signal_Phase)+2; + +//---- превращение динамического массива XMACDBuffer в индикаторный буфер + SetIndexBuffer(0,XMACDBuffer,INDICATOR_DATA); +//---- превращение динамического массива SignBuffer в индикаторный буфер + SetIndexBuffer(1,SignBuffer,INDICATOR_DATA); + +//---- осуществление сдвига начала отсчёта отрисовки индикатора + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); + +//---- установка алертов на недопустимые значения внешних переменных + XMA1.XMALengthCheck("Fast_XMA", Fast_XMA); + XMA1.XMALengthCheck("Slow_XMA", Slow_XMA); + XMA1.XMALengthCheck("Signal_XMA", Signal_XMA); +//---- установка алертов на недопустимые значения внешних переменных + XMA1.XMAPhaseCheck("XPhase", XPhase, XMA_Method); + XMA1.XMAPhaseCheck("Signal_Phase", Signal_Phase, Signal_Method); + +//---- инициализации переменной для короткого имени индикатора + string shortname; + string Smooth1=XMA1.GetString_MA_Method(XMA_Method); + string Smooth2=XMA1.GetString_MA_Method(Signal_Method); + StringConcatenate(shortname, + "XMACD( ",Fast_XMA,", ",Slow_XMA,", ",Signal_XMA,", ",Smooth1,", ",Smooth2," )"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,0); +//---- завершение инициализации + } +//+------------------------------------------------------------------+ +//| XMACD iteration function | +//+------------------------------------------------------------------+ +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[] + ) + { +//---- Проверка количества баров на достаточность для расчёта + if(rates_totalrates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора + { + first=0; // стартовый номер для расчёта всех баров первого цикла + } + else // стартовый номер для расчёта новых баров + { + first=prev_calculated-1; + } + +//---- Основной цикл расчёта индикатора + for(bar=first; bar Made with вќ¤пёЏ for the trading community. diff --git a/MC_HTF - indicator for MetaTrader 5/expert.png b/MC_HTF - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MC_HTF - indicator for MetaTrader 5/expert.png differ diff --git a/MC_HTF - indicator for MetaTrader 5/indicator.png b/MC_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MC_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/MC_HTF - indicator for MetaTrader 5/logo-2.png b/MC_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MC_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/MC_HTF - indicator for MetaTrader 5/picture__53.png b/MC_HTF - indicator for MetaTrader 5/picture__53.png new file mode 100644 index 0000000..2d6b4fa Binary files /dev/null and b/MC_HTF - indicator for MetaTrader 5/picture__53.png differ diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/README.md b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..655b6ed --- /dev/null +++ b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_demarker_sign.mq5` + +### Screenshots: +![Screenshot](picture_1.png) +![Screenshot](picture_2.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/indicator.png b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/logo-2.png b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/metro_demarker_sign.mq5 b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/metro_demarker_sign.mq5 new file mode 100644 index 0000000..1f761a4 --- /dev/null +++ b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/metro_demarker_sign.mq5 @@ -0,0 +1,212 @@ +//+------------------------------------------------------------------+ +//| METRO_DeMarker_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_DeMarker Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_DeMarker Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodDeMarker=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int DeMarker_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodDeMarker); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора DeMarker + DeMarker_Handle=iDeMarker(NULL,0,PeriodDeMarker); + if(DeMarker_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора DeMarker"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodDeMarker,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(DeMarker_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(DeMarker_Handle,0,0,to_copy,DeMarker)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + DeMarker0=DeMarker[bar]*100; + //--- + fmax0=DeMarker0+2*StepSizeFast; + fmin0=DeMarker0-2*StepSizeFast; + //--- + if(DeMarker0>fmax1) ftrend=+1; + if(DeMarker00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=DeMarker0+2*StepSizeSlow; + smin0=DeMarker0-2*StepSizeSlow; + //--- + if(DeMarker0>smax1) strend=+1; + if(DeMarker00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_1.png b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_1.png new file mode 100644 index 0000000..9d0c004 Binary files /dev/null and b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_1.png differ diff --git a/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_2.png b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_2.png new file mode 100644 index 0000000..17296fd Binary files /dev/null and b/METRO_DeMarker_HTF_Signal - indicator for MetaTrader 5/picture_2.png differ diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/README.md b/METRO_DeMarker_Sign - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..a570da5 --- /dev/null +++ b/METRO_DeMarker_Sign - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_demarker_sign.mq5` + +### Screenshots: +![Screenshot](picture__32.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/expert.png b/METRO_DeMarker_Sign - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_DeMarker_Sign - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/indicator.png b/METRO_DeMarker_Sign - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_DeMarker_Sign - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/logo-2.png b/METRO_DeMarker_Sign - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_DeMarker_Sign - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/metro_demarker_sign.mq5 b/METRO_DeMarker_Sign - indicator for MetaTrader 5/metro_demarker_sign.mq5 new file mode 100644 index 0000000..1f761a4 --- /dev/null +++ b/METRO_DeMarker_Sign - indicator for MetaTrader 5/metro_demarker_sign.mq5 @@ -0,0 +1,212 @@ +//+------------------------------------------------------------------+ +//| METRO_DeMarker_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_DeMarker Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_DeMarker Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodDeMarker=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int DeMarker_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodDeMarker); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора DeMarker + DeMarker_Handle=iDeMarker(NULL,0,PeriodDeMarker); + if(DeMarker_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора DeMarker"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodDeMarker,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(DeMarker_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(DeMarker_Handle,0,0,to_copy,DeMarker)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + DeMarker0=DeMarker[bar]*100; + //--- + fmax0=DeMarker0+2*StepSizeFast; + fmin0=DeMarker0-2*StepSizeFast; + //--- + if(DeMarker0>fmax1) ftrend=+1; + if(DeMarker00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=DeMarker0+2*StepSizeSlow; + smin0=DeMarker0-2*StepSizeSlow; + //--- + if(DeMarker0>smax1) strend=+1; + if(DeMarker00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_DeMarker_Sign - indicator for MetaTrader 5/picture__32.png b/METRO_DeMarker_Sign - indicator for MetaTrader 5/picture__32.png new file mode 100644 index 0000000..b6c180c Binary files /dev/null and b/METRO_DeMarker_Sign - indicator for MetaTrader 5/picture__32.png differ diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/README.md b/METRO_HTF_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..540909c --- /dev/null +++ b/METRO_HTF_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_sign.mq5` + +### Screenshots: +![Screenshot](picture_1__5.png) +![Screenshot](picture_2__5.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/indicator.png b/METRO_HTF_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_HTF_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/logo-2.png b/METRO_HTF_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_HTF_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/metro_sign.mq5 b/METRO_HTF_Signal - indicator for MetaTrader 5/metro_sign.mq5 new file mode 100644 index 0000000..1adcf62 --- /dev/null +++ b/METRO_HTF_Signal - indicator for MetaTrader 5/metro_sign.mq5 @@ -0,0 +1,213 @@ +//+------------------------------------------------------------------+ +//| METRO_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован зеленый цвет +#property indicator_color2 clrLime +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodRSI=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Тип цены или handle +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int RSI_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodRSI); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора RSI + RSI_Handle=iRSI(NULL,0,PeriodRSI,Applied_price); + if(RSI_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора RSI"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodRSI,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(RSI_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(RSI_Handle,0,0,to_copy,RSI)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + RSI0=RSI[bar]; + //--- + fmax0=RSI0+2*StepSizeFast; + fmin0=RSI0-2*StepSizeFast; + //--- + if(RSI0>fmax1) ftrend=+1; + if(RSI00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=RSI0+2*StepSizeSlow; + smin0=RSI0-2*StepSizeSlow; + //--- + if(RSI0>smax1) strend=+1; + if(RSI00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/picture_1__5.png b/METRO_HTF_Signal - indicator for MetaTrader 5/picture_1__5.png new file mode 100644 index 0000000..bb94a7f Binary files /dev/null and b/METRO_HTF_Signal - indicator for MetaTrader 5/picture_1__5.png differ diff --git a/METRO_HTF_Signal - indicator for MetaTrader 5/picture_2__5.png b/METRO_HTF_Signal - indicator for MetaTrader 5/picture_2__5.png new file mode 100644 index 0000000..4c0a82a Binary files /dev/null and b/METRO_HTF_Signal - indicator for MetaTrader 5/picture_2__5.png differ diff --git a/METRO_Sign - indicator for MetaTrader 5/README.md b/METRO_Sign - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..0a0b56e --- /dev/null +++ b/METRO_Sign - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_sign.mq5` + +### Screenshots: +![Screenshot](picture__31.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_Sign - indicator for MetaTrader 5/expert.png b/METRO_Sign - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_Sign - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_Sign - indicator for MetaTrader 5/indicator.png b/METRO_Sign - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_Sign - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_Sign - indicator for MetaTrader 5/logo-2.png b/METRO_Sign - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_Sign - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_Sign - indicator for MetaTrader 5/metro_sign.mq5 b/METRO_Sign - indicator for MetaTrader 5/metro_sign.mq5 new file mode 100644 index 0000000..1adcf62 --- /dev/null +++ b/METRO_Sign - indicator for MetaTrader 5/metro_sign.mq5 @@ -0,0 +1,213 @@ +//+------------------------------------------------------------------+ +//| METRO_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован зеленый цвет +#property indicator_color2 clrLime +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodRSI=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Тип цены или handle +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int RSI_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodRSI); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора RSI + RSI_Handle=iRSI(NULL,0,PeriodRSI,Applied_price); + if(RSI_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора RSI"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodRSI,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(RSI_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(RSI_Handle,0,0,to_copy,RSI)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + RSI0=RSI[bar]; + //--- + fmax0=RSI0+2*StepSizeFast; + fmin0=RSI0-2*StepSizeFast; + //--- + if(RSI0>fmax1) ftrend=+1; + if(RSI00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=RSI0+2*StepSizeSlow; + smin0=RSI0-2*StepSizeSlow; + //--- + if(RSI0>smax1) strend=+1; + if(RSI00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_Sign - indicator for MetaTrader 5/picture__31.png b/METRO_Sign - indicator for MetaTrader 5/picture__31.png new file mode 100644 index 0000000..b9eabf1 Binary files /dev/null and b/METRO_Sign - indicator for MetaTrader 5/picture__31.png differ diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/README.md b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..6951132 --- /dev/null +++ b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_stochastic_sign.mq5` + +### Screenshots: +![Screenshot](picture_1__6.png) +![Screenshot](picture_2__6.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/indicator.png b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/logo-2.png b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/metro_stochastic_sign.mq5 b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/metro_stochastic_sign.mq5 new file mode 100644 index 0000000..e51cc0f --- /dev/null +++ b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/metro_stochastic_sign.mq5 @@ -0,0 +1,219 @@ +//+------------------------------------------------------------------+ +//| METRO_Stochastic_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_Stochastic Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_Stochastic Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint KPeriod=5; +input uint DPeriod=3; +input int Slowing=3; +input ENUM_MA_METHOD MA_Method=MODE_SMA; +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +input ENUM_STO_PRICE Applied_price=STO_LOWHIGH; // Тип цены или handle +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int Stochastic_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(KPeriod+DPeriod+Slowing); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора Stochastic + Stochastic_Handle=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MA_Method,Applied_price); + if(Stochastic_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора Stochastic"); + return(INIT_FAILED); + } + +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); + +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(", + KPeriod,", ",DPeriod,", ",Slowing,", ",EnumToString(MA_Method),", ",EnumToString(Applied_price),", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(Stochastic_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(Stochastic_Handle,0,0,to_copy,Stochastic)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + Stochastic0=Stochastic[bar]*100; + //--- + fmax0=Stochastic0+2*StepSizeFast; + fmin0=Stochastic0-2*StepSizeFast; + //--- + if(Stochastic0>fmax1) ftrend=+1; + if(Stochastic00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=Stochastic0+2*StepSizeSlow; + smin0=Stochastic0-2*StepSizeSlow; + //--- + if(Stochastic0>smax1) strend=+1; + if(Stochastic00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_1__6.png b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_1__6.png new file mode 100644 index 0000000..6617d99 Binary files /dev/null and b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_1__6.png differ diff --git a/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_2__6.png b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_2__6.png new file mode 100644 index 0000000..ab54648 Binary files /dev/null and b/METRO_Stochastic_HTF_Signal - indicator for MetaTrader 5/picture_2__6.png differ diff --git a/METRO_Stochastic_Sign - indicator for MetaTrader 5/README.md b/METRO_Stochastic_Sign - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..9a63040 --- /dev/null +++ b/METRO_Stochastic_Sign - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_stochastic_sign.mq5` + +### Screenshots: +![Screenshot](picture__52.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_Stochastic_Sign - indicator for MetaTrader 5/indicator.png b/METRO_Stochastic_Sign - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_Stochastic_Sign - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_Stochastic_Sign - indicator for MetaTrader 5/logo-2.png b/METRO_Stochastic_Sign - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_Stochastic_Sign - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_Stochastic_Sign - indicator for MetaTrader 5/metro_stochastic_sign.mq5 b/METRO_Stochastic_Sign - indicator for MetaTrader 5/metro_stochastic_sign.mq5 new file mode 100644 index 0000000..e51cc0f --- /dev/null +++ b/METRO_Stochastic_Sign - indicator for MetaTrader 5/metro_stochastic_sign.mq5 @@ -0,0 +1,219 @@ +//+------------------------------------------------------------------+ +//| METRO_Stochastic_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован розовый цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_Stochastic Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_Stochastic Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint KPeriod=5; +input uint DPeriod=3; +input int Slowing=3; +input ENUM_MA_METHOD MA_Method=MODE_SMA; +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +input ENUM_STO_PRICE Applied_price=STO_LOWHIGH; // Тип цены или handle +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int Stochastic_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(KPeriod+DPeriod+Slowing); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора Stochastic + Stochastic_Handle=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MA_Method,Applied_price); + if(Stochastic_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора Stochastic"); + return(INIT_FAILED); + } + +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); + +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(", + KPeriod,", ",DPeriod,", ",Slowing,", ",EnumToString(MA_Method),", ",EnumToString(Applied_price),", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(Stochastic_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(Stochastic_Handle,0,0,to_copy,Stochastic)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + Stochastic0=Stochastic[bar]*100; + //--- + fmax0=Stochastic0+2*StepSizeFast; + fmin0=Stochastic0-2*StepSizeFast; + //--- + if(Stochastic0>fmax1) ftrend=+1; + if(Stochastic00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=Stochastic0+2*StepSizeSlow; + smin0=Stochastic0-2*StepSizeSlow; + //--- + if(Stochastic0>smax1) strend=+1; + if(Stochastic00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_Stochastic_Sign - indicator for MetaTrader 5/picture__52.png b/METRO_Stochastic_Sign - indicator for MetaTrader 5/picture__52.png new file mode 100644 index 0000000..6e967e0 Binary files /dev/null and b/METRO_Stochastic_Sign - indicator for MetaTrader 5/picture__52.png differ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/README.md b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..780133f --- /dev/null +++ b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_wpr_sign.mq5` + +### Screenshots: +![Screenshot](picture_1__3.png) +![Screenshot](picture_2__3.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/expert.png b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/indicator.png b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/logo-2.png b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/metro_wpr_sign.mq5 b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/metro_wpr_sign.mq5 new file mode 100644 index 0000000..3213bd2 --- /dev/null +++ b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/metro_wpr_sign.mq5 @@ -0,0 +1,213 @@ +//+------------------------------------------------------------------+ +//| METRO_WPR_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO_WPR" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован красный цвет +#property indicator_color1 clrRed +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_WPR Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_WPR Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodWPR=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int WPR_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodWPR); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора WPR + WPR_Handle=iWPR(NULL,0,PeriodWPR); + if(WPR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора WPR"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); + +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodWPR,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(WPR_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(WPR_Handle,0,0,to_copy,WPR)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + WPR0=WPR[bar]+100; + //--- + fmax0=WPR0+2*StepSizeFast; + fmin0=WPR0-2*StepSizeFast; + //--- + if(WPR0>fmax1) ftrend=+1; + if(WPR00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=WPR0+2*StepSizeSlow; + smin0=WPR0-2*StepSizeSlow; + //--- + if(WPR0>smax1) strend=+1; + if(WPR00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_1__3.png b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_1__3.png new file mode 100644 index 0000000..76cc918 Binary files /dev/null and b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_1__3.png differ diff --git a/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_2__3.png b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_2__3.png new file mode 100644 index 0000000..16f8918 Binary files /dev/null and b/METRO_WPR_HTF_Signal - indicator for MetaTrader 5/picture_2__3.png differ diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/README.md b/METRO_WPR_Sign - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..364cf2f --- /dev/null +++ b/METRO_WPR_Sign - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_wpr_sign.mq5` + +### Screenshots: +![Screenshot](picture__47.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/expert.png b/METRO_WPR_Sign - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_WPR_Sign - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/indicator.png b/METRO_WPR_Sign - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_WPR_Sign - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/logo-2.png b/METRO_WPR_Sign - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_WPR_Sign - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/metro_wpr_sign.mq5 b/METRO_WPR_Sign - indicator for MetaTrader 5/metro_wpr_sign.mq5 new file mode 100644 index 0000000..3213bd2 --- /dev/null +++ b/METRO_WPR_Sign - indicator for MetaTrader 5/metro_wpr_sign.mq5 @@ -0,0 +1,213 @@ +//+------------------------------------------------------------------+ +//| METRO_WPR_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO_WPR" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован красный цвет +#property indicator_color1 clrRed +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_WPR Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DodgerBlue цвет +#property indicator_color2 clrDodgerBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_WPR Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodWPR=7; // Период индикатора +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int WPR_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=int(PeriodWPR); + min_rates_total=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора WPR + WPR_Handle=iWPR(NULL,0,PeriodWPR); + if(WPR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора WPR"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); + +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"METRO_Sign(",PeriodWPR,", ",StepSizeFast,", ",StepSizeSlow,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(WPR_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(WPR_Handle,0,0,to_copy,WPR)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + WPR0=WPR[bar]+100; + //--- + fmax0=WPR0+2*StepSizeFast; + fmin0=WPR0-2*StepSizeFast; + //--- + if(WPR0>fmax1) ftrend=+1; + if(WPR00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=WPR0+2*StepSizeSlow; + smin0=WPR0-2*StepSizeSlow; + //--- + if(WPR0>smax1) strend=+1; + if(WPR00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_WPR_Sign - indicator for MetaTrader 5/picture__47.png b/METRO_WPR_Sign - indicator for MetaTrader 5/picture__47.png new file mode 100644 index 0000000..036830c Binary files /dev/null and b/METRO_WPR_Sign - indicator for MetaTrader 5/picture__47.png differ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/README.md b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..af1d6ef --- /dev/null +++ b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_xrsx_htf_signal.mq5` + +### Screenshots: +![Screenshot](picture_1__2.png) +![Screenshot](picture_2__2.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/expert.png b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/indicator.png b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/logo-2.png b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/metro_xrsx_htf_signal.mq5 b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/metro_xrsx_htf_signal.mq5 new file mode 100644 index 0000000..9e10111 --- /dev/null +++ b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/metro_xrsx_htf_signal.mq5 @@ -0,0 +1,368 @@ +//+------------------------------------------------------------------+ +//| METRO_XRSX_HTF_Signal.mq5 | +//| Copyright © 2016, Nikolay Kositsin | +//| Khabarovsk, farria@mail.redcom.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2016, Nikolay Kositsin" +#property link "farria@mail.redcom.ru" +//---- номер версии индикатора +#property version "1.60" +//+------------------------------------------------+ +//| Параметры отрисовки индикатора | +//+------------------------------------------------+ +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +#property indicator_buffers 1 +#property indicator_plots 1 +//+------------------------------------------------+ +//| Объявление констант | +//+------------------------------------------------+ +#define INDICATOR_NAME "METRO_XRSX" // Имя индикатора +#define RESET 0 // Константа для возврата терминалу команды на пересчет индикатора +#define NAMES_SYMBOLS_FONT "Georgia" // Шрифт для названия индикатора +#define SIGNAL_SYMBOLS_FONT "Wingdings" // Шрифт для символа входа в позицию +#define TREND_SYMBOLS_FONT "Wingdings" // Шрифт для символа тренда +#define UP_SIGNAL_SYMBOL "м" // Символ для открывания long +#define DN_SIGNAL_SYMBOL "о" // Символ для открывания short +#define UP_TREND_SYMBOL "]" // Символ для растущего тренда +#define DN_TREND_SYMBOL "]" // Символ для падающего тренда +#define BUY_SOUND "alert.wav" // Звуковой файл для входа в long +#define SELL_SOUND "alert.wav" // Звуковой файл для входа в short +#define BUY_ALERT_TEXT "Buy signal" // Текст алерта для входа в long +#define SELL_ALERT_TEXT "Sell signal" // Текст алерта для входа в short +#define ENAM_EMPTY_VALUE 0.0 // Значение для EMPTY_VALUE +//+------------------------------------------------+ +//| Перечисление для индикации срабатывания уровня | +//+------------------------------------------------+ +enum ENUM_ALERT_MODE // тип константы + { + OnlySound, // только звук + OnlyAlert // только алерт + }; +//+----------------------------------------------+ +//| Описание класса CXMA | +//+----------------------------------------------+ +#include +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +enum Applied_price_ //тип константы + { + PRICE_CLOSE_ = 1, //Close + PRICE_OPEN_, //Open + PRICE_HIGH_, //High + PRICE_LOW_, //Low + PRICE_MEDIAN_, //Median Price (HL/2) + PRICE_TYPICAL_, //Typical Price (HLC/3) + PRICE_WEIGHTED_, //Weighted Close (HLCC/4) + PRICE_SIMPL_, //Simpl Price (OC/2) + PRICE_QUARTER_, //Quarted Price (HLOC/4) + PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price + PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price + PRICE_DEMARK_ //Demark Price + }; +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +/*enum Smooth_Method - объявлено в файле SmoothAlgorithms.mqh + { + MODE_SMA_, //SMA + MODE_EMA_, //EMA + MODE_SMMA_, //SMMA + MODE_LWMA_, //LWMA + MODE_JJMA, //JJMA + MODE_JurX, //JurX + MODE_ParMA, //ParMA + MODE_T3, //T3 + MODE_VIDYA, //VIDYA + MODE_AMA, //AMA + }; */ +//+------------------------------------------------+ +//| Входные параметры индикатора | +//+------------------------------------------------+ +input string Symbol_=""; // Финансовый актив +input ENUM_TIMEFRAMES Timeframe=PERIOD_H6; // Таймфрейм индикатора для расчета индикатора +input Smooth_Method DSmoothMethod=MODE_JJMA; // Метод усреднения цены +input int DPeriod=15; // Период скользящей средней +input int DPhase=100; // Параметр усреднения скользящей средней +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- для VIDIA это период CMO, для AMA это период медленной скользящей +input Smooth_Method SSmoothMethod=MODE_JurX; // Метод усреднения сигнальной линии +input int SPeriod=7; // Период сигнальной линии +input int SPhase=100; // Параметр сигнальной линии +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- для VIDIA это период CMO, для AMA это период медленной скользящей +input Applied_price_ IPC=PRICE_CLOSE; // Ценовая константа +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//---- настройки визуального отображения индикатора +input uint SignalBar=0; // Номер бара для получения сигнала (0 - текущий бар) +input string Symbols_Sirname=INDICATOR_NAME"_Label_"; // Название для меток индикатора +input color Upsymbol_Color=clrDodgerBlue; // Цвет символа роста +input color Dnsymbol_Color=clrMagenta; // Цвет символа падения +input color IndName_Color=clrDarkOrchid; // Цвет названия индикатора +input uint Symbols_Size=60; // Размер символов сигнала +input uint Font_Size=10; // Размер шрифта названия индикатора +input int X_1=5; // Смещение названия по горизонтали +input int Y_1=-15; // Смещение названия по вертикали +input bool ShowIndName=true; // Отображение названия индикатора +input ENUM_BASE_CORNER WhatCorner=CORNER_RIGHT_UPPER; // Угол расположения +input uint X_=0; // Смещение по горизонтали +input uint Y_=20; // Смещение по вертикали +//---- настройки алертов +input ENUM_ALERT_MODE alert_mode=OnlySound; // Вариант индикации срабатывания +input uint AlertCount=0; // Количество подаваемых алертов +//+-----------------------------------+ +//---- объявление целочисленных переменных для хендлов индикаторов +int Ind_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//---- объявление целочисленных переменных расположения индексов по горизонтали и вертикали +uint X_0,Yn,X_1_,Y_1_; +//---- объявление переменных для имен меток +string name0,name1,IndName,Symb; +//+------------------------------------------------------------------+ +//| Получение таймфрейма в виде строки | +//+------------------------------------------------------------------+ +string GetStringTimeframe(ENUM_TIMEFRAMES timeframe) + { +//---- + return(StringSubstr(EnumToString(timeframe),7,-1)); +//---- + } +//+------------------------------------------------------------------+ +//| Создание текстовой метки | +//+------------------------------------------------------------------+ +void CreateTLabel(long chart_id, // идентификатор графика + string name, // имя объекта + int nwin, // индекс окна + ENUM_BASE_CORNER corner, // положение угла привязки + ENUM_ANCHOR_POINT point, // положение точки привязки + int X, // дистанция в пикселях по оси X от угла привязки + int Y, // дистанция в пикселях по оси Y от угла привязки + string text, // текст + string textTT, // текст всплывающей подсказки + color Color, // цвет текста + string Font, // шрифт текста + int Size) // размер шрифта + { +//---- + ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0); + ObjectSetInteger(chart_id,name,OBJPROP_CORNER,corner); + ObjectSetInteger(chart_id,name,OBJPROP_ANCHOR,point); + ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,X); + ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,Y); + ObjectSetString(chart_id,name,OBJPROP_TEXT,text); + ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color); + ObjectSetString(chart_id,name,OBJPROP_FONT,Font); + ObjectSetInteger(chart_id,name,OBJPROP_FONTSIZE,Size); + ObjectSetString(chart_id,name,OBJPROP_TOOLTIP,textTT); + ObjectSetInteger(chart_id,name,OBJPROP_BACK,true); //объект на заднем плане +//---- + } +//+------------------------------------------------------------------+ +//| Переустановка текстовой метки | +//+------------------------------------------------------------------+ +void SetTLabel(long chart_id, // идентификатор графика + string name, // имя объекта + int nwin, // индекс окна + ENUM_BASE_CORNER corner, // положение угла привязки + ENUM_ANCHOR_POINT point, // положение точки привязки + int X, // дистанция в пикселях по оси X от угла привязки + int Y, // дистанция в пикселях по оси Y от угла привязки + string text, // текст + string textTT, // текст всплывающей подсказки + color Color, // цвет текста + string Font, // шрифт текста + int Size) // размер шрифта + { +//---- + if(ObjectFind(chart_id,name)==-1) + { + CreateTLabel(chart_id,name,nwin,corner,point,X,Y,text,textTT,Color,Font,Size); + } + else + { + ObjectSetString(chart_id,name,OBJPROP_TEXT,text); + ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,X); + ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,Y); + ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color); + ObjectSetInteger(chart_id,name,OBJPROP_FONTSIZE,Size); + } +//---- + } +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчёта данных + int ATR_Period=15; + min_rates_total=GetStartBars(DSmoothMethod,DPeriod,DPhase)+1; + min_rates_total+=GetStartBars(SSmoothMethod,SPeriod,SPhase); + min_rates_total+=MathMax(min_rates_total,ATR_Period)+1; + min_rates_total+=int(SignalBar); +//---- инициализация переменных + if(Symbol_!="") Symb=Symbol_; + else Symb=Symbol(); +//---- + X_0=X_; + Yn=Y_+5; +//---- + name0=Symbols_Sirname+"0"; + if(ShowIndName) + { + Y_1_=Yn+Y_1; + X_1_=X_0+X_1; + name1=Symbols_Sirname+"1"; + StringConcatenate(IndName,INDICATOR_NAME,"(",Symb," ",GetStringTimeframe(Timeframe),")"); + } +//---- получение хендла индикатора METRO_XRSX_Sign + Ind_Handle=iCustom(Symb,Timeframe,"METRO_XRSX_Sign",DSmoothMethod,DPeriod,DPhase,SSmoothMethod,SPeriod,SPhase,IPC,StepSizeFast,StepSizeSlow); + if(Ind_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора METRO_XRSX_Sign"); + return(INIT_FAILED); + } +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,INDICATOR_NAME); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator deinitialization function | +//+------------------------------------------------------------------+ +void Deinit() + { +//---- + if(ObjectFind(0,name0)!=-1) ObjectDelete(0,name0); + if(ObjectFind(0,name1)!=-1) ObjectDelete(0,name1); +//---- + } +//+------------------------------------------------------------------+ +//| Custom indicator deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) + { +//---- + Deinit(); +//---- + ChartRedraw(0); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(Ind_Handle)rates_total || prev_calculated<=0)// проверка на первый старт расчета индикатора + { + prev_time=time[0]; + trend_=0; + } +//---- копируем вновь появившиеся данные в массивы + if(CopyBuffer(Ind_Handle,0,TIME[0],prev_time,DnSign)<=0) return(RESET); + if(CopyBuffer(Ind_Handle,1,TIME[0],prev_time,UpSign)<=0) return(RESET); +//---- расчеты стартового номера limit для цикла пересчета баров + limit=ArraySize(UpSign)-1; + trend=trend_; +//---- индексация элементов в массивах, как в таймсериях + ArraySetAsSeries(DnSign,true); + ArraySetAsSeries(UpSign,true); +//---- ставим счетчики алертов в исходное положение + if(TIME[0]!=prev_time && AlertCount) + { + buycount=AlertCount; + sellcount=AlertCount; + } +//---- основной цикл расчета индикатора + for(int bar=limit; bar>=0 && !IsStopped(); bar--) + { + if(UpSign[bar]&&UpSign[bar]!=ENAM_EMPTY_VALUE) {trend=+1; if(!bar) signal=true;} + if(DnSign[bar]&&DnSign[bar]!=ENAM_EMPTY_VALUE) {trend=-1; if(!bar) signal=true;} + if(bar || SignalBar) trend_=trend; + } +//---- + if(trend>0) + { + Color0=Upsymbol_Color; + //---- + if(signal) + { + SignSymbol=UP_SIGNAL_SYMBOL; + if(buycount) + { + switch(alert_mode) + { + case OnlyAlert: Alert(IndName+": "+BUY_ALERT_TEXT); break; + case OnlySound: PlaySound(BUY_SOUND); break; + } + //---- + buycount--; + } + } + else SignSymbol=UP_TREND_SYMBOL; + } +//---- + if(trend<0) + { + Color0=Dnsymbol_Color; + //---- + if(signal) + { + SignSymbol=DN_SIGNAL_SYMBOL; + if(sellcount) + { + switch(alert_mode) + { + case OnlyAlert: Alert(IndName+": "+SELL_ALERT_TEXT); break; + case OnlySound: PlaySound(SELL_SOUND); break; + } + //---- + sellcount--; + } + } + else SignSymbol=DN_TREND_SYMBOL; + } +//---- + if(trend) + { + if(ShowIndName) + SetTLabel(0,name1,0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),X_1_,Y_1_,IndName,IndName,IndName_Color,NAMES_SYMBOLS_FONT,Font_Size); + if(signal) SetTLabel(0,name0,0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),X_0,Yn,SignSymbol,IndName,Color0,SIGNAL_SYMBOLS_FONT,Symbols_Size); + else SetTLabel(0,name0,0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),X_0,Yn,SignSymbol,IndName,Color0,TREND_SYMBOLS_FONT,Symbols_Size); + } + else Deinit(); +//---- + ChartRedraw(0); + prev_time=TIME[0]; +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_1__2.png b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_1__2.png new file mode 100644 index 0000000..73e7b41 Binary files /dev/null and b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_1__2.png differ diff --git a/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_2__2.png b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_2__2.png new file mode 100644 index 0000000..35935e6 Binary files /dev/null and b/METRO_XRSX_HTF_Signal - indicator for MetaTrader 5/picture_2__2.png differ diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/README.md b/METRO_XRSX_Sign - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..af6102e --- /dev/null +++ b/METRO_XRSX_Sign - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `metro_xrsx_sign.mq5` + +### Screenshots: +![Screenshot](picture__64.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/expert.png b/METRO_XRSX_Sign - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/METRO_XRSX_Sign - indicator for MetaTrader 5/expert.png differ diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/indicator.png b/METRO_XRSX_Sign - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/METRO_XRSX_Sign - indicator for MetaTrader 5/indicator.png differ diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/logo-2.png b/METRO_XRSX_Sign - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/METRO_XRSX_Sign - indicator for MetaTrader 5/logo-2.png differ diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/metro_xrsx_sign.mq5 b/METRO_XRSX_Sign - indicator for MetaTrader 5/metro_xrsx_sign.mq5 new file mode 100644 index 0000000..8058938 --- /dev/null +++ b/METRO_XRSX_Sign - indicator for MetaTrader 5/metro_xrsx_sign.mq5 @@ -0,0 +1,258 @@ +//+------------------------------------------------------------------+ +//| METRO_XRSX_Sign.mq5 | +//| Copyright © 2005, TrendLaboratory Ltd. | +//| E-mail: igorad2004@list.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2005, TrendLaboratory Ltd." +#property link "E-mail: igorad2004@list.ru" +#property description "METRO_XRSX" +//---- номер версии индикатора +#property version "1.10" +//--- отрисовка индикатора в главном окне +#property indicator_chart_window +//--- для расчета и отрисовки индикатора использовано два буфера +#property indicator_buffers 2 +//--- использовано всего два графических построения +#property indicator_plots 2 +//+----------------------------------------------+ +//| Параметры отрисовки медвежьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 1 в виде символа +#property indicator_type1 DRAW_ARROW +//--- в качестве цвета медвежьей линии индикатора использован Magenta цвет +#property indicator_color1 clrMagenta +//--- толщина линии индикатора 1 равна 4 +#property indicator_width1 4 +//--- отображение медвежьей метки индикатора +#property indicator_label1 "METRO_XRSX Sell" +//+----------------------------------------------+ +//| Параметры отрисовки бычьего индикатора | +//+----------------------------------------------+ +//--- отрисовка индикатора 2 в виде символа +#property indicator_type2 DRAW_ARROW +//--- в качестве цвета бычьей линии индикатора использован DeepSkyBlue цвет +#property indicator_color2 clrDeepSkyBlue +//--- толщина линии индикатора 2 равна 4 +#property indicator_width2 4 +//--- отображение бычьей метки индикатора +#property indicator_label2 "METRO_XRSX Buy" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Описание класса CXMA | +//+----------------------------------------------+ +#include +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +enum Applied_price_ //тип константы + { + PRICE_CLOSE_ = 1, //Close + PRICE_OPEN_, //Open + PRICE_HIGH_, //High + PRICE_LOW_, //Low + PRICE_MEDIAN_, //Median Price (HL/2) + PRICE_TYPICAL_, //Typical Price (HLC/3) + PRICE_WEIGHTED_, //Weighted Close (HLCC/4) + PRICE_SIMPL_, //Simpl Price (OC/2) + PRICE_QUARTER_, //Quarted Price (HLOC/4) + PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price + PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price + PRICE_DEMARK_ //Demark Price + }; +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +/*enum Smooth_Method - объявлено в файле SmoothAlgorithms.mqh + { + MODE_SMA_, //SMA + MODE_EMA_, //EMA + MODE_SMMA_, //SMMA + MODE_LWMA_, //LWMA + MODE_JJMA, //JJMA + MODE_JurX, //JurX + MODE_ParMA, //ParMA + MODE_T3, //T3 + MODE_VIDYA, //VIDYA + MODE_AMA, //AMA + }; */ +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input Smooth_Method DSmoothMethod=MODE_JJMA; // Метод усреднения цены +input int DPeriod=15; // Период скользящей средней +input int DPhase=100; // Параметр усреднения скольщяшей средней +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- для VIDIA это период CMO, для AMA это период медленной скользящей +input Smooth_Method SSmoothMethod=MODE_JurX; //метод усреднения сигнальной линии +input int SPeriod=7; // Период сигнальной линии +input int SPhase=100; // Параметр сигнальной линии +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- для VIDIA это период CMO, для AMA это период медленной скользящей +input Applied_price_ IPC=PRICE_CLOSE; // Ценовая константа +input int StepSizeFast=5; // Быстрый шаг +input int StepSizeSlow=15; // Медленный шаг +//+----------------------------------------------+ +//--- объявление динамических массивов, которые в дальнейшем +//--- будут использованы в качестве индикаторных буферов +double SellBuffer[]; +double BuyBuffer[]; +//---- объявление целочисленных переменных для хендлов индикаторов +int XRSX_Handle,ATR_Handle; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + int ATR_Period=15; + min_rates_total=GetStartBars(DSmoothMethod,DPeriod,DPhase)+1; + min_rates_total+=GetStartBars(SSmoothMethod,SPeriod,SPhase); + min_rates_total+=MathMax(min_rates_total,ATR_Period)+1; +//--- получение хендла индикатора ATR + ATR_Handle=iATR(NULL,0,ATR_Period); + if(ATR_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора ATR"); + return(INIT_FAILED); + } +//---- получение хендла индикатора XRSX + XRSX_Handle=iCustom(NULL,0,"XRSX",DSmoothMethod,DPeriod,DPhase,SSmoothMethod,SPeriod,SPhase,IPC,0,1); + if(XRSX_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора XRSX"); + return(INIT_FAILED); + } +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(0,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(SellBuffer,true); +//--- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); +//--- осуществление сдвига начала отсчета отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//--- символ для индикатора + PlotIndexSetInteger(1,PLOT_ARROW,174); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); +//--- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(BuyBuffer,true); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,"METRO_Sign"); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(XRSX_Handle)rates_total || prev_calculated<=0) // проверка на первый старт расчета индикатора + { + limit=rates_total-1; // стартовый номер для расчета всех баров + fmin1=+999999; + fmax1=-999999; + smin1=+999999; + smax1=-999999; + ftrend_=0; + strend_=0; + fast_prev=0.0; + slow_prev=0.0; + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массив + if(CopyBuffer(XRSX_Handle,0,0,to_copy,XRSX)<=0) return(RESET); + if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); +//---- восстанавливаем значения переменных + ftrend=ftrend_; + strend=strend_; +//---- основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + //---- запоминаем значения переменных перед прогонами на текущем баре + if(rates_total!=prev_calculated && bar==0) + { + ftrend_=ftrend; + strend_=strend; + } + //--- + XRSX0=(XRSX[bar]+100)/2; + //--- + fmax0=XRSX0+2*StepSizeFast; + fmin0=XRSX0-2*StepSizeFast; + //--- + if(XRSX0>fmax1) ftrend=+1; + if(XRSX00 && fmin0fmax1) fmax0=fmax1; + //--- + smax0=XRSX0+2*StepSizeSlow; + smin0=XRSX0-2*StepSizeSlow; + //--- + if(XRSX0>smax1) strend=+1; + if(XRSX00 && smin0smax1) smax0=smax1; + //--- + if(ftrend>0) fast=fmin0+StepSizeFast; + if(ftrend<0) fast=fmax0-StepSizeFast; + if(strend>0) slow=smin0+StepSizeSlow; + if(strend<0) slow=smax0-StepSizeSlow; + //--- + BuyBuffer[bar]=0.0; + SellBuffer[bar]=0.0; + //--- + if(fast_prev<=slow_prev && fast>slow) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8; + if(fast_prev>=slow_prev && fast0) + { + fmin1=fmin0; + fmax1=fmax0; + smin1=smin0; + smax1=smax0; + fast_prev=fast; + slow_prev=slow; + } + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/METRO_XRSX_Sign - indicator for MetaTrader 5/picture__64.png b/METRO_XRSX_Sign - indicator for MetaTrader 5/picture__64.png new file mode 100644 index 0000000..c5c7ace Binary files /dev/null and b/METRO_XRSX_Sign - indicator for MetaTrader 5/picture__64.png differ diff --git a/MFI smoothed - indicator for MetaTrader 5/README.md b/MFI smoothed - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..d7f7f5a --- /dev/null +++ b/MFI smoothed - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_smoothed.mq5` + +### Screenshots: +![Screenshot](cb__56.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI smoothed - indicator for MetaTrader 5/cb__56.png b/MFI smoothed - indicator for MetaTrader 5/cb__56.png new file mode 100644 index 0000000..0269a48 Binary files /dev/null and b/MFI smoothed - indicator for MetaTrader 5/cb__56.png differ diff --git a/MFI smoothed - indicator for MetaTrader 5/indicator.png b/MFI smoothed - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI smoothed - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI smoothed - indicator for MetaTrader 5/logo-2.png b/MFI smoothed - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI smoothed - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI smoothed - indicator for MetaTrader 5/mfi_smoothed.mq5 b/MFI smoothed - indicator for MetaTrader 5/mfi_smoothed.mq5 new file mode 100644 index 0000000..0c40a6f Binary files /dev/null and b/MFI smoothed - indicator for MetaTrader 5/mfi_smoothed.mq5 differ diff --git a/MFICandleKeltner - indicator for MetaTrader 5/README.md b/MFICandleKeltner - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..9233100 --- /dev/null +++ b/MFICandleKeltner - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_price.mq5` + +### Screenshots: +![Screenshot](picture__3.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFICandleKeltner - indicator for MetaTrader 5/expert.png b/MFICandleKeltner - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFICandleKeltner - indicator for MetaTrader 5/expert.png differ diff --git a/MFICandleKeltner - indicator for MetaTrader 5/indicator.png b/MFICandleKeltner - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFICandleKeltner - indicator for MetaTrader 5/indicator.png differ diff --git a/MFICandleKeltner - indicator for MetaTrader 5/logo-2.png b/MFICandleKeltner - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFICandleKeltner - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFICandleKeltner - indicator for MetaTrader 5/mfi_price.mq5 b/MFICandleKeltner - indicator for MetaTrader 5/mfi_price.mq5 new file mode 100644 index 0000000..f445a8a Binary files /dev/null and b/MFICandleKeltner - indicator for MetaTrader 5/mfi_price.mq5 differ diff --git a/MFICandleKeltner - indicator for MetaTrader 5/picture__3.png b/MFICandleKeltner - indicator for MetaTrader 5/picture__3.png new file mode 100644 index 0000000..46a7ef7 Binary files /dev/null and b/MFICandleKeltner - indicator for MetaTrader 5/picture__3.png differ diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/README.md b/MFICandleKeltner_HTF - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..e92c176 --- /dev/null +++ b/MFICandleKeltner_HTF - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mficandlekeltner.mq5` + +### Screenshots: +![Screenshot](picture__5.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/expert.png b/MFICandleKeltner_HTF - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFICandleKeltner_HTF - indicator for MetaTrader 5/expert.png differ diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/indicator.png b/MFICandleKeltner_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFICandleKeltner_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/logo-2.png b/MFICandleKeltner_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFICandleKeltner_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/mficandlekeltner.mq5 b/MFICandleKeltner_HTF - indicator for MetaTrader 5/mficandlekeltner.mq5 new file mode 100644 index 0000000..4988866 Binary files /dev/null and b/MFICandleKeltner_HTF - indicator for MetaTrader 5/mficandlekeltner.mq5 differ diff --git a/MFICandleKeltner_HTF - indicator for MetaTrader 5/picture__5.png b/MFICandleKeltner_HTF - indicator for MetaTrader 5/picture__5.png new file mode 100644 index 0000000..b2f13e5 Binary files /dev/null and b/MFICandleKeltner_HTF - indicator for MetaTrader 5/picture__5.png differ diff --git a/MFI_Chart - indicator for MetaTrader 5/README.md b/MFI_Chart - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..e46fccf --- /dev/null +++ b/MFI_Chart - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_chart.mq5` + +### Screenshots: +![Screenshot](picture__69.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Chart - indicator for MetaTrader 5/indicator.png b/MFI_Chart - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Chart - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Chart - indicator for MetaTrader 5/logo-2.png b/MFI_Chart - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Chart - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Chart - indicator for MetaTrader 5/mfi_chart.mq5 b/MFI_Chart - indicator for MetaTrader 5/mfi_chart.mq5 new file mode 100644 index 0000000..1eaf00b --- /dev/null +++ b/MFI_Chart - indicator for MetaTrader 5/mfi_chart.mq5 @@ -0,0 +1,233 @@ +//+---------------------------------------------------------------------+ +//| MFI_Chart.mq5 | +//| Copyright © 2015, Yuriy Tokman (YTG) | +//| http://ytg.com.ua/ | +//+---------------------------------------------------------------------+ +//| Для работы индикатора следует положить файл SmoothAlgorithms.mqh | +//| в папку (директорию): каталог_данных_терминала\\MQL5\Include | +//+---------------------------------------------------------------------+ +#property copyright "Copyright © 2015, Yuriy Tokman (YTG)" +#property link "http://ytg.com.ua/" +#property description "Индикатор MFI на ценовом графике" +//---- номер версии индикатора +#property version "1.00" +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +//---- количество индикаторных буферов 4 +#property indicator_buffers 4 +//---- использовано всего три графических построения +#property indicator_plots 3 +//+----------------------------------------------+ +//|Параметры отрисовки индикатора MFI Cloud | +//+----------------------------------------------+ +//---- отрисовка индикатора в виде облака +#property indicator_type1 DRAW_FILLING +//---- в качестве цветов облака индикатора использованы +#property indicator_color1 clrLavender +//---- отображение метки индикатора +#property indicator_label1 "MFI Cloud" +//+----------------------------------------------+ +//| Параметры отрисовки индикатора XMA | +//+----------------------------------------------+ +//---- отрисовка индикатора 2 в виде линии +#property indicator_type2 DRAW_LINE +//---- в качестве цвета линии индикатора использован цвет MediumBlue +#property indicator_color2 clrMediumBlue +//---- линия индикатора 2 - непрерывная кривая +#property indicator_style2 STYLE_SOLID +//---- толщина линии индикатора 2 равна 2 +#property indicator_width2 2 +//---- отображение метки индикатора +#property indicator_label2 "XMA" +//+----------------------------------------------+ +//| Параметры отрисовки индикатора MFI | +//+----------------------------------------------+ +//---- отрисовка индикатора 3 в виде линии +#property indicator_type3 DRAW_LINE +//---- в качестве цвета линии индикатора использован цвет Crimson +#property indicator_color3 clrCrimson +//---- линия индикатора 3 - непрерывная кривая +#property indicator_style3 STYLE_SOLID +//---- толщина линии индикатора 3 равна 2 +#property indicator_width3 2 +//---- отображение метки индикатора +#property indicator_label3 "MFI" +//+----------------------------------------------+ +//| Объявление констант | +//+----------------------------------------------+ +#define RESET 0 // Константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Описание класса CXMA | +//+----------------------------------------------+ +#include +//+----------------------------------------------+ +//---- объявление переменных класса CXMA из файла SmoothAlgorithms.mqh +CXMA XMA1; +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +enum Applied_price_ //Тип константы + { + PRICE_CLOSE_ = 1, //Close + PRICE_OPEN_, //Open + PRICE_HIGH_, //High + PRICE_LOW_, //Low + PRICE_MEDIAN_, //Median Price (HL/2) + PRICE_TYPICAL_, //Typical Price (HLC/3) + PRICE_WEIGHTED_, //Weighted Close (HLCC/4) + PRICE_SIMPL_, //Simpl Price (OC/2) + PRICE_QUARTER_, //Quarted Price (HLOC/4) + PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price + PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price + PRICE_DEMARK_ //Demark Price + }; +//+----------------------------------------------+ +//| Объявление перечислений | +//+----------------------------------------------+ +/*enum Smooth_Method - перечисление объявлено в файле SmoothAlgorithms.mqh + { + MODE_SMA_, //SMA + MODE_EMA_, //EMA + MODE_SMMA_, //SMMA + MODE_LWMA_, //LWMA + MODE_JJMA, //JJMA + MODE_JurX, //JurX + MODE_ParMA, //ParMA + MODE_T3, //T3 + MODE_VIDYA, //VIDYA + MODE_AMA, //AMA + }; */ +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodMFI=14; // Период индикатора MFI +input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // Объем +input Smooth_Method XMA_Method=MODE_SMMA; // Метод усреднения +input uint XLength=12; // Глубина усреднения +input int XPhase=15; // Параметр сглаживания +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- для VIDIA это период CMO, для AMA это период медленной скользящей +input double Dev=10.0; // Девиация ширины канала +input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Тип цены или handle +input int Level_MFI_UP = 70; // Уровень перекупленности +input int Level_MFI_DN = 30; // Уровень перепроданности +input int Shift=0; // Сдвиг индикатора по горизонтали в барах +//+----------------------------------------------+ +//---- объявление динамических массивов, которые в дальнейшем +//---- будут использованы в качестве индикаторных буферов +double Line1Buffer[]; +double Line2Buffer[]; +double Line3Buffer[]; +double Line4Buffer[]; +//---- +double dLevel_MFI_UP,dLevel_MFI_DN; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total,min_rates_1; +//--- объявление целочисленных переменных для хендлов индикаторов +int Ind_Handle; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + min_rates_1=int(PeriodMFI); + min_rates_total=min_rates_1+GetStartBars(XMA_Method,XLength,XPhase); +//---- + dLevel_MFI_UP=int(Level_MFI_UP-50)*_Point*Dev; + dLevel_MFI_DN=int(Level_MFI_DN-50)*_Point*Dev; +//--- получение хендла индикатора MFI + Ind_Handle=iMFI(Symbol(),NULL,PeriodMFI,VolumeType); + if(Ind_Handle==INVALID_HANDLE) + { + Print("Не удалось получить хендл индикатора MFI"); + return(INIT_FAILED); + } +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,Line1Buffer,INDICATOR_DATA); +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,Line2Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 1 по горизонтали на Shift + PlotIndexSetInteger(0,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 1 на min_rates_total + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(2,Line3Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 2 по горизонтали на Shift + PlotIndexSetInteger(1,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 2 на min_rates_total + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(3,Line4Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 3 по горизонтали на Shift + PlotIndexSetInteger(2,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 3 на min_rates_total + PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); + +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(Line1Buffer,true); + ArraySetAsSeries(Line2Buffer,true); + ArraySetAsSeries(Line3Buffer,true); + ArraySetAsSeries(Line4Buffer,true); +//---- инициализация переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"F_MFI(",PeriodMFI,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчета + if(BarsCalculated(Ind_Handle)rates_total || prev_calculated<=0)// проверка на первый старт расчета индикатора + { + limit=maxbar; // стартовый номер для расчета всех баров + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров +//---- + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массивы + if(CopyBuffer(Ind_Handle,MAIN_LINE,0,to_copy,MFI)<=0) return(RESET); +//---- индексация элементов в массиве как в таймсерии + ArraySetAsSeries(MFI,true); + ArraySetAsSeries(open,true); + ArraySetAsSeries(low,true); + ArraySetAsSeries(high,true); + ArraySetAsSeries(close,true); +//---- Основной цикл расчета индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + price=PriceSeries(Applied_price,bar,open,low,high,close); + xma=XMA1.XMASeries(maxbar,prev_calculated,rates_total,XMA_Method,XPhase,XLength,price,bar,true); + Line3Buffer[bar]=xma; + Line4Buffer[bar]=xma+Dev*(MFI[bar]-50)*_Point; + Line1Buffer[bar]=xma+dLevel_MFI_UP; + Line2Buffer[bar]=xma+dLevel_MFI_DN; + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/MFI_Chart - indicator for MetaTrader 5/picture__69.png b/MFI_Chart - indicator for MetaTrader 5/picture__69.png new file mode 100644 index 0000000..2a44cb8 Binary files /dev/null and b/MFI_Chart - indicator for MetaTrader 5/picture__69.png differ diff --git a/MFI_Chart_HTF - indicator for MetaTrader 5/MFI_Chart.mq5 b/MFI_Chart_HTF - indicator for MetaTrader 5/MFI_Chart.mq5 new file mode 100644 index 0000000..f762fb4 --- /dev/null +++ b/MFI_Chart_HTF - indicator for MetaTrader 5/MFI_Chart.mq5 @@ -0,0 +1,240 @@ +//+---------------------------------------------------------------------+ +//| MFI_Chart.mq5 | +//| Copyright © 2015, Yuriy Tokman (YTG) | +//| http://ytg.com.ua/ | +//+---------------------------------------------------------------------+ +//| Для работы индикатора следует положить файл SmoothAlgorithms.mqh | +//| в папку (директорию): каталог_данных_терминала\\MQL5\Include | +//+---------------------------------------------------------------------+ +#property copyright "Copyright © 2015, Yuriy Tokman (YTG)" +#property link "http://ytg.com.ua/" +#property description "Индикатор MFI на ценовом графике" +//---- номер версии индикатора +#property version "1.01" +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +//---- количество индикаторных буферов 4 +#property indicator_buffers 4 +//---- использовано всего три графических построения +#property indicator_plots 3 +//+----------------------------------------------+ +//|Параметры отрисовки индикатора MFI Cloud | +//+----------------------------------------------+ +//---- отрисовка индикатора в виде облака +#property indicator_type1 DRAW_FILLING +//---- в качестве цветов облака индикатора использованы +#property indicator_color1 clrLavender +//---- отображение метки индикатора +#property indicator_label1 "MFI Cloud" +//+----------------------------------------------+ +//| Параметры отрисовки индикатора XMA | +//+----------------------------------------------+ +//---- отрисовка индикатора 2 в виде линии +#property indicator_type2 DRAW_LINE +//---- в качестве цвета линии индикатора использован цвет MediumBlue +#property indicator_color2 clrMediumBlue +//---- линия индикатора 2 - непрерывная кривая +#property indicator_style2 STYLE_SOLID +//---- толщина линии индикатора 2 равна 2 +#property indicator_width2 2 +//---- отображение метки индикатора +#property indicator_label2 "XMA" +//+----------------------------------------------+ +//| Параметры отрисовки индикатора MFI | +//+----------------------------------------------+ +//---- отрисовка индикатора 3 в виде линии +#property indicator_type3 DRAW_LINE +//---- в качестве цвета линии индикатора использован цвет Crimson +#property indicator_color3 clrCrimson +//---- линия индикатора 3 - непрерывная кривая +#property indicator_style3 STYLE_SOLID +//---- толщина линии индикатора 3 равна 2 +#property indicator_width3 2 +//---- отображение метки индикатора +#property indicator_label3 "MFI" +//+----------------------------------------------+ +//| объявление констант | +//+----------------------------------------------+ +#define RESET 0 // Константа для возврата терминалу команды на пересчет индикатора +//+----------------------------------------------+ +//| Описание класса CXMA | +//+----------------------------------------------+ +#include +//+----------------------------------------------+ +//---- объявление переменных класса CXMA из файла SmoothAlgorithms.mqh +CXMA XMA1; +//+----------------------------------------------+ +//| объявление перечислений | +//+----------------------------------------------+ +enum Applied_price_ //Тип константы + { + PRICE_CLOSE_ = 1, //Close + PRICE_OPEN_, //Open + PRICE_HIGH_, //High + PRICE_LOW_, //Low + PRICE_MEDIAN_, //Median Price (HL/2) + PRICE_TYPICAL_, //Typical Price (HLC/3) + PRICE_WEIGHTED_, //Weighted Close (HLCC/4) + PRICE_SIMPL_, //Simpl Price (OC/2) + PRICE_QUARTER_, //Quarted Price (HLOC/4) + PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price + PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price + PRICE_DEMARK_ //Demark Price + }; +//+----------------------------------------------+ +//| объявление перечислений | +//+----------------------------------------------+ +/*enum Smooth_Method - перечисление объявлено в файле SmoothAlgorithms.mqh + { + MODE_SMA_, //SMA + MODE_EMA_, //EMA + MODE_SMMA_, //SMMA + MODE_LWMA_, //LWMA + MODE_JJMA, //JJMA + MODE_JurX, //JurX + MODE_ParMA, //ParMA + MODE_T3, //T3 + MODE_VIDYA, //VIDYA + MODE_AMA, //AMA + }; */ +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input uint PeriodMFI=14; // Период индикатора MFI +input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // объём +input Smooth_Method XMA_Method=MODE_SMMA_; // метод усреднения +input uint XLength=12; // глубина усреднения +input int XPhase=15; // параметр сглаживания, +//---- для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса; +//---- Для VIDIA это период CMO, для AMA это период медленной скользящей +input double Dev=10.0; // Девиация ширины канала +input Applied_price_ Applied_price=PRICE_CLOSE_; // тип цены или handle +input int Level_MFI_UP = 70; // уровень перекупленности +input int Level_MFI_DN = 30; // уровень перепроданности +input int Shift=0; // Сдвиг индикатора по горизонтали в барах +//+----------------------------------------------+ +//---- объявление динамических массивов, которые в дальнейшем +//---- будут использованы в качестве индикаторных буферов +double Line1Buffer[]; +double Line2Buffer[]; +double Line3Buffer[]; +double Line4Buffer[]; + +double dLevel_MFI_UP,dLevel_MFI_DN; +//---- объявление целочисленных переменных начала отсчета данных +int min_rates_total,min_rates_1; +//--- объявление целочисленных переменных для хендлов индикаторов +int Ind_Handle; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация переменных начала отсчета данных + min_rates_1=int(PeriodMFI); + min_rates_total=min_rates_1+GetStartBars(XMA_Method,XLength,XPhase); + + dLevel_MFI_UP=int(Level_MFI_UP-50)*_Point*Dev; + dLevel_MFI_DN=int(Level_MFI_DN-50)*_Point*Dev; + +//--- получение хендла индикатора MFI + Ind_Handle=iMFI(Symbol(),NULL,PeriodMFI,VolumeType); + if(Ind_Handle==INVALID_HANDLE) + { + Print("Не удалось получить хендл индикатора MFI"); + return(INIT_FAILED); + } + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,Line1Buffer,INDICATOR_DATA); +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,Line2Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 1 по горизонтали на Shift + PlotIndexSetInteger(0,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 1 на min_rates_total + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(2,Line3Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 2 по горизонтали на Shift + PlotIndexSetInteger(1,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 2 на min_rates_total + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(3,Line4Buffer,INDICATOR_DATA); +//---- осуществление сдвига индикатора 3 по горизонтали на Shift + PlotIndexSetInteger(2,PLOT_SHIFT,Shift); +//---- осуществление сдвига начала отсчета отрисовки индикатора 3 на min_rates_total + PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); + +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(Line1Buffer,true); + ArraySetAsSeries(Line2Buffer,true); + ArraySetAsSeries(Line3Buffer,true); + ArraySetAsSeries(Line4Buffer,true); + +//---- инициализации переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"F_MFI(",PeriodMFI,")"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[] + ) + { +//---- проверка количества баров на достаточность для расчёта + if(BarsCalculated(Ind_Handle)rates_total || prev_calculated<=0)// проверка на первый старт расчета индикатора + { + limit=maxbar; // стартовый номер для расчета всех баров + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + + to_copy=limit+1; +//---- копируем вновь появившиеся данные в массивы + if(CopyBuffer(Ind_Handle,MAIN_LINE,0,to_copy,MFI)<=0) return(RESET); +//---- индексация элементов в массиве как в таймсерии + ArraySetAsSeries(MFI,true); + ArraySetAsSeries(open,true); + ArraySetAsSeries(low,true); + ArraySetAsSeries(high,true); + ArraySetAsSeries(close,true); + +//---- Основной цикл расчёта индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + price=PriceSeries(Applied_price,bar,open,low,high,close); + xma=XMA1.XMASeries(maxbar,prev_calculated,rates_total,XMA_Method,XPhase,XLength,price,bar,true); + Line3Buffer[bar]=xma; + Line4Buffer[bar]=xma+Dev*(MFI[bar]-50)*_Point; + Line1Buffer[bar]=xma+dLevel_MFI_UP; + Line2Buffer[bar]=xma+dLevel_MFI_DN; + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/MFI_Chart_HTF - indicator for MetaTrader 5/README.md b/MFI_Chart_HTF - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..151cf99 --- /dev/null +++ b/MFI_Chart_HTF - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `MFI_Chart.mq5` + +### Screenshots: +![Screenshot](picture__77.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Chart_HTF - indicator for MetaTrader 5/indicator.png b/MFI_Chart_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Chart_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Chart_HTF - indicator for MetaTrader 5/logo-2.png b/MFI_Chart_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Chart_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Chart_HTF - indicator for MetaTrader 5/picture__77.png b/MFI_Chart_HTF - indicator for MetaTrader 5/picture__77.png new file mode 100644 index 0000000..ede3e16 Binary files /dev/null and b/MFI_Chart_HTF - indicator for MetaTrader 5/picture__77.png differ diff --git a/MFI_Histogram - indicator for MetaTrader 5/README.md b/MFI_Histogram - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2e6308d --- /dev/null +++ b/MFI_Histogram - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_histogram.mq5` + +### Screenshots: +![Screenshot](picture__28.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Histogram - indicator for MetaTrader 5/indicator.png b/MFI_Histogram - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Histogram - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Histogram - indicator for MetaTrader 5/logo-2.png b/MFI_Histogram - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Histogram - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Histogram - indicator for MetaTrader 5/mfi_histogram.mq5 b/MFI_Histogram - indicator for MetaTrader 5/mfi_histogram.mq5 new file mode 100644 index 0000000..9c12f5e --- /dev/null +++ b/MFI_Histogram - indicator for MetaTrader 5/mfi_histogram.mq5 @@ -0,0 +1,152 @@ +//+------------------------------------------------------------------+ +//| MFI_Histogram.mq5 | +//| Copyright © 2016, Nikolay Kositsin | +//| Khabarovsk, farria@mail.redcom.ru | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2016, Nikolay Kositsin" +#property link "farria@mail.redcom.ru" +//---- номер версии индикатора +#property version "1.00" +//---- отрисовка индикатора в отдельном окне +#property indicator_separate_window +//---- количество индикаторных буферов 3 +#property indicator_buffers 3 +//---- использовано одно графическое построение +#property indicator_plots 1 +//+-----------------------------------+ +//| объявление констант | +//+-----------------------------------+ +#define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора +//+-----------------------------------+ +//| Параметры отрисовки индикатора | +//+-----------------------------------+ +//---- отрисовка индикатора в виде гистограммы +#property indicator_type1 DRAW_COLOR_HISTOGRAM2 +//---- в качестве цветов индикатора использованы +#property indicator_color1 clrMediumTurquoise,clrGray,clrGold +//---- линия индикатора - сплошная +#property indicator_style1 STYLE_SOLID +//---- толщина линии индикатора равна 2 +#property indicator_width1 2 +//---- отображение метки индикатора +#property indicator_label1 "MFI_Histogram" + +//+-----------------------------------+ +//| ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА | +//+-----------------------------------+ +input uint MFIPeriod=14; // период индикатора +input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // объём +input uint HighLevel=70; // уровень перекупленности +input uint LowLevel=30; // уровень перепроданности +input int Shift=0; // Сдвиг индикатора по горизонтали в барах +//+-----------------------------------+ + +//---- Объявление целых переменных начала отсчёта данных +int min_rates_total; +//---- объявление динамических массивов, которые будут в +// дальнейшем использованы в качестве индикаторных буферов +double UpBuffer[],DnBuffer[],ColorBuffer[]; +//---- Объявление целых переменных для хендлов индикаторов +int MFI_Handle; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- Инициализация переменных начала отсчёта данных + min_rates_total=int(MFIPeriod); +//---- получение хендла индикатора iMFI + MFI_Handle=iMFI(NULL,0,MFIPeriod,VolumeType); + if(MFI_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора iMFI"); + return(INIT_FAILED); + } +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,UpBuffer,INDICATOR_DATA); +//---- осуществление сдвига начала отсчёта отрисовки индикатора + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); +//---- осуществление сдвига индикатора по горизонтали на InpKijun + PlotIndexSetInteger(0,PLOT_SHIFT,Shift); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(UpBuffer,true); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,DnBuffer,INDICATOR_DATA); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(DnBuffer,true); +//---- превращение динамического массива в цветовой, индексный буфер + SetIndexBuffer(2,ColorBuffer,INDICATOR_COLOR_INDEX); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(ColorBuffer,true); + +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,"MFI_Histogram("+string(MFIPeriod)+")"); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,0); +//---- количество горизонтальных уровней индикатора 3 + IndicatorSetInteger(INDICATOR_LEVELS,3); +//---- значения горизонтальных уровней индикатора + IndicatorSetDouble(INDICATOR_LEVELVALUE,0,HighLevel); + IndicatorSetDouble(INDICATOR_LEVELVALUE,1,50); + IndicatorSetDouble(INDICATOR_LEVELVALUE,2,LowLevel); +//---- в качестве цветов линий горизонтальных уровней использованы серый и розовый цвета + IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrGreen); + IndicatorSetInteger(INDICATOR_LEVELCOLOR,1,clrGray); + IndicatorSetInteger(INDICATOR_LEVELCOLOR,2,clrBrown); +//---- в линии горизонтального уровня использован короткий штрих-пунктир + IndicatorSetInteger(INDICATOR_LEVELSTYLE,0,STYLE_DASHDOTDOT); + IndicatorSetInteger(INDICATOR_LEVELSTYLE,1,STYLE_DASHDOTDOT); + IndicatorSetInteger(INDICATOR_LEVELSTYLE,2,STYLE_DASHDOTDOT); +//---- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[] + ) + { +//---- проверка количества баров на достаточность для расчёта + if(BarsCalculated(MFI_Handle)rates_total || prev_calculated<=0)// проверка на первый старт расчета индикатора + { + limit=rates_total-min_rates_total-1; // стартовый номер для расчета всех баров + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + + to_copy=limit+1; + +//---- копируем вновь появившиеся данные в массивы + if(CopyBuffer(MFI_Handle,0,0,to_copy,UpBuffer)<=0) return(RESET); + +//---- основной цикл раскраски индикатора + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + DnBuffer[bar]=50.0; + int clr=1.0; + if(UpBuffer[bar]>HighLevel) clr=0.0; + else if(UpBuffer[bar] Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Histogram_Round - indicator for MetaTrader 5/indicator.png b/MFI_Histogram_Round - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Histogram_Round - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Histogram_Round - indicator for MetaTrader 5/logo-2.png b/MFI_Histogram_Round - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Histogram_Round - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Histogram_Round - indicator for MetaTrader 5/mfi_histogram_round.mq5 b/MFI_Histogram_Round - indicator for MetaTrader 5/mfi_histogram_round.mq5 new file mode 100644 index 0000000..197dfb4 Binary files /dev/null and b/MFI_Histogram_Round - indicator for MetaTrader 5/mfi_histogram_round.mq5 differ diff --git a/MFI_Histogram_Round - indicator for MetaTrader 5/picture__32.png b/MFI_Histogram_Round - indicator for MetaTrader 5/picture__32.png new file mode 100644 index 0000000..2b9a745 Binary files /dev/null and b/MFI_Histogram_Round - indicator for MetaTrader 5/picture__32.png differ diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/README.md b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..a7d0c79 --- /dev/null +++ b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_histogram_round.mq5` + +### Screenshots: +![Screenshot](picture__38.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/expert.png b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/expert.png differ diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/indicator.png b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/logo-2.png b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/mfi_histogram_round.mq5 b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/mfi_histogram_round.mq5 new file mode 100644 index 0000000..85e3bbe Binary files /dev/null and b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/mfi_histogram_round.mq5 differ diff --git a/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/picture__38.png b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/picture__38.png new file mode 100644 index 0000000..b617aa6 Binary files /dev/null and b/MFI_Histogram_Round_HTF - indicator for MetaTrader 5/picture__38.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/README.md b/MFI_Slowdown - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..514bea7 --- /dev/null +++ b/MFI_Slowdown - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_slowdown.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](picture_1__9.png) +![Screenshot](picture_2__18.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_Slowdown - indicator for MetaTrader 5/expert.png b/MFI_Slowdown - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/expert.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/indicator.png b/MFI_Slowdown - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/library.png b/MFI_Slowdown - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/library.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/logo-2.png b/MFI_Slowdown - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/mfi_slowdown.mq5 b/MFI_Slowdown - indicator for MetaTrader 5/mfi_slowdown.mq5 new file mode 100644 index 0000000..e9d53f3 Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/mfi_slowdown.mq5 differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/picture_1__9.png b/MFI_Slowdown - indicator for MetaTrader 5/picture_1__9.png new file mode 100644 index 0000000..a0fc654 Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/picture_1__9.png differ diff --git a/MFI_Slowdown - indicator for MetaTrader 5/picture_2__18.png b/MFI_Slowdown - indicator for MetaTrader 5/picture_2__18.png new file mode 100644 index 0000000..3f0c911 Binary files /dev/null and b/MFI_Slowdown - indicator for MetaTrader 5/picture_2__18.png differ diff --git a/MFI_normalized - indicator for MetaTrader 5/MFI_normalized.png b/MFI_normalized - indicator for MetaTrader 5/MFI_normalized.png new file mode 100644 index 0000000..c2ab1bc Binary files /dev/null and b/MFI_normalized - indicator for MetaTrader 5/MFI_normalized.png differ diff --git a/MFI_normalized - indicator for MetaTrader 5/MFI_normalized_mfi.png b/MFI_normalized - indicator for MetaTrader 5/MFI_normalized_mfi.png new file mode 100644 index 0000000..096ab14 Binary files /dev/null and b/MFI_normalized - indicator for MetaTrader 5/MFI_normalized_mfi.png differ diff --git a/MFI_normalized - indicator for MetaTrader 5/README.md b/MFI_normalized - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..64a6e35 --- /dev/null +++ b/MFI_normalized - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_normalized.mq5` + +### Screenshots: +![Screenshot](MFI_normalized.png) +![Screenshot](MFI_normalized_mfi.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_normalized - indicator for MetaTrader 5/indicator.png b/MFI_normalized - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_normalized - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_normalized - indicator for MetaTrader 5/logo-2.png b/MFI_normalized - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_normalized - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_normalized - indicator for MetaTrader 5/mfi_normalized.mq5 b/MFI_normalized - indicator for MetaTrader 5/mfi_normalized.mq5 new file mode 100644 index 0000000..45d592a Binary files /dev/null and b/MFI_normalized - indicator for MetaTrader 5/mfi_normalized.mq5 differ diff --git a/MFI_price_HTF - indicator for MetaTrader 5/README.md b/MFI_price_HTF - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..0d86eea --- /dev/null +++ b/MFI_price_HTF - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfi_price.mq5` + +### Screenshots: +![Screenshot](picture__4.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFI_price_HTF - indicator for MetaTrader 5/expert.png b/MFI_price_HTF - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFI_price_HTF - indicator for MetaTrader 5/expert.png differ diff --git a/MFI_price_HTF - indicator for MetaTrader 5/indicator.png b/MFI_price_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFI_price_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/MFI_price_HTF - indicator for MetaTrader 5/logo-2.png b/MFI_price_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFI_price_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFI_price_HTF - indicator for MetaTrader 5/mfi_price.mq5 b/MFI_price_HTF - indicator for MetaTrader 5/mfi_price.mq5 new file mode 100644 index 0000000..f445a8a Binary files /dev/null and b/MFI_price_HTF - indicator for MetaTrader 5/mfi_price.mq5 differ diff --git a/MFI_price_HTF - indicator for MetaTrader 5/picture__4.png b/MFI_price_HTF - indicator for MetaTrader 5/picture__4.png new file mode 100644 index 0000000..9efcd74 Binary files /dev/null and b/MFI_price_HTF - indicator for MetaTrader 5/picture__4.png differ diff --git a/MFIdivCandle - indicator for MetaTrader 5/README.md b/MFIdivCandle - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..15c151d --- /dev/null +++ b/MFIdivCandle - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mfidivcandle.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](picture__39.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MFIdivCandle - indicator for MetaTrader 5/expert.png b/MFIdivCandle - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MFIdivCandle - indicator for MetaTrader 5/expert.png differ diff --git a/MFIdivCandle - indicator for MetaTrader 5/indicator.png b/MFIdivCandle - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MFIdivCandle - indicator for MetaTrader 5/indicator.png differ diff --git a/MFIdivCandle - indicator for MetaTrader 5/library.png b/MFIdivCandle - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MFIdivCandle - indicator for MetaTrader 5/library.png differ diff --git a/MFIdivCandle - indicator for MetaTrader 5/logo-2.png b/MFIdivCandle - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MFIdivCandle - indicator for MetaTrader 5/logo-2.png differ diff --git a/MFIdivCandle - indicator for MetaTrader 5/mfidivcandle.mq5 b/MFIdivCandle - indicator for MetaTrader 5/mfidivcandle.mq5 new file mode 100644 index 0000000..c27f45d --- /dev/null +++ b/MFIdivCandle - indicator for MetaTrader 5/mfidivcandle.mq5 @@ -0,0 +1,145 @@ +//+------------------------------------------------------------------+ +//| MFIdivCandle.mq5 | +//| Copyright © 2006, RickD | +//| http://e2e-fx.net | +//+------------------------------------------------------------------+ +#property copyright "Copyright © 2006, RickD" +#property link "http://e2e-fx.net" +#property description "Индикатор окрашивает свечи на основе осциллятора MFI" +//---- номер версии индикатора +#property version "1.00" +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +//+----------------------------------------------+ +//| Параметры отрисовки индикатора | +//+----------------------------------------------+ +//---- для расчета и отрисовки индикатора использовано пять буферов +#property indicator_buffers 5 +//---- использовано всего одно графическое построение +#property indicator_plots 1 +//---- в качестве индикатора использованы цветные свечи +#property indicator_type1 DRAW_COLOR_CANDLES +#property indicator_color1 clrDeepPink,clrLightPink,clrGray,clrPaleGreen,clrTeal +//---- отображение метки индикатора +#property indicator_label1 "MFIdivCandle Open;MFIdivCandle High;MFIdivCandle Low;MFIdivCandle Close" +//+----------------------------------------------+ +//| объявление констант | +//+----------------------------------------------+ +#define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора +//+----------------------------------------------+ +//| ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА | +//+----------------------------------------------+ +input uint MFIPeriod=14; // период индикатора +input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK; // объём +input uint HighLevel=70; // уровень перезакупа +input uint LowLevel=30; // уровень перепроданности +input int Shift=0; // Сдвиг индикатора по горизонтали в барах +//+----------------------------------------------+ +//---- объявление динамических массивов, которые будут в +// дальнейшем использованы в качестве индикаторных буферов +double ExtOpenBuffer[]; +double ExtHighBuffer[]; +double ExtLowBuffer[]; +double ExtCloseBuffer[]; +double ExtColorBuffer[]; + +//---- Объявление целых переменных начала отсчёта данных +int min_rates_total; +//---- Объявление целых переменных для хендлов индикаторов +int MFIchastic_Handle; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- Инициализация переменных начала отсчёта данных + min_rates_total=int(MFIPeriod); +//---- получение хендла индикатора iMFI + MFIchastic_Handle=iMFI(NULL,0,MFIPeriod,VolumeType); + if(MFIchastic_Handle==INVALID_HANDLE) + { + Print(" Не удалось получить хендл индикатора iMFI"); + return(INIT_FAILED); + } + +//---- превращение динамических массивов в индикаторные буферы + SetIndexBuffer(0,ExtOpenBuffer,INDICATOR_DATA); + SetIndexBuffer(1,ExtHighBuffer,INDICATOR_DATA); + SetIndexBuffer(2,ExtLowBuffer,INDICATOR_DATA); + SetIndexBuffer(3,ExtCloseBuffer,INDICATOR_DATA); + +//---- превращение динамического массива в цветовой, индексный буфер + SetIndexBuffer(4,ExtColorBuffer,INDICATOR_COLOR_INDEX); + +//---- индексация элементов в буферах как в таймсериях + ArraySetAsSeries(ExtOpenBuffer,true); + ArraySetAsSeries(ExtHighBuffer,true); + ArraySetAsSeries(ExtLowBuffer,true); + ArraySetAsSeries(ExtCloseBuffer,true); + ArraySetAsSeries(ExtColorBuffer,true); + +//---- осуществление сдвига начала отсчета отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); + +//---- Установка формата точности отображения индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- имя для окон данных и метка для субъокон + string short_name="MFIdivCandle"; + IndicatorSetString(INDICATOR_SHORTNAME,short_name); +//--- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- проверка количества баров на достаточность для расчёта + if(BarsCalculated(MFIchastic_Handle)rates_total || prev_calculated<=0)// проверка на первый старт расчета индикатора + { + limit=rates_total-min_rates_total-1; // стартовый номер для расчета всех баров + } + else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров + + to_copy=limit+1; + +//---- копируем вновь появившиеся данные в массивы + if(CopyBuffer(MFIchastic_Handle,MAIN_LINE,0,to_copy,MFI)<=0) return(RESET); + if(CopyOpen(Symbol(),PERIOD_CURRENT,0,to_copy,ExtOpenBuffer)<=0) return(RESET); + if(CopyHigh(Symbol(),PERIOD_CURRENT,0,to_copy,ExtHighBuffer)<=0) return(RESET); + if(CopyLow(Symbol(),PERIOD_CURRENT,0,to_copy,ExtLowBuffer)<=0) return(RESET); + if(CopyClose(Symbol(),PERIOD_CURRENT,0,to_copy,ExtCloseBuffer)<=0) return(RESET); + +//---- индексация элементов в массивах как в таймсериях + ArraySetAsSeries(MFI,true); + +//---- Основной цикл окрашивания свечей + for(bar=limit; bar>=0 && !IsStopped(); bar--) + { + clr=2; + if(MFI[bar]>HighLevel) clr=4; + else if(MFI[bar]50) clr=3; + else if(MFI[bar]<50) clr=1; + ExtColorBuffer[bar]=clr; + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/MFIdivCandle - indicator for MetaTrader 5/picture__39.png b/MFIdivCandle - indicator for MetaTrader 5/picture__39.png new file mode 100644 index 0000000..e891903 Binary files /dev/null and b/MFIdivCandle - indicator for MetaTrader 5/picture__39.png differ diff --git a/MHL Average - indicator for MetaTrader 5/MHL_average.png b/MHL Average - indicator for MetaTrader 5/MHL_average.png new file mode 100644 index 0000000..9bf1383 Binary files /dev/null and b/MHL Average - indicator for MetaTrader 5/MHL_average.png differ diff --git a/MHL Average - indicator for MetaTrader 5/README.md b/MHL Average - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..5b77325 --- /dev/null +++ b/MHL Average - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mhl_average_-_alertsl1v.mq5` + +### Screenshots: +![Screenshot](MHL_average.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MHL Average - indicator for MetaTrader 5/indicator.png b/MHL Average - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MHL Average - indicator for MetaTrader 5/indicator.png differ diff --git a/MHL Average - indicator for MetaTrader 5/logo-2.png b/MHL Average - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MHL Average - indicator for MetaTrader 5/logo-2.png differ diff --git a/MHL Average - indicator for MetaTrader 5/mhl_average_-_alertsl1v.mq5 b/MHL Average - indicator for MetaTrader 5/mhl_average_-_alertsl1v.mq5 new file mode 100644 index 0000000..70c8dba --- /dev/null +++ b/MHL Average - indicator for MetaTrader 5/mhl_average_-_alertsl1v.mq5 @@ -0,0 +1,416 @@ +//------------------------------------------------------------------ +#property copyright "mladen" +#property link "www.forex-tsd.com" +#property version "1.00" +//------------------------------------------------------------------ +#property indicator_chart_window +#property indicator_buffers 3 +#property indicator_plots 2 + +#property indicator_label1 "Average" +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrSilver +#property indicator_label2 "MHL average" +#property indicator_type2 DRAW_COLOR_LINE +#property indicator_color2 clrDeepSkyBlue,clrSandyBrown +#property indicator_style2 STYLE_SOLID +#property indicator_width2 2 + +// +// +// +// +// + +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 +}; +enum enMaMethod +{ + ma_sma, // Calculate average using SMA + ma_ema, // Calculate average using EMA + ma_smma, // Calculate average using SMMA + ma_lwma // Calculate average using LWMA +}; + +input int CalcPeriod = 10; // Calculation period +input int AverPeriod = 50; // Average period +input enPrices Price = pr_close; // Price to use +input enMaMethod MaMethodToUse = ma_sma; // What ma method to use in average calculation +input bool alertsOn = false; // Alert on trend change? +input bool alertsOnCurrent = true; // Alert on current bar? +input bool alertsMessage = true; // Display messageas on alerts? +input bool alertsSound = false; // Play sound on alerts? +input bool alertsEmail = false; // Send email on alerts? + +// +// +// +// +// +// + +double MaBuffer[]; +double AvgBuffer[]; +double ColorBuffer[]; + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +// +// +// +// +// + +int OnInit() +{ + SetIndexBuffer(0,AvgBuffer,INDICATOR_DATA); + SetIndexBuffer(1,MaBuffer,INDICATOR_DATA); + SetIndexBuffer(2,ColorBuffer,INDICATOR_COLOR_INDEX); + IndicatorSetString(INDICATOR_SHORTNAME,"MHL average ("+(string)CalcPeriod+","+(string)AverPeriod+")"); + return(0); +} + +//------------------------------------------------------------------ +// +//------------------------------------------------------------------ +// +// +// +// +// + +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 &TickVolume[], + const long &Volume[], + const int &Spread[]) +{ + for (int i=(int)MathMax(prev_calculated-1,0); i=0; k++) + { + min = MathMin(min,low [i-k]); + max = MathMax(max,high[i-k]); + } + price = (max+min)/2.0; + switch (MaMethodToUse) + { + case ma_sma : MaBuffer[i] = iSma (price,AverPeriod,i,rates_total,1); break; + case ma_ema : MaBuffer[i] = iEma (price,AverPeriod,i,rates_total,1); break; + case ma_smma : MaBuffer[i] = iSmma(price,AverPeriod,i,rates_total,1); break; + case ma_lwma : MaBuffer[i] = iLwma(price,AverPeriod,i,rates_total,1); break; + } + if (i>0) + { + ColorBuffer[i] = ColorBuffer[i-1]; + if (MaBuffer[i]AvgBuffer[i]) ColorBuffer[i]=1; + } + else ColorBuffer[i]=0; + } + manageAlerts(time,ColorBuffer,rates_total); + return(rates_total); +} + + +//------------------------------------------------------------------ +// +//------------------------------------------------------------------ +// +// +// +// +// + +void manageAlerts(const datetime& time[], double& trend[], int bars) +{ + if (alertsOn) + { + int whichBar = bars-1; if (!alertsOnCurrent) whichBar = bars-2; datetime time1 = time[whichBar]; + + // + // + // + // + // + + if (trend[whichBar] != trend[whichBar-1]) + { + if (trend[whichBar] == 0) doAlert(time1,"up"); + if (trend[whichBar] == 1) doAlert(time1,"down"); + } + } +} + +// +// +// +// +// + +void doAlert(datetime forTime, string doWhat) +{ + static string previousAlert="nothing"; + static datetime previousTime; + string message; + + if (previousAlert != doWhat || previousTime != forTime) + { + previousAlert = doWhat; + previousTime = forTime; + + // + // + // + // + // + + message = TimeToString(TimeLocal(),TIME_SECONDS)+" "+_Symbol+" MHL average trend changed to "+doWhat; + if (alertsMessage) Alert(message); + if (alertsEmail) SendMail(_Symbol+" MHL average",message); + if (alertsSound) PlaySound("alert2.wav"); + } +} + +//------------------------------------------------------------------- +// +//------------------------------------------------------------------- +// +// +// +// +// + +#define _maInstances 2 +#define _maWorkBufferx1 1*_maInstances +#define _maWorkBufferx2 2*_maInstances +#define _maWorkBufferx3 3*_maInstances +#define _maWorkBufferx4 4*_maInstances +#define _maWorkBufferx5 5*_maInstances + +double workSma[][_maWorkBufferx2]; +double iSma(double price, int period, int r, int _bars, int instanceNo=0) +{ + if (period<=1) return(price); + if (ArrayRange(workSma,0)!= _bars) ArrayResize(workSma,_bars); instanceNo *= 2; int k; + + // + // + // + // + // + + workSma[r][instanceNo+0] = price; + workSma[r][instanceNo+1] = price; for(k=1; k=0; k++) workSma[r][instanceNo+1] += workSma[r-k][instanceNo+0]; + workSma[r][instanceNo+1] /= 1.0*k; + return(workSma[r][instanceNo+1]); +} + +// +// +// +// +// + +double workEma[][_maWorkBufferx1]; +double iEma(double price, double period, int r, int _bars, int instanceNo=0) +{ + if (period<=1) return(price); + if (ArrayRange(workEma,0)!= _bars) ArrayResize(workEma,_bars); + + // + // + // + // + // + + workEma[r][instanceNo] = price; + double alpha = 2.0 / (1.0+period); + if (r>0) + workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]); + return(workEma[r][instanceNo]); +} + +// +// +// +// +// + +double workSmma[][_maWorkBufferx1]; +double iSmma(double price, double period, int r, int _bars, int instanceNo=0) +{ + if (period<=1) return(price); + if (ArrayRange(workSmma,0)!= _bars) ArrayResize(workSmma,_bars); + + // + // + // + // + // + + if (r=0; k++) + { + double weight = period-k; + sumw += weight; + sum += weight*workLwma[r-k][instanceNo]; + } + return(sum/sumw); +} + +//------------------------------------------------------------------ +// +//------------------------------------------------------------------ +// +// +// +// +// +// + +double workHa[][4]; +double getPrice(int tprice, const double& open[], const double& close[], const double& high[], const double& low[], int i, int _tbars, int instanceNo=0) +{ + if (tprice>=pr_haclose) + { + if (ArrayRange(workHa,0)!= _tbars) ArrayResize(workHa,_tbars); instanceNo*=4; + + // + // + // + // + // + + double haOpen; + if (i>0) + haOpen = (workHa[i-1][instanceNo+2] + workHa[i-1][instanceNo+3])/2.0; + else haOpen = (open[i]+close[i])/2; + double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0; + double haHigh = MathMax(high[i], MathMax(haOpen,haClose)); + double haLow = MathMin(low[i] , MathMin(haOpen,haClose)); + + if(haOpen haOpen) + return((haHigh+haClose)/2.0); + else return((haLow+haClose)/2.0); + case pr_hatbiased2: + if (haClose>haOpen) return(haHigh); + if (haCloseopen[i]) + return((high[i]+close[i])/2.0); + else return((low[i]+close[i])/2.0); + case pr_tbiased2: + if (close[i]>open[i]) return(high[i]); + if (close[i] Made with вќ¤пёЏ for the trading community. diff --git a/MI - indicator for MetaTrader 5/indicator.png b/MI - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MI - indicator for MetaTrader 5/indicator.png differ diff --git a/MI - indicator for MetaTrader 5/logo-2.png b/MI - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MI - indicator for MetaTrader 5/logo-2.png differ diff --git a/MI - indicator for MetaTrader 5/mi.mq5 b/MI - indicator for MetaTrader 5/mi.mq5 new file mode 100644 index 0000000..5ed5067 Binary files /dev/null and b/MI - indicator for MetaTrader 5/mi.mq5 differ diff --git a/MIT - indicator for MetaTrader 5/MIT0000.png b/MIT - indicator for MetaTrader 5/MIT0000.png new file mode 100644 index 0000000..564725e Binary files /dev/null and b/MIT - indicator for MetaTrader 5/MIT0000.png differ diff --git a/MIT - indicator for MetaTrader 5/MIT1200.png b/MIT - indicator for MetaTrader 5/MIT1200.png new file mode 100644 index 0000000..6034ad3 Binary files /dev/null and b/MIT - indicator for MetaTrader 5/MIT1200.png differ diff --git a/MIT - indicator for MetaTrader 5/README.md b/MIT - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..38817bf --- /dev/null +++ b/MIT - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mit.mq5` + +### Screenshots: +![Screenshot](MIT0000.png) +![Screenshot](MIT1200.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MIT - indicator for MetaTrader 5/indicator.png b/MIT - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MIT - indicator for MetaTrader 5/indicator.png differ diff --git a/MIT - indicator for MetaTrader 5/logo-2.png b/MIT - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MIT - indicator for MetaTrader 5/logo-2.png differ diff --git a/MIT - indicator for MetaTrader 5/mit.mq5 b/MIT - indicator for MetaTrader 5/mit.mq5 new file mode 100644 index 0000000..5647917 Binary files /dev/null and b/MIT - indicator for MetaTrader 5/mit.mq5 differ diff --git a/MM - indicator for MetaTrader 5/MM.png b/MM - indicator for MetaTrader 5/MM.png new file mode 100644 index 0000000..fb02344 Binary files /dev/null and b/MM - indicator for MetaTrader 5/MM.png differ diff --git a/MM - indicator for MetaTrader 5/README.md b/MM - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..bae126e --- /dev/null +++ b/MM - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mm.mq5` + +### Screenshots: +![Screenshot](MM.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MM - indicator for MetaTrader 5/indicator.png b/MM - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MM - indicator for MetaTrader 5/indicator.png differ diff --git a/MM - indicator for MetaTrader 5/logo-2.png b/MM - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MM - indicator for MetaTrader 5/logo-2.png differ diff --git a/MM - indicator for MetaTrader 5/mm.mq5 b/MM - indicator for MetaTrader 5/mm.mq5 new file mode 100644 index 0000000..2f1d223 Binary files /dev/null and b/MM - indicator for MetaTrader 5/mm.mq5 differ diff --git a/MMI - indicator for MetaTrader 5/MMI.png b/MMI - indicator for MetaTrader 5/MMI.png new file mode 100644 index 0000000..b4c64d1 Binary files /dev/null and b/MMI - indicator for MetaTrader 5/MMI.png differ diff --git a/MMI - indicator for MetaTrader 5/MMI1.png b/MMI - indicator for MetaTrader 5/MMI1.png new file mode 100644 index 0000000..4a4f6f3 Binary files /dev/null and b/MMI - indicator for MetaTrader 5/MMI1.png differ diff --git a/MMI - indicator for MetaTrader 5/README.md b/MMI - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..7980147 --- /dev/null +++ b/MMI - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mmi.mq5` + +### Screenshots: +![Screenshot](MMI.png) +![Screenshot](MMI1.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MMI - indicator for MetaTrader 5/expert.png b/MMI - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MMI - indicator for MetaTrader 5/expert.png differ diff --git a/MMI - indicator for MetaTrader 5/indicator.png b/MMI - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MMI - indicator for MetaTrader 5/indicator.png differ diff --git a/MMI - indicator for MetaTrader 5/logo-2.png b/MMI - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MMI - indicator for MetaTrader 5/logo-2.png differ diff --git a/MMI - indicator for MetaTrader 5/mmi.mq5 b/MMI - indicator for MetaTrader 5/mmi.mq5 new file mode 100644 index 0000000..07ec44f Binary files /dev/null and b/MMI - indicator for MetaTrader 5/mmi.mq5 differ diff --git a/MPO - indicator for MetaTrader 5/MPO.png b/MPO - indicator for MetaTrader 5/MPO.png new file mode 100644 index 0000000..6554c52 Binary files /dev/null and b/MPO - indicator for MetaTrader 5/MPO.png differ diff --git a/MPO - indicator for MetaTrader 5/README.md b/MPO - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..12ab415 --- /dev/null +++ b/MPO - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mpo.mq5` + +### Screenshots: +![Screenshot](MPO.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MPO - indicator for MetaTrader 5/indicator.png b/MPO - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MPO - indicator for MetaTrader 5/indicator.png differ diff --git a/MPO - indicator for MetaTrader 5/logo-2.png b/MPO - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MPO - indicator for MetaTrader 5/logo-2.png differ diff --git a/MPO - indicator for MetaTrader 5/mpo.mq5 b/MPO - indicator for MetaTrader 5/mpo.mq5 new file mode 100644 index 0000000..3048d94 Binary files /dev/null and b/MPO - indicator for MetaTrader 5/mpo.mq5 differ diff --git a/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/Capture_FX1.JPG b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/Capture_FX1.JPG new file mode 100644 index 0000000..2e78662 Binary files /dev/null and b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/Capture_FX1.JPG differ diff --git a/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/README.md b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..007f99c --- /dev/null +++ b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `pos_size.mq5` + +### Screenshots: +![Screenshot](Capture_FX1.JPG) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/indicator.png b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/indicator.png differ diff --git a/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/logo-2.png b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/logo-2.png differ diff --git a/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/pos_size.mq5 b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/pos_size.mq5 new file mode 100644 index 0000000..4362466 --- /dev/null +++ b/MQL5 Version of Position Size Calculator - Based on VP Money Management rules - indicator for MetaTrader 5/pos_size.mq5 @@ -0,0 +1,315 @@ +//+------------------------------------------------------------------+ +//| pos_size.mq[4|5] | +//| Copyright 2018, Silverapex | +//| https://silverapex.co.uk | +//| | +//| 2.01 Both MT4 and MT5, and small tweaks. Chris Plewright | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2018, Silverapex" +#property link "https://silverapex.co.uk" +#property version "2.01" +#property strict +#property indicator_chart_window +#property indicator_buffers 2 +#property indicator_plots 0 + +input int InpATRperiod=14; // ATR Periods +input double InpRiskPC=2.0; // Risk Size % +input double InpSLfactor=1.5; // Stop Loss as a factor of ATR +input double InpTPfactor=1.0; // Take Profit as a factor of ATR +input int InpFontSize=9; // Font size +input color InpColor=clrMagenta; // Color +input ENUM_BASE_CORNER InpBaseCorner=CORNER_RIGHT_UPPER; // Corner +input double InpFixedATR=0; // Fixed ATR points +input bool InpBack=false; // Background object +input bool InpSelection=false; // Highlight to move +input bool InpHidden=true; // Hidden in the object list +input long InpZOrder=0; // Priority for mouse click + +string AccntC=AccountInfoString(ACCOUNT_CURRENCY); //Currency of Acount eg USD,GBP,EUR +string CounterC=StringSubstr(_Symbol,3,3); //The Count Currency eg GBPUSD is USD +string ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP + +double ExtATRBuffer[]; +double ExtTRBuffer[]; + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { + + int l=0; + text_init(ChartID(),"textATR",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textBAL",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textRISK",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"texttimeleft",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textBuySL",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textBuyTP",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textSellSL",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textSellTP",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + text_init(ChartID(),"textlotsize",InpFontSize,(InpFontSize*3)*l++,InpColor,InpFontSize); + +//--- ATR indicator buffers mapping + SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA); + SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS); +//--- + // IndicatorSetInteger(INDICATOR_DIGITS,_Digits); + + + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//--- + double ExCRate=1; //Assume Account is same as counter so ExCRate=1 + AccntC=AccountInfoString(ACCOUNT_CURRENCY); //Currency of Acount eg USD,GBP,EUR + CounterC=StringSubstr(_Symbol,3,3); //The Count Currency eg GBPUSD is USD + ExC=AccntC+CounterC; //Create the Pair for account eg USDGBP + if(AccntC!=CounterC) + ExCRate= SymbolInfoDouble(ExC,SYMBOL_ASK); //Get the correct FX rate for the Account to Counter conversion + if(ExCRate ==0) ExCRate=1.0; // this part may be buggy - still need to test/fix it. + + double ATRPrice = AverageTrueRange(rates_total,prev_calculated,high,low,close); + double ATRPoints = ATRPrice / _Point; //Get the ATR in points to calc SL and TP + + if(InpFixedATR!=0) + ATRPoints=InpFixedATR; //Override ATR for times when you have had a Flash crash + + double riskVAccntC=AccountInfoDouble(ACCOUNT_EQUITY)*(InpRiskPC/100); + double riskvalue=(ExCRate/1)*riskVAccntC; //Risk in Account Currency + double slpoints=(ATRPoints*InpSLfactor); //Risk in Counter Currency + double riskperpoint=(riskvalue/slpoints); + double lotSize=riskperpoint; //Risk in currency per point + + // Explanation of the conventions used in this script + // for PIPs and MetaTrader's Points: + // PIP (Points In Percent) in FX for most currencies + // is conventionally understood as 4 digits after the decimal point, + // ie; 0.0001 is one pip. The exception to the rule is 0.01 JPY is one pip. + // (because JPY has more significant digits before the decimal point.) + // However, complicating this is that MetaTrader allow brokers to quote prices + // with additional digits, so JPY could be in either 2 or 3 "_Digits", + // and other currencies could be quoted in either 4 or 5 "_Digits" after the decimal place. + // MetaTrader MQL sees points as the smallest amount of change in the quoted price, + // so a point might be either 1 or 10 pips, depending on how the broker quotes the prices. + // So, the way that this scripts resolves the variation is by performing the following mapping; + // when _Digits = 5 then MTPointsPerPip = 10 + // when _Digits = 4 then MTPointsPerPip = 1 + // when _Digits = 3 then MTPointsPerPip = 10 + // when _Digits = 2 then MTPointsPerPip = 1 + + int MTPointsPerPip = ( (_Digits == 3 || _Digits == 5) ? 10 : 1 ); + + if(CounterC=="JPY") { + lotSize=riskperpoint/100; + } + double ATRpips=MathCeil(ATRPoints/MTPointsPerPip); + +//calculate time left this period + + datetime bar_times[]; // array storing the bar time + ArraySetAsSeries(bar_times,true); + //--- copy time from bars + CopyTime(_Symbol,_Period,0,2,bar_times); + + int bar_span_seconds = PeriodSeconds(_Period); + + datetime last_bar_close_time = bar_times[0]; + datetime this_bar_close_time = last_bar_close_time + bar_span_seconds; + + MqlDateTime now_mdt; + datetime now = TimeGMT(now_mdt); + + if( _Period > PERIOD_D1 ){ + this_bar_close_time -= (60*60*24); // Friday Close + } + + long seconds_remaining = this_bar_close_time - now; // total seconds remaining in the current bar + + long days_remaining = seconds_remaining / (60*60*24); //integer (int/long) division (/) truncates the remainder + seconds_remaining %= (60*60*24); //integer (int/long) mod (%) gets the remainder of the integer division + + long hours_remaining = seconds_remaining / (60*60); + seconds_remaining %= (60*60); + + long minutes_remaining = seconds_remaining / 60; + seconds_remaining %= 60; + + string lstrTimeLeft; + if( _Period > PERIOD_D1 ) + lstrTimeLeft = StringFormat("Time Left: %2.1d days, %2.2d:%2.2d:%2.2d",days_remaining,hours_remaining,minutes_remaining,seconds_remaining); + else if( _Period <= PERIOD_H1 ) + lstrTimeLeft = StringFormat("Time Left: %2.2d:%2.2d",minutes_remaining,seconds_remaining); + else + lstrTimeLeft = StringFormat("Time Left: %2.2d:%2.2d:%2.2d",hours_remaining,minutes_remaining,seconds_remaining); + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK)/_Point; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID)/_Point; + + double buySLPoints = -1*ATRPoints*InpSLfactor; + double buySLPrice = (ask + buySLPoints)*_Point; + double buyTPPoints = ATRPoints * InpTPfactor; + double buyTPPrice = (ask + buyTPPoints)*_Point; + + double sellSLPoints = ATRPoints*InpSLfactor; + double sellSLPrice = (ask + sellSLPoints)*_Point; + double sellTPPoints = -1*ATRPoints*InpTPfactor; + double sellTPPrice = (ask + sellTPPoints)*_Point; + + string lstrATR = ( InpFixedATR != 0 ? "*FIXED*" : "") + StringFormat("ATR(%.0f): %.0f pips", InpATRperiod,ATRpips ); + string lstrBAL = StringFormat("Equity: %.2f %s",AccountInfoDouble(ACCOUNT_EQUITY),AccntC); + string lstrRISK = StringFormat("Risk %.1f%%: %.2f %s",InpRiskPC,riskVAccntC,AccntC); + string lstrBuySL = StringFormat("Buy SL: %s",DoubleToString( buySLPrice, _Digits )); + string lstrBuyTP = StringFormat("Buy TP: %s",DoubleToString( buyTPPrice, _Digits )); + string lstrSellSL = StringFormat("Sell SL: %s",DoubleToString( sellSLPrice, _Digits )); + string lstrSellTP = StringFormat("Sell TP: %s",DoubleToString( sellTPPrice, _Digits )); + string lstrVolume = StringFormat("Volume: %.2f",lotSize); + + ObjectSetString(ChartID(),"texttimeleft",OBJPROP_TEXT, lstrTimeLeft ); + ObjectSetString(ChartID(),"textATR",OBJPROP_TEXT, lstrATR); + ObjectSetString(ChartID(),"textBAL",OBJPROP_TEXT, lstrBAL); + ObjectSetString(ChartID(),"textRISK",OBJPROP_TEXT, lstrRISK); + ObjectSetString(ChartID(),"textBuySL",OBJPROP_TEXT, lstrBuySL); + ObjectSetString(ChartID(),"textBuyTP",OBJPROP_TEXT, lstrBuyTP); + ObjectSetString(ChartID(),"textSellSL",OBJPROP_TEXT, lstrSellSL); + ObjectSetString(ChartID(),"textSellTP",OBJPROP_TEXT, lstrSellTP); + ObjectSetString(ChartID(),"textlotsize",OBJPROP_TEXT, lstrVolume); + +//--- forced chart redraw + ChartRedraw(ChartID()); + +//--- return value of prev_calculated for next call + return(rates_total); + } + +//+------------------------------------------------------------------+ +//| Generalized Average True Range - works in BOTH mt4 and mt5. | +//+------------------------------------------------------------------+ +double AverageTrueRange( + const int rates_total, + const int prev_calculated, + const double &high[], + const double &low[], + const double &close[] ) + { + int i,limit; +//--- check for bars count + if(rates_total<=InpATRperiod) + return(0); // not enough bars for calculation +//--- counting from 0 to rates_total + ArraySetAsSeries(ExtATRBuffer,false); + ArraySetAsSeries(ExtTRBuffer,false); + ArraySetAsSeries(high,false); + ArraySetAsSeries(low,false); + ArraySetAsSeries(close,false); +//--- preliminary calculations + if(prev_calculated==0) + { + ExtTRBuffer[0]=0.0; + ExtATRBuffer[0]=0.0; + //--- filling out the array of True Range values for each period + for(i=1;i Made with вќ¤пёЏ for the trading community. diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_1__1.JPG b/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_1__1.JPG new file mode 100644 index 0000000..890f5f1 Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_1__1.JPG differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_2__1.JPG b/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_2__1.JPG new file mode 100644 index 0000000..49f39d2 Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/img_2__1.JPG differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/indicator.png b/MT5 CCI with shift parameter - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/indicator.png differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/library.png b/MT5 CCI with shift parameter - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/library.png differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/logo-2.png b/MT5 CCI with shift parameter - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/logo-2.png differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/script.png b/MT5 CCI with shift parameter - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/MT5 CCI with shift parameter - indicator for MetaTrader 5/script.png differ diff --git a/MT5 CCI with shift parameter - indicator for MetaTrader 5/test_customcci.mq5 b/MT5 CCI with shift parameter - indicator for MetaTrader 5/test_customcci.mq5 new file mode 100644 index 0000000..f20211b --- /dev/null +++ b/MT5 CCI with shift parameter - indicator for MetaTrader 5/test_customcci.mq5 @@ -0,0 +1,73 @@ +//+------------------------------------------------------------------+ +//| Test_CustomCCI.mq5 | +//| Copyright 2023, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2023, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property indicator_separate_window + +#property indicator_buffers 1 +#property indicator_plots 1 +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrRed +#property indicator_width1 1 +#property indicator_label1 "CCI" +#property indicator_level1 -100.0 +#property indicator_level2 100.0 +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ + +input int ma_period = 14; +input ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE; +input int shift = 0; + +int custom_cci_handle = INVALID_HANDLE; + +double test_buf[]; + +int OnInit(){ + + SetIndexBuffer(0, test_buf, INDICATOR_DATA); + + + custom_cci_handle = iCustom(Symbol(), Period(), "Examples\\CCI_withShift.ex5", ma_period, applied_price, shift); //the modded custom CCI + + + if (custom_cci_handle == INVALID_HANDLE){ + Print("Still shows as invalid handle. Failed to initialize custom CCI indicator!"); + return INIT_FAILED; + } + + return(INIT_SUCCEEDED); +} + + +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]){ + + + int copied = CopyBuffer(custom_cci_handle, 0, 0, rates_total, test_buf); + + if (copied <= 0){ + Print("Failed to copy CCI values!"); + return(0); + } + + + return(rates_total); +} +//+------------------------------------------------------------------+ diff --git a/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_slope.png b/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_slope.png new file mode 100644 index 0000000..c991e33 Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_slope.png differ diff --git a/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_step.png b/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_step.png new file mode 100644 index 0000000..e2bdaa1 Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/MTF_LRMA_step.png differ diff --git a/MTF_LRMA - indicator for MetaTrader 5/README.md b/MTF_LRMA - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..afda826 --- /dev/null +++ b/MTF_LRMA - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mtf_lrma.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](MTF_LRMA_slope.png) +![Screenshot](MTF_LRMA_step.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MTF_LRMA - indicator for MetaTrader 5/indicator.png b/MTF_LRMA - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/indicator.png differ diff --git a/MTF_LRMA - indicator for MetaTrader 5/library.png b/MTF_LRMA - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/library.png differ diff --git a/MTF_LRMA - indicator for MetaTrader 5/logo-2.png b/MTF_LRMA - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/logo-2.png differ diff --git a/MTF_LRMA - indicator for MetaTrader 5/mtf_lrma.mq5 b/MTF_LRMA - indicator for MetaTrader 5/mtf_lrma.mq5 new file mode 100644 index 0000000..e179a5f Binary files /dev/null and b/MTF_LRMA - indicator for MetaTrader 5/mtf_lrma.mq5 differ diff --git a/MTF_MA - indicator for MetaTrader 5/MTF_MA_slope.png b/MTF_MA - indicator for MetaTrader 5/MTF_MA_slope.png new file mode 100644 index 0000000..1a3f77d Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/MTF_MA_slope.png differ diff --git a/MTF_MA - indicator for MetaTrader 5/MTF_MA_step.png b/MTF_MA - indicator for MetaTrader 5/MTF_MA_step.png new file mode 100644 index 0000000..b97768f Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/MTF_MA_step.png differ diff --git a/MTF_MA - indicator for MetaTrader 5/README.md b/MTF_MA - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..9c70bc4 --- /dev/null +++ b/MTF_MA - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mtf_ma.mq5` + +### Screenshots: +![Screenshot](MTF_MA_slope.png) +![Screenshot](MTF_MA_step.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MTF_MA - indicator for MetaTrader 5/expert.png b/MTF_MA - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/expert.png differ diff --git a/MTF_MA - indicator for MetaTrader 5/indicator.png b/MTF_MA - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/indicator.png differ diff --git a/MTF_MA - indicator for MetaTrader 5/logo-2.png b/MTF_MA - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/logo-2.png differ diff --git a/MTF_MA - indicator for MetaTrader 5/mtf_ma.mq5 b/MTF_MA - indicator for MetaTrader 5/mtf_ma.mq5 new file mode 100644 index 0000000..12ca7ce Binary files /dev/null and b/MTF_MA - indicator for MetaTrader 5/mtf_ma.mq5 differ diff --git a/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_slope.png b/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_slope.png new file mode 100644 index 0000000..46f4221 Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_slope.png differ diff --git a/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_step.png b/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_step.png new file mode 100644 index 0000000..3b14c1e Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/MTF_RSI_step.png differ diff --git a/MTF_RSI - indicator for MetaTrader 5/README.md b/MTF_RSI - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..d3cf7f7 --- /dev/null +++ b/MTF_RSI - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mtf_rsi.mq5` + +### Screenshots: +![Screenshot](MTF_RSI_slope.png) +![Screenshot](MTF_RSI_step.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MTF_RSI - indicator for MetaTrader 5/expert.png b/MTF_RSI - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/expert.png differ diff --git a/MTF_RSI - indicator for MetaTrader 5/indicator.png b/MTF_RSI - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/indicator.png differ diff --git a/MTF_RSI - indicator for MetaTrader 5/logo-2.png b/MTF_RSI - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/logo-2.png differ diff --git a/MTF_RSI - indicator for MetaTrader 5/mtf_rsi.mq5 b/MTF_RSI - indicator for MetaTrader 5/mtf_rsi.mq5 new file mode 100644 index 0000000..a945c1a Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/mtf_rsi.mq5 differ diff --git a/MTF_RSI - indicator for MetaTrader 5/script.png b/MTF_RSI - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/MTF_RSI - indicator for MetaTrader 5/script.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_slope.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_slope.png new file mode 100644 index 0000000..edb3b92 Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_slope.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_step.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_step.png new file mode 100644 index 0000000..ea25748 Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/MTF_Stochastic_RSI_step.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/README.md b/MTF_Stochastic_RSI - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..c40ea5b --- /dev/null +++ b/MTF_Stochastic_RSI - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mtf_stochastic_rsi.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](MTF_Stochastic_RSI_slope.png) +![Screenshot](MTF_Stochastic_RSI_step.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/expert.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/expert.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/indicator.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/indicator.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/library.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/library.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/logo-2.png b/MTF_Stochastic_RSI - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/logo-2.png differ diff --git a/MTF_Stochastic_RSI - indicator for MetaTrader 5/mtf_stochastic_rsi.mq5 b/MTF_Stochastic_RSI - indicator for MetaTrader 5/mtf_stochastic_rsi.mq5 new file mode 100644 index 0000000..1acab70 Binary files /dev/null and b/MTF_Stochastic_RSI - indicator for MetaTrader 5/mtf_stochastic_rsi.mq5 differ diff --git a/MV_OBV - indicator for MetaTrader 5/MV_OBV.png b/MV_OBV - indicator for MetaTrader 5/MV_OBV.png new file mode 100644 index 0000000..e94edcd Binary files /dev/null and b/MV_OBV - indicator for MetaTrader 5/MV_OBV.png differ diff --git a/MV_OBV - indicator for MetaTrader 5/README.md b/MV_OBV - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..fa10cf7 --- /dev/null +++ b/MV_OBV - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mv_obv.mq5` + +### Screenshots: +![Screenshot](MV_OBV.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MV_OBV - indicator for MetaTrader 5/indicator.png b/MV_OBV - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MV_OBV - indicator for MetaTrader 5/indicator.png differ diff --git a/MV_OBV - indicator for MetaTrader 5/logo-2.png b/MV_OBV - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MV_OBV - indicator for MetaTrader 5/logo-2.png differ diff --git a/MV_OBV - indicator for MetaTrader 5/mv_obv.mq5 b/MV_OBV - indicator for MetaTrader 5/mv_obv.mq5 new file mode 100644 index 0000000..2039cf7 Binary files /dev/null and b/MV_OBV - indicator for MetaTrader 5/mv_obv.mq5 differ diff --git a/McClellan Summation Index - smoother - indicator for MetaTrader 5/README.md b/McClellan Summation Index - smoother - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..cb2a212 --- /dev/null +++ b/McClellan Summation Index - smoother - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcclellan_summation_index_asmoother4.mq5` + +### Screenshots: +![Screenshot](cb__11.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McClellan Summation Index - smoother - indicator for MetaTrader 5/cb__11.png b/McClellan Summation Index - smoother - indicator for MetaTrader 5/cb__11.png new file mode 100644 index 0000000..ca5a1d8 Binary files /dev/null and b/McClellan Summation Index - smoother - indicator for MetaTrader 5/cb__11.png differ diff --git a/McClellan Summation Index - smoother - indicator for MetaTrader 5/indicator.png b/McClellan Summation Index - smoother - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McClellan Summation Index - smoother - indicator for MetaTrader 5/indicator.png differ diff --git a/McClellan Summation Index - smoother - indicator for MetaTrader 5/logo-2.png b/McClellan Summation Index - smoother - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McClellan Summation Index - smoother - indicator for MetaTrader 5/logo-2.png differ diff --git a/McClellan Summation Index - smoother - indicator for MetaTrader 5/mcclellan_summation_index_asmoother4.mq5 b/McClellan Summation Index - smoother - indicator for MetaTrader 5/mcclellan_summation_index_asmoother4.mq5 new file mode 100644 index 0000000..f960644 Binary files /dev/null and b/McClellan Summation Index - smoother - indicator for MetaTrader 5/mcclellan_summation_index_asmoother4.mq5 differ diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/README.md b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..014628f --- /dev/null +++ b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcclellan_summation_index_jsmootherw4flo.mq5` + +### Screenshots: +![Screenshot](cb__13.png) +![Screenshot](example__15.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/cb__13.png b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/cb__13.png new file mode 100644 index 0000000..b72ff5c Binary files /dev/null and b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/cb__13.png differ diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/example__15.png b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/example__15.png new file mode 100644 index 0000000..60b8c2e Binary files /dev/null and b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/example__15.png differ diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/indicator.png b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/indicator.png differ diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/logo-2.png b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/logo-2.png differ diff --git a/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/mcclellan_summation_index_jsmootherw4flo.mq5 b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/mcclellan_summation_index_jsmootherw4flo.mq5 new file mode 100644 index 0000000..44a4bd3 Binary files /dev/null and b/McClellan Summation Index - smoother with floating levels - indicator for MetaTrader 5/mcclellan_summation_index_jsmootherw4flo.mq5 differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/McClellan_Oscillator.png b/McClellan_Oscillator - indicator for MetaTrader 5/McClellan_Oscillator.png new file mode 100644 index 0000000..5e59f45 Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/McClellan_Oscillator.png differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/README.md b/McClellan_Oscillator - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..d435d0b --- /dev/null +++ b/McClellan_Oscillator - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcclellan_oscillator.mq5` + +### Screenshots: +![Screenshot](McClellan_Oscillator.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/expert.png b/McClellan_Oscillator - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/expert.png differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/indicator.png b/McClellan_Oscillator - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/indicator.png differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/logo-2.png b/McClellan_Oscillator - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/logo-2.png differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/mcclellan_oscillator.mq5 b/McClellan_Oscillator - indicator for MetaTrader 5/mcclellan_oscillator.mq5 new file mode 100644 index 0000000..22ec5d6 Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/mcclellan_oscillator.mq5 differ diff --git a/McClellan_Oscillator - indicator for MetaTrader 5/script.png b/McClellan_Oscillator - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/McClellan_Oscillator - indicator for MetaTrader 5/script.png differ diff --git a/McClellan_Summation_Index - indicator for MetaTrader 5/McClellan_Summation_Index.png b/McClellan_Summation_Index - indicator for MetaTrader 5/McClellan_Summation_Index.png new file mode 100644 index 0000000..109f2f4 Binary files /dev/null and b/McClellan_Summation_Index - indicator for MetaTrader 5/McClellan_Summation_Index.png differ diff --git a/McClellan_Summation_Index - indicator for MetaTrader 5/README.md b/McClellan_Summation_Index - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b2ecfb4 --- /dev/null +++ b/McClellan_Summation_Index - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcclellan_summation_index.mq5` + +### Screenshots: +![Screenshot](McClellan_Summation_Index.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McClellan_Summation_Index - indicator for MetaTrader 5/indicator.png b/McClellan_Summation_Index - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McClellan_Summation_Index - indicator for MetaTrader 5/indicator.png differ diff --git a/McClellan_Summation_Index - indicator for MetaTrader 5/logo-2.png b/McClellan_Summation_Index - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McClellan_Summation_Index - indicator for MetaTrader 5/logo-2.png differ diff --git a/McClellan_Summation_Index - indicator for MetaTrader 5/mcclellan_summation_index.mq5 b/McClellan_Summation_Index - indicator for MetaTrader 5/mcclellan_summation_index.mq5 new file mode 100644 index 0000000..6e444b0 Binary files /dev/null and b/McClellan_Summation_Index - indicator for MetaTrader 5/mcclellan_summation_index.mq5 differ diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_001__1.png b/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_001__1.png new file mode 100644 index 0000000..94f50fd Binary files /dev/null and b/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_001__1.png differ diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_003.png b/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_003.png new file mode 100644 index 0000000..fb97fea Binary files /dev/null and b/McGinley Dynamic Indicator - indicator for MetaTrader 5/MG_003.png differ diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/README.md b/McGinley Dynamic Indicator - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..e7633e2 --- /dev/null +++ b/McGinley Dynamic Indicator - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcginley_dynamic.mq5` + +### Screenshots: +![Screenshot](MG_001__1.png) +![Screenshot](MG_003.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/indicator.png b/McGinley Dynamic Indicator - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McGinley Dynamic Indicator - indicator for MetaTrader 5/indicator.png differ diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/logo-2.png b/McGinley Dynamic Indicator - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McGinley Dynamic Indicator - indicator for MetaTrader 5/logo-2.png differ diff --git a/McGinley Dynamic Indicator - indicator for MetaTrader 5/mcginley_dynamic.mq5 b/McGinley Dynamic Indicator - indicator for MetaTrader 5/mcginley_dynamic.mq5 new file mode 100644 index 0000000..fc5fa1d --- /dev/null +++ b/McGinley Dynamic Indicator - indicator for MetaTrader 5/mcginley_dynamic.mq5 @@ -0,0 +1,87 @@ +//+------------------------------------------------------------------+ +//| McGinley_Dynamic.mq5 | +//| Copyright 2018, Samuel Williams | +//| https://www.mql5.com/en/users/sambo3261 | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2018, Samuel Williams" +#property link "https://www.mql5.com/en/users/sambo3261" +#property version "1.1" +#property indicator_chart_window +#property indicator_buffers 2 +#property indicator_plots 1 +//--- plot MD +#property indicator_label1 "MD" +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrYellow +#property indicator_style1 STYLE_SOLID +#property indicator_width1 1 +//--- input parameters +input int MD_smooth=125; //Smoothing parameter (60% of equivalent MA period) +//--- indicator buffers +double MDBuffer[]; +double EMABuffer[]; +//---External Indicator handles +int EMAHandle; + +//---Copied result +int CopiedEMA=0; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//--- indicator buffers mapping + SetIndexBuffer(0,MDBuffer,INDICATOR_DATA); + SetIndexBuffer(1,EMABuffer,INDICATOR_CALCULATIONS); +//---Copying external indicator to handle + int periodTemp=MathRound(MD_smooth*0.6); + EMAHandle=iMA(_Symbol,_Period,periodTemp,0,MODE_EMA,PRICE_CLOSE); +//--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { + int i,start; +//--Copy external handle to buffer + CopiedEMA=CopyBuffer(EMAHandle,0,0,rates_total,EMABuffer); + if(CopiedEMA<0) + { + PrintFormat("Error in copy EMA buffer, code %d",GetLastError()); + } +//---check for rates total + if(rates_total<2) + { + return(0); + } + if(prev_calculated==0) + { + //--- First values are not calculated + double firstMD=0.0; + for(i=1;i<=2;i++) + { + MDBuffer[i]=EMABuffer[i]; + firstMD+=(close[i]-EMABuffer[i-1])/(MD_smooth*close[i]/EMABuffer[i-1]); + } + start=2+1; + } + else start=prev_calculated-1; + for(i=start;i Made with вќ¤пёЏ for the trading community. diff --git a/McGinley dynamic (official) - indicator for MetaTrader 5/indicator.png b/McGinley dynamic (official) - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McGinley dynamic (official) - indicator for MetaTrader 5/indicator.png differ diff --git a/McGinley dynamic (official) - indicator for MetaTrader 5/library.png b/McGinley dynamic (official) - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/McGinley dynamic (official) - indicator for MetaTrader 5/library.png differ diff --git a/McGinley dynamic (official) - indicator for MetaTrader 5/logo-2.png b/McGinley dynamic (official) - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McGinley dynamic (official) - indicator for MetaTrader 5/logo-2.png differ diff --git a/McGinley dynamic (official) - indicator for MetaTrader 5/mcginley_dynamic_average_jofficial2.mq5 b/McGinley dynamic (official) - indicator for MetaTrader 5/mcginley_dynamic_average_jofficial2.mq5 new file mode 100644 index 0000000..d62496c Binary files /dev/null and b/McGinley dynamic (official) - indicator for MetaTrader 5/mcginley_dynamic_average_jofficial2.mq5 differ diff --git a/McGinley dynamic (official) - indicator for MetaTrader 5/script.png b/McGinley dynamic (official) - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/McGinley dynamic (official) - indicator for MetaTrader 5/script.png differ diff --git a/McGinley dynamic average - indicator for MetaTrader 5/README.md b/McGinley dynamic average - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..8f6958d --- /dev/null +++ b/McGinley dynamic average - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mcginley_dynamic_average.mq5` + +### Screenshots: +![Screenshot](cb__27.png) +![Screenshot](example__35.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/McGinley dynamic average - indicator for MetaTrader 5/cb__27.png b/McGinley dynamic average - indicator for MetaTrader 5/cb__27.png new file mode 100644 index 0000000..c25a45d Binary files /dev/null and b/McGinley dynamic average - indicator for MetaTrader 5/cb__27.png differ diff --git a/McGinley dynamic average - indicator for MetaTrader 5/example__35.png b/McGinley dynamic average - indicator for MetaTrader 5/example__35.png new file mode 100644 index 0000000..2bbd187 Binary files /dev/null and b/McGinley dynamic average - indicator for MetaTrader 5/example__35.png differ diff --git a/McGinley dynamic average - indicator for MetaTrader 5/indicator.png b/McGinley dynamic average - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/McGinley dynamic average - indicator for MetaTrader 5/indicator.png differ diff --git a/McGinley dynamic average - indicator for MetaTrader 5/logo-2.png b/McGinley dynamic average - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/McGinley dynamic average - indicator for MetaTrader 5/logo-2.png differ diff --git a/McGinley dynamic average - indicator for MetaTrader 5/mcginley_dynamic_average.mq5 b/McGinley dynamic average - indicator for MetaTrader 5/mcginley_dynamic_average.mq5 new file mode 100644 index 0000000..0098775 Binary files /dev/null and b/McGinley dynamic average - indicator for MetaTrader 5/mcginley_dynamic_average.mq5 differ diff --git a/Mean_Indicator - indicator for MetaTrader 5/Mean_Indicator.png b/Mean_Indicator - indicator for MetaTrader 5/Mean_Indicator.png new file mode 100644 index 0000000..392c56b Binary files /dev/null and b/Mean_Indicator - indicator for MetaTrader 5/Mean_Indicator.png differ diff --git a/Mean_Indicator - indicator for MetaTrader 5/README.md b/Mean_Indicator - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..006f292 --- /dev/null +++ b/Mean_Indicator - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mean_indicator.mq5` + +### Screenshots: +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mean_Indicator - indicator for MetaTrader 5/indicator.png b/Mean_Indicator - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mean_Indicator - indicator for MetaTrader 5/indicator.png differ diff --git a/Mean_Indicator - indicator for MetaTrader 5/library.png b/Mean_Indicator - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Mean_Indicator - indicator for MetaTrader 5/library.png differ diff --git a/Mean_Indicator - indicator for MetaTrader 5/logo-2.png b/Mean_Indicator - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mean_Indicator - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mean_Indicator - indicator for MetaTrader 5/mean_indicator.mq5 b/Mean_Indicator - indicator for MetaTrader 5/mean_indicator.mq5 new file mode 100644 index 0000000..d003fc7 Binary files /dev/null and b/Mean_Indicator - indicator for MetaTrader 5/mean_indicator.mq5 differ diff --git a/Mean_Reversion - indicator for MetaTrader 5/Mean_Reversion.png b/Mean_Reversion - indicator for MetaTrader 5/Mean_Reversion.png new file mode 100644 index 0000000..c55d2f1 Binary files /dev/null and b/Mean_Reversion - indicator for MetaTrader 5/Mean_Reversion.png differ diff --git a/Mean_Reversion - indicator for MetaTrader 5/README.md b/Mean_Reversion - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2db9298 --- /dev/null +++ b/Mean_Reversion - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mean_reversion.mq5` + +### Screenshots: +![Screenshot](Mean_Reversion.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mean_Reversion - indicator for MetaTrader 5/indicator.png b/Mean_Reversion - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mean_Reversion - indicator for MetaTrader 5/indicator.png differ diff --git a/Mean_Reversion - indicator for MetaTrader 5/logo-2.png b/Mean_Reversion - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mean_Reversion - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mean_Reversion - indicator for MetaTrader 5/mean_reversion.mq5 b/Mean_Reversion - indicator for MetaTrader 5/mean_reversion.mq5 new file mode 100644 index 0000000..ea31f0a Binary files /dev/null and b/Mean_Reversion - indicator for MetaTrader 5/mean_reversion.mq5 differ diff --git a/Median Moving Average - indicator for MetaTrader 5/MedianMA.png b/Median Moving Average - indicator for MetaTrader 5/MedianMA.png new file mode 100644 index 0000000..153da4d Binary files /dev/null and b/Median Moving Average - indicator for MetaTrader 5/MedianMA.png differ diff --git a/Median Moving Average - indicator for MetaTrader 5/README.md b/Median Moving Average - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b6139bc --- /dev/null +++ b/Median Moving Average - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `medianma.mq5` + +### Screenshots: +![Screenshot](MedianMA.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Median Moving Average - indicator for MetaTrader 5/indicator.png b/Median Moving Average - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Median Moving Average - indicator for MetaTrader 5/indicator.png differ diff --git a/Median Moving Average - indicator for MetaTrader 5/logo-2.png b/Median Moving Average - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Median Moving Average - indicator for MetaTrader 5/logo-2.png differ diff --git a/Median Moving Average - indicator for MetaTrader 5/medianma.mq5 b/Median Moving Average - indicator for MetaTrader 5/medianma.mq5 new file mode 100644 index 0000000..5e76367 Binary files /dev/null and b/Median Moving Average - indicator for MetaTrader 5/medianma.mq5 differ diff --git a/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/MetaCotToolBox.png b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/MetaCotToolBox.png new file mode 100644 index 0000000..a4a9455 Binary files /dev/null and b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/MetaCotToolBox.png differ diff --git a/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/README.md b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..df4ac1c --- /dev/null +++ b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/README.md @@ -0,0 +1,18 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Screenshots: +![Screenshot](MetaCotToolBox.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/indicator.png b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/indicator.png differ diff --git a/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/logo-2.png b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MetaCOT 2 CFTC ToolBox (Set of Indicators) MT5 - indicator for MetaTrader 5/logo-2.png differ diff --git a/MicroPivots - indicator for MetaTrader 5/MicroPivots.png b/MicroPivots - indicator for MetaTrader 5/MicroPivots.png new file mode 100644 index 0000000..c2a84f2 Binary files /dev/null and b/MicroPivots - indicator for MetaTrader 5/MicroPivots.png differ diff --git a/MicroPivots - indicator for MetaTrader 5/MicroPivots0.png b/MicroPivots - indicator for MetaTrader 5/MicroPivots0.png new file mode 100644 index 0000000..cb697ad Binary files /dev/null and b/MicroPivots - indicator for MetaTrader 5/MicroPivots0.png differ diff --git a/MicroPivots - indicator for MetaTrader 5/README.md b/MicroPivots - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b9ccf62 --- /dev/null +++ b/MicroPivots - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `micropivots.mq5` + +### Screenshots: +![Screenshot](MicroPivots.png) +![Screenshot](MicroPivots0.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MicroPivots - indicator for MetaTrader 5/indicator.png b/MicroPivots - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MicroPivots - indicator for MetaTrader 5/indicator.png differ diff --git a/MicroPivots - indicator for MetaTrader 5/logo-2.png b/MicroPivots - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MicroPivots - indicator for MetaTrader 5/logo-2.png differ diff --git a/MicroPivots - indicator for MetaTrader 5/micropivots.mq5 b/MicroPivots - indicator for MetaTrader 5/micropivots.mq5 new file mode 100644 index 0000000..aa5e546 Binary files /dev/null and b/MicroPivots - indicator for MetaTrader 5/micropivots.mq5 differ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/README.md b/Mikahekin_HTF - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..8ac4269 --- /dev/null +++ b/Mikahekin_HTF - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mikahekin.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](picture__43.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/expert.png b/Mikahekin_HTF - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mikahekin_HTF - indicator for MetaTrader 5/expert.png differ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/indicator.png b/Mikahekin_HTF - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mikahekin_HTF - indicator for MetaTrader 5/indicator.png differ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/library.png b/Mikahekin_HTF - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Mikahekin_HTF - indicator for MetaTrader 5/library.png differ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/logo-2.png b/Mikahekin_HTF - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mikahekin_HTF - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/mikahekin.mq5 b/Mikahekin_HTF - indicator for MetaTrader 5/mikahekin.mq5 new file mode 100644 index 0000000..6d99fb6 --- /dev/null +++ b/Mikahekin_HTF - indicator for MetaTrader 5/mikahekin.mq5 @@ -0,0 +1,245 @@ +//+------------------------------------------------------------------+ +//| Mikahekin.mq5 | +//| | +//| Modified by: Ronald Verwer/ROVERCOM | +//+------------------------------------------------------------------+ +#property copyright "" +#property link "" +//---- номер версии индикатора +#property version "1.00" +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +//---- количество индикаторных буферов 5 +#property indicator_buffers 5 +//---- использовано три графических построения +#property indicator_plots 3 +//+-----------------------------------+ +//| Параметры отрисовки индикатора | +//+-----------------------------------+ +//---- отрисовка индикатора в виде линии +#property indicator_type1 DRAW_COLOR_HISTOGRAM2 +//---- в качестве цветов индикатора использованы +#property indicator_color1 Gray,Red,Lime +//---- линия индикатора - непрерывная кривая +#property indicator_style1 STYLE_SOLID +//---- толщина линии индикатора равна 5 +#property indicator_width1 5 +//---- отображение метки индикатора +#property indicator_label1 "Signal" + +//---- отрисовка индикатора в виде значка +#property indicator_type2 DRAW_ARROW +//---- в качестве цвета индикатора использован розовый цвет +#property indicator_color2 Magenta +//---- толщина индикатора равна 1 +#property indicator_width2 1 +//---- отображение метки индикатора +#property indicator_label2 "Buy StopLoss" + +//---- отрисовка индикатора в виде значка +#property indicator_type3 DRAW_ARROW +//---- в качестве цвета индикатора использован розовый цвет +#property indicator_color3 Blue +//---- толщина индикатора равна 1 +#property indicator_width3 1 +//---- отображение метки индикатора +#property indicator_label3 "Sell StopLoss" + +//+-----------------------------------+ +//| ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА | +//+-----------------------------------+ +input int KPeriod=3; +input int JPeriod=7; +//+-----------------------------------+ +//---- объявление динамических массивов, которые будут в +// дальнейшем использованы в качестве индикаторных буферов +double UpperBuffer[]; +double LowerBuffer[]; +double OpMiddleBuffer[]; +double ClMiddleBuffer[]; +double ColorMiddleBuffer[]; +//---- Объявление глобальных переменных +int Count[]; +double Highest[],Lowest[]; +//---- Объявление целых переменных начала отсчёта данных +int min_rates_total; +//+------------------------------------------------------------------+ +//| пересчёт позиции самого нового элемента в массиве | +//+------------------------------------------------------------------+ +void Recount_ArrayZeroPos +( + int &CoArr[]// Возврат по ссылке номера текущего значения ценового ряда + ) +// Recount_ArrayZeroPos(count) +//+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ + { +//---- + int numb,Max1,Max2; + static int count=1; + + Max2=MathMax(KPeriod,JPeriod); + Max1=Max2-1; + + count--; + if(count<0) count=Max1; + + for(int iii=0; iiiMax1) numb-=Max2; + CoArr[iii]=numb; + } +//---- + } +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +void OnInit() + { +//---- Инициализация констант + min_rates_total=KPeriod+JPeriod; + +//---- Распределение памяти под массивы переменных + ArrayResize(Count,JPeriod); + ArrayResize(Highest,JPeriod); + ArrayResize(Lowest,JPeriod); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(0,OpMiddleBuffer,INDICATOR_CALCULATIONS); +//---- осуществление сдвига начала отсчёта отрисовки индикатора 1 + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(OpMiddleBuffer,true); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(1,ClMiddleBuffer,INDICATOR_CALCULATIONS); +//---- осуществление сдвига начала отсчёта отрисовки индикатора 2 + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(ClMiddleBuffer,true); + +//---- превращение динамического массива в цветовой, индексный буфер + SetIndexBuffer(2,ColorMiddleBuffer,INDICATOR_COLOR_INDEX); +//---- осуществление сдвига начала отсчёта отрисовки индикатора + PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(ColorMiddleBuffer,true); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(3,UpperBuffer,INDICATOR_DATA); +//---- осуществление сдвига начала отсчёта отрисовки индикатора 3 + PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,EMPTY_VALUE); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(UpperBuffer,true); + +//---- превращение динамического массива в индикаторный буфер + SetIndexBuffer(4,LowerBuffer,INDICATOR_DATA); +//---- осуществление сдвига начала отсчёта отрисовки индикатора 4 + PlotIndexSetInteger(4,PLOT_DRAW_BEGIN,min_rates_total); +//---- установка значений индикатора, которые не будут видимы на графике + PlotIndexSetDouble(4,PLOT_EMPTY_VALUE,EMPTY_VALUE); +//---- индексация элементов в буфере как в таймсерии + ArraySetAsSeries(LowerBuffer,true); + +//---- инициализации переменной для короткого имени индикатора + string shortname; + StringConcatenate(shortname,"Mikahekin( ",KPeriod,", ",JPeriod," )"); +//--- создание имени для отображения в отдельном подокне и во всплывающей подсказке + IndicatorSetString(INDICATOR_SHORTNAME,shortname); +//--- определение точности отображения значений индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1); +//---- завершение инициализации + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[] + ) + { +//---- проверка количества баров на достаточность для расчёта + if(rates_totalrates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора + limit=rates_total-KPeriod-1; // стартовый номер для расчёта всех баров + else limit=rates_total-prev_calculated; // стартовый номер для расчёта только новых баров + +//---- индексация элементов в массивах как в таймсериях + ArraySetAsSeries(high,true); + ArraySetAsSeries(low,true); + ArraySetAsSeries(open,true); + ArraySetAsSeries(close,true); + +//---- Основной цикл расчёта средней линии канала + for(bar=limit; bar>=0; bar--) + { + Highest[Count[0]]=high[ArrayMaximum(high,bar,KPeriod)]; + Lowest [Count[0]]=low [ArrayMinimum(low, bar,KPeriod)]; + + if(bar>rates_total-min_rates_total-1) + { + Recount_ArrayZeroPos(Count); + continue; + } + + sumlow=0.0; + sumhigh=0.0; + sumopen=0.0; + sumclose=0.0; + + for(int kkk=0; kkkOp) ColorMiddleBuffer[bar]=2; + if(Cl0) Recount_ArrayZeroPos(Count); + } +//---- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/Mikahekin_HTF - indicator for MetaTrader 5/picture__43.png b/Mikahekin_HTF - indicator for MetaTrader 5/picture__43.png new file mode 100644 index 0000000..a8215f5 Binary files /dev/null and b/Mikahekin_HTF - indicator for MetaTrader 5/picture__43.png differ diff --git a/Mikahekin_System - indicator for MetaTrader 5/README.md b/Mikahekin_System - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b20924c --- /dev/null +++ b/Mikahekin_System - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mikahekin_system.mq5` + +### Screenshots: +![Screenshot](picture__45.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mikahekin_System - indicator for MetaTrader 5/expert.png b/Mikahekin_System - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mikahekin_System - indicator for MetaTrader 5/expert.png differ diff --git a/Mikahekin_System - indicator for MetaTrader 5/indicator.png b/Mikahekin_System - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mikahekin_System - indicator for MetaTrader 5/indicator.png differ diff --git a/Mikahekin_System - indicator for MetaTrader 5/logo-2.png b/Mikahekin_System - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mikahekin_System - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mikahekin_System - indicator for MetaTrader 5/mikahekin_system.mq5 b/Mikahekin_System - indicator for MetaTrader 5/mikahekin_system.mq5 new file mode 100644 index 0000000..dc879cd Binary files /dev/null and b/Mikahekin_System - indicator for MetaTrader 5/mikahekin_system.mq5 differ diff --git a/Mikahekin_System - indicator for MetaTrader 5/picture__45.png b/Mikahekin_System - indicator for MetaTrader 5/picture__45.png new file mode 100644 index 0000000..1455365 Binary files /dev/null and b/Mikahekin_System - indicator for MetaTrader 5/picture__45.png differ diff --git a/Mikko Breakout - indicator for MetaTrader 5/README.md b/Mikko Breakout - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..59aae5e --- /dev/null +++ b/Mikko Breakout - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mikko_breakout.mq5` + +### Screenshots: +![Screenshot](cb__9.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mikko Breakout - indicator for MetaTrader 5/cb__9.png b/Mikko Breakout - indicator for MetaTrader 5/cb__9.png new file mode 100644 index 0000000..4fbffec Binary files /dev/null and b/Mikko Breakout - indicator for MetaTrader 5/cb__9.png differ diff --git a/Mikko Breakout - indicator for MetaTrader 5/indicator.png b/Mikko Breakout - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mikko Breakout - indicator for MetaTrader 5/indicator.png differ diff --git a/Mikko Breakout - indicator for MetaTrader 5/logo-2.png b/Mikko Breakout - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mikko Breakout - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mikko Breakout - indicator for MetaTrader 5/mikko_breakout.mq5 b/Mikko Breakout - indicator for MetaTrader 5/mikko_breakout.mq5 new file mode 100644 index 0000000..4f604dd Binary files /dev/null and b/Mikko Breakout - indicator for MetaTrader 5/mikko_breakout.mq5 differ diff --git a/MinMax indicator - indicator for MetaTrader 5/README.md b/MinMax indicator - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2a9b843 --- /dev/null +++ b/MinMax indicator - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `minmax.mq5` + +### Screenshots: +![Screenshot](cb__55.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MinMax indicator - indicator for MetaTrader 5/cb__55.png b/MinMax indicator - indicator for MetaTrader 5/cb__55.png new file mode 100644 index 0000000..7d22a59 Binary files /dev/null and b/MinMax indicator - indicator for MetaTrader 5/cb__55.png differ diff --git a/MinMax indicator - indicator for MetaTrader 5/indicator.png b/MinMax indicator - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MinMax indicator - indicator for MetaTrader 5/indicator.png differ diff --git a/MinMax indicator - indicator for MetaTrader 5/logo-2.png b/MinMax indicator - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MinMax indicator - indicator for MetaTrader 5/logo-2.png differ diff --git a/MinMax indicator - indicator for MetaTrader 5/minmax.mq5 b/MinMax indicator - indicator for MetaTrader 5/minmax.mq5 new file mode 100644 index 0000000..68daa9c Binary files /dev/null and b/MinMax indicator - indicator for MetaTrader 5/minmax.mq5 differ diff --git a/MinMax_MA - indicator for MetaTrader 5/MinMax_MA.png b/MinMax_MA - indicator for MetaTrader 5/MinMax_MA.png new file mode 100644 index 0000000..838d6f6 Binary files /dev/null and b/MinMax_MA - indicator for MetaTrader 5/MinMax_MA.png differ diff --git a/MinMax_MA - indicator for MetaTrader 5/README.md b/MinMax_MA - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..086f8a4 --- /dev/null +++ b/MinMax_MA - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `minmax_ma.mq5` + +### Screenshots: +![Screenshot](MinMax_MA.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MinMax_MA - indicator for MetaTrader 5/indicator.png b/MinMax_MA - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MinMax_MA - indicator for MetaTrader 5/indicator.png differ diff --git a/MinMax_MA - indicator for MetaTrader 5/logo-2.png b/MinMax_MA - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MinMax_MA - indicator for MetaTrader 5/logo-2.png differ diff --git a/MinMax_MA - indicator for MetaTrader 5/minmax_ma.mq5 b/MinMax_MA - indicator for MetaTrader 5/minmax_ma.mq5 new file mode 100644 index 0000000..bf55ef9 Binary files /dev/null and b/MinMax_MA - indicator for MetaTrader 5/minmax_ma.mq5 differ diff --git a/MinPriceDistribution - indicator for MetaTrader 5/README.md b/MinPriceDistribution - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..30db84e --- /dev/null +++ b/MinPriceDistribution - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `minpricedistribution.mq5` + +### Screenshots: +![Screenshot](picture__6.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MinPriceDistribution - indicator for MetaTrader 5/indicator.png b/MinPriceDistribution - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MinPriceDistribution - indicator for MetaTrader 5/indicator.png differ diff --git a/MinPriceDistribution - indicator for MetaTrader 5/logo-2.png b/MinPriceDistribution - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MinPriceDistribution - indicator for MetaTrader 5/logo-2.png differ diff --git a/MinPriceDistribution - indicator for MetaTrader 5/minpricedistribution.mq5 b/MinPriceDistribution - indicator for MetaTrader 5/minpricedistribution.mq5 new file mode 100644 index 0000000..e1c23c5 --- /dev/null +++ b/MinPriceDistribution - indicator for MetaTrader 5/minpricedistribution.mq5 @@ -0,0 +1,188 @@ +//+------------------------------------------------------------------+ +//| MinPriceDistribution.mq5 | +//| Copyright © 2012, Khlystov Vladimir | +//| http://cmillion.narod.ru | +//+------------------------------------------------------------------+ +//---- авторство индикатора +#property copyright "Copyright © 2012, cmillion@narod.ru" +//---- ссылка на сайт автора +#property link "http://cmillion.narod.ru" +#property description "Индикатор показывает гистограмму распределения экстемальных минимумов цен за период в барах от текущего" +//---- отрисовка индикатора в главном окне +#property indicator_chart_window +//---- для расчёта индикатора использовано два буфера +#property indicator_buffers 2 +//---- для расчёта и отрисовки индикатора не используются графические построения +#property indicator_plots 0 + +//+----------------------------------------------+ +//| Входные параметры индикатора | +//+----------------------------------------------+ +input string SirName="MinPriceDistribution"; //Первая часть имени графических объектов +input uint iPeriod=3000; //период расчёта +input int Shift=-300; //сдвиг начального уровня отрисовки гистограммы +input double Dev=30.0; //масштаб отрисовки гистограммы +input color PrColor=clrLightPink; //цвет количества цен +//+----------------------------------------------+ +//--- объявление целочисленных переменных начала отсчета данных +int min_rates_total, iperiod; +//--- объявление целочисленных переменных для хендлов индикаторов +int Ind_Handle; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//---- инициализация глобальных переменных + min_rates_total=int(iPeriod); + iperiod=int(iPeriod); +//---- Установка формата точности отображения индикатора + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//---- имя для окон данных и лэйба для субъокон + string short_name="MinPriceDistribution"; + IndicatorSetString(INDICATOR_SHORTNAME,short_name); +//--- завершение инициализации + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) + { +//---- + ObjectsDeleteAll(0,SirName,-1,OBJ_TREND); + Comment(""); +//---- + ChartRedraw(0); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//---- объявления локальных переменных + int to_copy,Pr,limit; + double max,min,P; + string txt,name; + +//---- расчёты необходимого количества копируемых данных и +//стартового номера limit для цикла пересчёта баров + if(prev_calculated>rates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора + { + limit=rates_total-1; + } + else + { + limit=rates_total-prev_calculated; + } + if(!limit) return(rates_total); + to_copy=limit+1; + +//---- индексация элементов в массивах как в таймсериях + ArraySetAsSeries(high,true); + ArraySetAsSeries(low,true); + ArraySetAsSeries(close,true); + ArraySetAsSeries(time,true); +//---- сдвигаем отрисовку гистограммы по горизонтали + datetime TimeSt = time[0]+PeriodSeconds()*Shift; +//---- + max=high[ArrayMaximum(high,0,iperiod)]; + min=low[ArrayMinimum(low,0,iperiod)]; + iperiod=MathMin(iperiod,rates_total-2); + txt=""; + StringConcatenate(txt,"Баров в истории ",iperiod," с ",TimeToString(time[iperiod],TIME_DATE), + "\nМаксимум ",DoubleToString(max,_Digits),"\nМинимум ",DoubleToString(min,_Digits)); + Comment(txt,"\n","Старт расчета ",TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)); + + Pr=int((max-min)/_Point); + double Price[]; + ArrayResize(Price,Pr); + ArrayInitialize(Price,0); + for(int bar=1; bar<=int(iperiod); bar++) + { + for(int kkk=0; kkkclose[bar] && close[bar] Made with вќ¤пёЏ for the trading community. diff --git a/Min_Max_Volume - indicator for MetaTrader 5/expert.png b/Min_Max_Volume - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Min_Max_Volume - indicator for MetaTrader 5/expert.png differ diff --git a/Min_Max_Volume - indicator for MetaTrader 5/indicator.png b/Min_Max_Volume - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Min_Max_Volume - indicator for MetaTrader 5/indicator.png differ diff --git a/Min_Max_Volume - indicator for MetaTrader 5/logo-2.png b/Min_Max_Volume - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Min_Max_Volume - indicator for MetaTrader 5/logo-2.png differ diff --git a/Min_Max_Volume - indicator for MetaTrader 5/min_max_volume.mq5 b/Min_Max_Volume - indicator for MetaTrader 5/min_max_volume.mq5 new file mode 100644 index 0000000..c838d4a Binary files /dev/null and b/Min_Max_Volume - indicator for MetaTrader 5/min_max_volume.mq5 differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture__1.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture__1.png new file mode 100644 index 0000000..eeff1d5 Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture__1.png differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture_cb.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture_cb.png new file mode 100644 index 0000000..b91c10c Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/Capture_cb.png differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/README.md b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..363d7a0 --- /dev/null +++ b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/README.md @@ -0,0 +1,24 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `minmax_sr.mq5` + +### Screenshots: +![Screenshot](Capture_cb.png) +![Screenshot](Capture__1.png) +![Screenshot](library.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/indicator.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/indicator.png differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/library.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/library.png differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/logo-2.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/logo-2.png differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/minmax_sr.mq5 b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/minmax_sr.mq5 new file mode 100644 index 0000000..fef0e38 Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/minmax_sr.mq5 differ diff --git a/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/script.png b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/Minimum _ maximum support resistance zones - indicator for MetaTrader 5/script.png differ diff --git a/Mirror_Bands - indicator for MetaTrader 5/Mirror_Bands.png b/Mirror_Bands - indicator for MetaTrader 5/Mirror_Bands.png new file mode 100644 index 0000000..44dd2a8 Binary files /dev/null and b/Mirror_Bands - indicator for MetaTrader 5/Mirror_Bands.png differ diff --git a/Mirror_Bands - indicator for MetaTrader 5/README.md b/Mirror_Bands - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..cd36312 --- /dev/null +++ b/Mirror_Bands - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mirror_bands.mq5` + +### Screenshots: +![Screenshot](Mirror_Bands.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mirror_Bands - indicator for MetaTrader 5/indicator.png b/Mirror_Bands - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mirror_Bands - indicator for MetaTrader 5/indicator.png differ diff --git a/Mirror_Bands - indicator for MetaTrader 5/logo-2.png b/Mirror_Bands - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mirror_Bands - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mirror_Bands - indicator for MetaTrader 5/mirror_bands.mq5 b/Mirror_Bands - indicator for MetaTrader 5/mirror_bands.mq5 new file mode 100644 index 0000000..0b3897d Binary files /dev/null and b/Mirror_Bands - indicator for MetaTrader 5/mirror_bands.mq5 differ diff --git a/Mirror_MA - indicator for MetaTrader 5/Mirror_MA.png b/Mirror_MA - indicator for MetaTrader 5/Mirror_MA.png new file mode 100644 index 0000000..d7da63b Binary files /dev/null and b/Mirror_MA - indicator for MetaTrader 5/Mirror_MA.png differ diff --git a/Mirror_MA - indicator for MetaTrader 5/README.md b/Mirror_MA - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..5fb23f0 --- /dev/null +++ b/Mirror_MA - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mirror_ma.mq5` + +### Screenshots: +![Screenshot](Mirror_MA.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mirror_MA - indicator for MetaTrader 5/expert.png b/Mirror_MA - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mirror_MA - indicator for MetaTrader 5/expert.png differ diff --git a/Mirror_MA - indicator for MetaTrader 5/indicator.png b/Mirror_MA - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mirror_MA - indicator for MetaTrader 5/indicator.png differ diff --git a/Mirror_MA - indicator for MetaTrader 5/logo-2.png b/Mirror_MA - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mirror_MA - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mirror_MA - indicator for MetaTrader 5/mirror_ma.mq5 b/Mirror_MA - indicator for MetaTrader 5/mirror_ma.mq5 new file mode 100644 index 0000000..92f8795 Binary files /dev/null and b/Mirror_MA - indicator for MetaTrader 5/mirror_ma.mq5 differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_1.png b/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_1.png new file mode 100644 index 0000000..223d781 Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_1.png differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_2.png b/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_2.png new file mode 100644 index 0000000..c20dbe5 Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/Mirror_RSI_2.png differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/README.md b/Mirror_RSI - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..11232eb --- /dev/null +++ b/Mirror_RSI - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mirror_rsi.mq5` + +### Screenshots: +![Screenshot](Mirror_RSI_1.png) +![Screenshot](Mirror_RSI_2.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mirror_RSI - indicator for MetaTrader 5/expert.png b/Mirror_RSI - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/expert.png differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/indicator.png b/Mirror_RSI - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/indicator.png differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/logo-2.png b/Mirror_RSI - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mirror_RSI - indicator for MetaTrader 5/mirror_rsi.mq5 b/Mirror_RSI - indicator for MetaTrader 5/mirror_rsi.mq5 new file mode 100644 index 0000000..bdad72b Binary files /dev/null and b/Mirror_RSI - indicator for MetaTrader 5/mirror_rsi.mq5 differ diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/Mod_ATR_Trailing_Stop.png b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/Mod_ATR_Trailing_Stop.png new file mode 100644 index 0000000..b054eeb Binary files /dev/null and b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/Mod_ATR_Trailing_Stop.png differ diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/README.md b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..8c598e7 --- /dev/null +++ b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mod_atr_trailing_stop.mq5` + +### Screenshots: +![Screenshot](Mod_ATR_Trailing_Stop.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/expert.png b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/expert.png differ diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/indicator.png b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/indicator.png differ diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/logo-2.png b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/mod_atr_trailing_stop.mq5 b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/mod_atr_trailing_stop.mq5 new file mode 100644 index 0000000..f8af68a Binary files /dev/null and b/Mod_ATR_Trailing_Stop - indicator for MetaTrader 5/mod_atr_trailing_stop.mq5 differ diff --git a/Modeling_The_Market - indicator for MetaTrader 5/Modeling_The_Market.png b/Modeling_The_Market - indicator for MetaTrader 5/Modeling_The_Market.png new file mode 100644 index 0000000..29dbdcc Binary files /dev/null and b/Modeling_The_Market - indicator for MetaTrader 5/Modeling_The_Market.png differ diff --git a/Modeling_The_Market - indicator for MetaTrader 5/README.md b/Modeling_The_Market - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..8597b18 --- /dev/null +++ b/Modeling_The_Market - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `modeling_the_market.mq5` + +### Screenshots: +![Screenshot](Modeling_The_Market.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Modeling_The_Market - indicator for MetaTrader 5/expert.png b/Modeling_The_Market - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Modeling_The_Market - indicator for MetaTrader 5/expert.png differ diff --git a/Modeling_The_Market - indicator for MetaTrader 5/indicator.png b/Modeling_The_Market - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Modeling_The_Market - indicator for MetaTrader 5/indicator.png differ diff --git a/Modeling_The_Market - indicator for MetaTrader 5/logo-2.png b/Modeling_The_Market - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Modeling_The_Market - indicator for MetaTrader 5/logo-2.png differ diff --git a/Modeling_The_Market - indicator for MetaTrader 5/modeling_the_market.mq5 b/Modeling_The_Market - indicator for MetaTrader 5/modeling_the_market.mq5 new file mode 100644 index 0000000..455fab3 Binary files /dev/null and b/Modeling_The_Market - indicator for MetaTrader 5/modeling_the_market.mq5 differ diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/Customizable_Keltner.png b/Modified Keltner Channel - indicator for MetaTrader 5/Customizable_Keltner.png new file mode 100644 index 0000000..4e6c4aa Binary files /dev/null and b/Modified Keltner Channel - indicator for MetaTrader 5/Customizable_Keltner.png differ diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/README.md b/Modified Keltner Channel - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..4532ead --- /dev/null +++ b/Modified Keltner Channel - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `customizable_keltner.mq5` + +### Screenshots: +![Screenshot](Customizable_Keltner.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/customizable_keltner.mq5 b/Modified Keltner Channel - indicator for MetaTrader 5/customizable_keltner.mq5 new file mode 100644 index 0000000..416a25c Binary files /dev/null and b/Modified Keltner Channel - indicator for MetaTrader 5/customizable_keltner.mq5 differ diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/expert.png b/Modified Keltner Channel - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Modified Keltner Channel - indicator for MetaTrader 5/expert.png differ diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/indicator.png b/Modified Keltner Channel - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Modified Keltner Channel - indicator for MetaTrader 5/indicator.png differ diff --git a/Modified Keltner Channel - indicator for MetaTrader 5/logo-2.png b/Modified Keltner Channel - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Modified Keltner Channel - indicator for MetaTrader 5/logo-2.png differ diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/17538.png b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/17538.png new file mode 100644 index 0000000..050b7b8 Binary files /dev/null and b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/17538.png differ diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/README.md b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..364fa9c --- /dev/null +++ b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `modifiedstddev.mq5` + +### Screenshots: +![Screenshot](17538.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/expert.png b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/expert.png differ diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/indicator.png b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/indicator.png differ diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/logo-2.png b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/logo-2.png differ diff --git a/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/modifiedstddev.mq5 b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/modifiedstddev.mq5 new file mode 100644 index 0000000..501c268 Binary files /dev/null and b/Modified Standard Deviation.mq5 - indicator for MetaTrader 5/modifiedstddev.mq5 differ diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/MADL.png b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/MADL.png new file mode 100644 index 0000000..6a5a2d7 Binary files /dev/null and b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/MADL.png differ diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/README.md b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..7a35b3e --- /dev/null +++ b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `modified_advance_decline_line.mq5` + +### Screenshots: +![Screenshot](MADL.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/expert.png b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/expert.png differ diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/indicator.png b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/indicator.png differ diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/logo-2.png b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/logo-2.png differ diff --git a/Modified_Advance_Decline_Line - indicator for MetaTrader 5/modified_advance_decline_line.mq5 b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/modified_advance_decline_line.mq5 new file mode 100644 index 0000000..52cd519 Binary files /dev/null and b/Modified_Advance_Decline_Line - indicator for MetaTrader 5/modified_advance_decline_line.mq5 differ diff --git a/Modified_Moving_Average - indicator for MetaTrader 5/Modified_Moving_Average.png b/Modified_Moving_Average - indicator for MetaTrader 5/Modified_Moving_Average.png new file mode 100644 index 0000000..aac7dfd Binary files /dev/null and b/Modified_Moving_Average - indicator for MetaTrader 5/Modified_Moving_Average.png differ diff --git a/Modified_Moving_Average - indicator for MetaTrader 5/README.md b/Modified_Moving_Average - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..ea23a0d --- /dev/null +++ b/Modified_Moving_Average - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `modified_moving_average.mq5` + +### Screenshots: +![Screenshot](Modified_Moving_Average.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Modified_Moving_Average - indicator for MetaTrader 5/indicator.png b/Modified_Moving_Average - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Modified_Moving_Average - indicator for MetaTrader 5/indicator.png differ diff --git a/Modified_Moving_Average - indicator for MetaTrader 5/logo-2.png b/Modified_Moving_Average - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Modified_Moving_Average - indicator for MetaTrader 5/logo-2.png differ diff --git a/Modified_Moving_Average - indicator for MetaTrader 5/modified_moving_average.mq5 b/Modified_Moving_Average - indicator for MetaTrader 5/modified_moving_average.mq5 new file mode 100644 index 0000000..fbd9d0f Binary files /dev/null and b/Modified_Moving_Average - indicator for MetaTrader 5/modified_moving_average.mq5 differ diff --git a/Mogalef - indicator for MetaTrader 5/Mogalef.png b/Mogalef - indicator for MetaTrader 5/Mogalef.png new file mode 100644 index 0000000..b6d66f4 Binary files /dev/null and b/Mogalef - indicator for MetaTrader 5/Mogalef.png differ diff --git a/Mogalef - indicator for MetaTrader 5/README.md b/Mogalef - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..a0297e6 --- /dev/null +++ b/Mogalef - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mogalef.mq5` + +### Screenshots: +![Screenshot](Mogalef.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mogalef - indicator for MetaTrader 5/expert.png b/Mogalef - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Mogalef - indicator for MetaTrader 5/expert.png differ diff --git a/Mogalef - indicator for MetaTrader 5/indicator.png b/Mogalef - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mogalef - indicator for MetaTrader 5/indicator.png differ diff --git a/Mogalef - indicator for MetaTrader 5/logo-2.png b/Mogalef - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mogalef - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mogalef - indicator for MetaTrader 5/mogalef.mq5 b/Mogalef - indicator for MetaTrader 5/mogalef.mq5 new file mode 100644 index 0000000..c1c2867 Binary files /dev/null and b/Mogalef - indicator for MetaTrader 5/mogalef.mq5 differ diff --git a/Mogalef bands - indicator for MetaTrader 5/README.md b/Mogalef bands - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..6a33792 --- /dev/null +++ b/Mogalef bands - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mogalef_bands.mq5` + +### Screenshots: +![Screenshot](cb__27.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Mogalef bands - indicator for MetaTrader 5/cb__27.png b/Mogalef bands - indicator for MetaTrader 5/cb__27.png new file mode 100644 index 0000000..d385dc9 Binary files /dev/null and b/Mogalef bands - indicator for MetaTrader 5/cb__27.png differ diff --git a/Mogalef bands - indicator for MetaTrader 5/indicator.png b/Mogalef bands - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Mogalef bands - indicator for MetaTrader 5/indicator.png differ diff --git a/Mogalef bands - indicator for MetaTrader 5/logo-2.png b/Mogalef bands - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Mogalef bands - indicator for MetaTrader 5/logo-2.png differ diff --git a/Mogalef bands - indicator for MetaTrader 5/mogalef_bands.mq5 b/Mogalef bands - indicator for MetaTrader 5/mogalef_bands.mq5 new file mode 100644 index 0000000..1279c11 Binary files /dev/null and b/Mogalef bands - indicator for MetaTrader 5/mogalef_bands.mq5 differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Colors.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Colors.png new file mode 100644 index 0000000..f8cda7c Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Colors.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Inputs.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Inputs.png new file mode 100644 index 0000000..3ee507b Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Inputs.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Level.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Level.png new file mode 100644 index 0000000..c1b83a1 Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Level.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Terminal.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Terminal.png new file mode 100644 index 0000000..02f3cf0 Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/Momentum_beginner_tutorial_-_Terminal.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/README.md b/Momentum code for beginners by William210 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..665aa95 --- /dev/null +++ b/Momentum code for beginners by William210 - indicator for MetaTrader 5/README.md @@ -0,0 +1,26 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_beginner_tutorial_by_william210.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](Momentum_beginner_tutorial_-_Colors.png) +![Screenshot](Momentum_beginner_tutorial_-_Inputs.png) +![Screenshot](Momentum_beginner_tutorial_-_Level.png) +![Screenshot](Momentum_beginner_tutorial_-_Terminal.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/indicator.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/library.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/library.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/logo-2.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/momentum_beginner_tutorial_by_william210.mq5 b/Momentum code for beginners by William210 - indicator for MetaTrader 5/momentum_beginner_tutorial_by_william210.mq5 new file mode 100644 index 0000000..9a1d142 Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/momentum_beginner_tutorial_by_william210.mq5 differ diff --git a/Momentum code for beginners by William210 - indicator for MetaTrader 5/script.png b/Momentum code for beginners by William210 - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/Momentum code for beginners by William210 - indicator for MetaTrader 5/script.png differ diff --git a/Momentum Pinball v.2 - indicator for MetaTrader 5/README.md b/Momentum Pinball v.2 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2462e90 --- /dev/null +++ b/Momentum Pinball v.2 - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_pinball.mq5` + +### Screenshots: +![Screenshot](momentum_ppinball.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum Pinball v.2 - indicator for MetaTrader 5/indicator.png b/Momentum Pinball v.2 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum Pinball v.2 - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum Pinball v.2 - indicator for MetaTrader 5/logo-2.png b/Momentum Pinball v.2 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum Pinball v.2 - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_pinball.mq5 b/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_pinball.mq5 new file mode 100644 index 0000000..05892c7 --- /dev/null +++ b/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_pinball.mq5 @@ -0,0 +1,256 @@ +//------------------------------------------------------------------ +#property copyright "mladen" +#property link "www.forex-tsd.com" +#property version "1.00" +#property description "Original idea for the indicator by Nicolas" +//------------------------------------------------------------------ +#property indicator_separate_window +#property indicator_buffers 5 +#property indicator_plots 2 + +#property indicator_label1 "mpb zone" +#property indicator_type1 DRAW_FILLING +#property indicator_color1 clrGainsboro +#property indicator_label2 "Momentum pinball" +#property indicator_type2 DRAW_COLOR_LINE +#property indicator_color2 clrSilver,clrLimeGreen,clrOrangeRed +#property indicator_style2 STYLE_SOLID +#property indicator_width2 2 +#property indicator_minimum 0 +#property indicator_maximum 100 + +// +// +// +// +// + +enum enMaTypes +{ + avgSma, // Simple moving average + avgEma, // Exponential moving average + avgSmma, // Smoothed MA + avgLwma // Linear weighted MA +}; +input int MomentumPeriod = 14; // Momentum period +input int AvgPeriod = 0; // Momentum average period (0 -> same as momentum period +input enMaTypes AvgType = avgEma; // Momentum average method +input double ZoneUp = 70; // Upper zone limit +input double ZoneDown = 30; // Lower zone limit + +// +// +// +// +// +// + +double mom[],momc[],fup[],fdn[],diff[]; + +//------------------------------------------------------------------ +// +//------------------------------------------------------------------ +// +// +// +// +// + +int OnInit() +{ + SetIndexBuffer(0,fup,INDICATOR_DATA); + SetIndexBuffer(1,fdn,INDICATOR_DATA); + SetIndexBuffer(2,mom,INDICATOR_DATA); + SetIndexBuffer(3,momc,INDICATOR_COLOR_INDEX); + SetIndexBuffer(4,diff,INDICATOR_CALCULATIONS); + IndicatorSetString(INDICATOR_SHORTNAME,"Momentum pinball ("+(string)MomentumPeriod+","+(string)AvgPeriod+")"); + return(0); +} + +//------------------------------------------------------------------ +// +//------------------------------------------------------------------ +// +// +// +// +// + +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[]) +{ + int avgPeriod = AvgPeriod; if (avgPeriod<=1) avgPeriod = MomentumPeriod; + + // + // + // + // + // + + for (int i=(int)MathMax(prev_calculated-1,0); idiff[i-1]) u=diff[i]-diff[i-1]; + if (diff[i]fup[i]) momc[i]=1; + if (mom[i]=0; k++) workSma[r][instanceNo+1] += workSma[r-k][instanceNo+0]; + workSma[r][instanceNo+1] /= 1.0*k; + return(workSma[r][instanceNo+1]); +} + +// +// +// +// +// + +double workEma[][_maWorkBufferx1]; +double iEma(double price, double period, int r, int _bars, int instanceNo=0) +{ + if (period<=1) return(price); + if (ArrayRange(workEma,0)!= _bars) ArrayResize(workEma,_bars); + + // + // + // + // + // + + workEma[r][instanceNo] = price; + double alpha = 2.0 / (1.0+period); + if (r>0) + workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]); + return(workEma[r][instanceNo]); +} + +// +// +// +// +// + +double workSmma[][_maWorkBufferx1]; +double iSmma(double price, double period, int r, int _bars, int instanceNo=0) +{ + if (period<=1) return(price); + if (ArrayRange(workSmma,0)!= _bars) ArrayResize(workSmma,_bars); + + // + // + // + // + // + + if (r=0; k++) + { + double weight = period-k; + sumw += weight; + sum += weight*workLwma[r-k][instanceNo]; + } + return(sum/sumw); +} \ No newline at end of file diff --git a/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_ppinball.png b/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_ppinball.png new file mode 100644 index 0000000..56a78dd Binary files /dev/null and b/Momentum Pinball v.2 - indicator for MetaTrader 5/momentum_ppinball.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/EURUSDM1__1.png b/Momentum YTG - indicator for MetaTrader 5/EURUSDM1__1.png new file mode 100644 index 0000000..519234f Binary files /dev/null and b/Momentum YTG - indicator for MetaTrader 5/EURUSDM1__1.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/README.md b/Momentum YTG - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..bc35f70 --- /dev/null +++ b/Momentum YTG - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_ytg.mq5` + +### Screenshots: +![Screenshot](EURUSDM1__1.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum YTG - indicator for MetaTrader 5/expert.png b/Momentum YTG - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Momentum YTG - indicator for MetaTrader 5/expert.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/indicator.png b/Momentum YTG - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum YTG - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/library.png b/Momentum YTG - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Momentum YTG - indicator for MetaTrader 5/library.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/logo-2.png b/Momentum YTG - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum YTG - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum YTG - indicator for MetaTrader 5/momentum_ytg.mq5 b/Momentum YTG - indicator for MetaTrader 5/momentum_ytg.mq5 new file mode 100644 index 0000000..63c39fb --- /dev/null +++ b/Momentum YTG - indicator for MetaTrader 5/momentum_ytg.mq5 @@ -0,0 +1,65 @@ +//+------------------------------------------------------------------+ +//| Momentum YTG.mq5 | +//| Iurii Tokman (YTG) | +//| http://ytg.com.ua | +//+------------------------------------------------------------------+ +#property copyright "Iurii Tokman (YTG)" +#property link "http://ytg.com.ua" +#property version "1.00" +#property indicator_separate_window + +#property indicator_separate_window +#property indicator_buffers 2 +#property indicator_plots 2 +#property indicator_type1 DRAW_HISTOGRAM +#property indicator_type2 DRAW_HISTOGRAM +#property indicator_color1 clrRed +#property indicator_color2 clrGreen + +input int MomentumPeriod=14; +double B0[],B1[]; +int M_Period; + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { + if(MomentumPeriod<=0){ + M_Period=14; + Print("Input parameter MomentumPeriod has wrong value. Indicator will use value ",M_Period); + } else M_Period=MomentumPeriod; + + SetIndexBuffer(0,B0,INDICATOR_DATA); + SetIndexBuffer(1,B1,INDICATOR_DATA); + IndicatorSetString(INDICATOR_SHORTNAME,"Momentum YTG"+"("+string(M_Period)+")"); + PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,M_Period-1); + PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,M_Period-1); + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); + IndicatorSetInteger(INDICATOR_DIGITS,_Digits); +//--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const int begin, + const double &price[]) + { + double res =0; + int StartCalcPosition=(M_Period-1)+begin; + if(rates_total Made with вќ¤пёЏ for the trading community. diff --git a/Momentum deviation - indicator for MetaTrader 5/indicator.png b/Momentum deviation - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum deviation - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum deviation - indicator for MetaTrader 5/logo-2.png b/Momentum deviation - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum deviation - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum deviation - indicator for MetaTrader 5/momentum_deviation.mq5 b/Momentum deviation - indicator for MetaTrader 5/momentum_deviation.mq5 new file mode 100644 index 0000000..865b89b Binary files /dev/null and b/Momentum deviation - indicator for MetaTrader 5/momentum_deviation.mq5 differ diff --git a/Momentum deviation bands - indicator for MetaTrader 5/Capture__29.png b/Momentum deviation bands - indicator for MetaTrader 5/Capture__29.png new file mode 100644 index 0000000..2fee973 Binary files /dev/null and b/Momentum deviation bands - indicator for MetaTrader 5/Capture__29.png differ diff --git a/Momentum deviation bands - indicator for MetaTrader 5/Capture_cb__14.png b/Momentum deviation bands - indicator for MetaTrader 5/Capture_cb__14.png new file mode 100644 index 0000000..b4fe683 Binary files /dev/null and b/Momentum deviation bands - indicator for MetaTrader 5/Capture_cb__14.png differ diff --git a/Momentum deviation bands - indicator for MetaTrader 5/README.md b/Momentum deviation bands - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..0707aa2 --- /dev/null +++ b/Momentum deviation bands - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_deviation_bands.mq5` + +### Screenshots: +![Screenshot](Capture_cb__14.png) +![Screenshot](Capture__29.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum deviation bands - indicator for MetaTrader 5/indicator.png b/Momentum deviation bands - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum deviation bands - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum deviation bands - indicator for MetaTrader 5/logo-2.png b/Momentum deviation bands - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum deviation bands - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum deviation bands - indicator for MetaTrader 5/momentum_deviation_bands.mq5 b/Momentum deviation bands - indicator for MetaTrader 5/momentum_deviation_bands.mq5 new file mode 100644 index 0000000..8dedb99 Binary files /dev/null and b/Momentum deviation bands - indicator for MetaTrader 5/momentum_deviation_bands.mq5 differ diff --git a/Momentum of average - indicator for MetaTrader 5/README.md b/Momentum of average - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..8321d9a --- /dev/null +++ b/Momentum of average - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_of_average_ydlvlc.mq5` + +### Screenshots: +![Screenshot](cb__12.png) +![Screenshot](cb__14.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum of average - indicator for MetaTrader 5/cb__12.png b/Momentum of average - indicator for MetaTrader 5/cb__12.png new file mode 100644 index 0000000..79549af Binary files /dev/null and b/Momentum of average - indicator for MetaTrader 5/cb__12.png differ diff --git a/Momentum of average - indicator for MetaTrader 5/cb__14.png b/Momentum of average - indicator for MetaTrader 5/cb__14.png new file mode 100644 index 0000000..f9a5196 Binary files /dev/null and b/Momentum of average - indicator for MetaTrader 5/cb__14.png differ diff --git a/Momentum of average - indicator for MetaTrader 5/indicator.png b/Momentum of average - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum of average - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum of average - indicator for MetaTrader 5/logo-2.png b/Momentum of average - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum of average - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum of average - indicator for MetaTrader 5/momentum_of_average_ydlvlc.mq5 b/Momentum of average - indicator for MetaTrader 5/momentum_of_average_ydlvlc.mq5 new file mode 100644 index 0000000..df337db Binary files /dev/null and b/Momentum of average - indicator for MetaTrader 5/momentum_of_average_ydlvlc.mq5 differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/README.md b/Momentum ratio oscillator - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..0e14018 --- /dev/null +++ b/Momentum ratio oscillator - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_ratio_oscillator.mq5` + +### Screenshots: +![Screenshot](cb__34.png) +![Screenshot](example__13.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/cb__34.png b/Momentum ratio oscillator - indicator for MetaTrader 5/cb__34.png new file mode 100644 index 0000000..59b6446 Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/cb__34.png differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/example__13.png b/Momentum ratio oscillator - indicator for MetaTrader 5/example__13.png new file mode 100644 index 0000000..8ff5770 Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/example__13.png differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/indicator.png b/Momentum ratio oscillator - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/library.png b/Momentum ratio oscillator - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/library.png differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/logo-2.png b/Momentum ratio oscillator - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum ratio oscillator - indicator for MetaTrader 5/momentum_ratio_oscillator.mq5 b/Momentum ratio oscillator - indicator for MetaTrader 5/momentum_ratio_oscillator.mq5 new file mode 100644 index 0000000..c9ae80e Binary files /dev/null and b/Momentum ratio oscillator - indicator for MetaTrader 5/momentum_ratio_oscillator.mq5 differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/README.md b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..d13fcc3 --- /dev/null +++ b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `mba_channel.mq5` + +### Screenshots: +![Screenshot](achan.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/achan.png b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/achan.png new file mode 100644 index 0000000..d0f6cd4 Binary files /dev/null and b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/achan.png differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/expert.png b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/expert.png differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/indicator.png b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/library.png b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/library.png differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/logo-2.png b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum-based Adaptive Channel - indicator for MetaTrader 5/mba_channel.mq5 b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/mba_channel.mq5 new file mode 100644 index 0000000..6f705ab --- /dev/null +++ b/Momentum-based Adaptive Channel - indicator for MetaTrader 5/mba_channel.mq5 @@ -0,0 +1,329 @@ +//+------------------------------------------------------------------+ +//| mba_channel.mq5 | +//| Copyright 2021, Yossy Nakata | +//| https://yossy-nakata.hateblo.jp | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2021, Yossy Nakata" +#property link "https://yossy-nakata.hateblo.jp" +#property version "1.00" +#property strict +#property indicator_chart_window +#property indicator_buffers 7 +#property indicator_plots 2 + +#property indicator_label1 "upper" +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrRed +#property indicator_width1 1 + +#property indicator_label2 "lower" +#property indicator_type2 DRAW_LINE +#property indicator_color2 clrDodgerBlue +#property indicator_width2 1 + + +const int FAST = 3; // Minimum Channel Period; +//--- input parameter +input int InpPeriod=20; // Channel Period +input double InpVFactor=0.5; // Volatility Factor +input int InpVEmaPeriod=200; // Volatility Smoothing +//--- buffers +double g_high[]; +double g_low[]; +double g_upper[]; +double g_lower[]; +double g_upper_i[]; +double g_lower_i[]; +double g_volat[]; +static datetime g_start_time=0; + + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { + +//--- indicator buffers mapping + SetIndexBuffer(0,g_upper,INDICATOR_DATA); + SetIndexBuffer(1,g_lower,INDICATOR_DATA); + SetIndexBuffer(2,g_high,INDICATOR_CALCULATIONS); + SetIndexBuffer(3,g_low,INDICATOR_CALCULATIONS); + SetIndexBuffer(4,g_volat,INDICATOR_CALCULATIONS); + SetIndexBuffer(5,g_upper_i,INDICATOR_CALCULATIONS); + SetIndexBuffer(6,g_lower_i,INDICATOR_CALCULATIONS); + + + PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(4,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,EMPTY_VALUE); + PlotIndexSetDouble(6,PLOT_EMPTY_VALUE,EMPTY_VALUE); + + ArrayInitialize(g_upper,EMPTY_VALUE); + ArrayInitialize(g_lower,EMPTY_VALUE); + ArrayInitialize(g_upper_i,EMPTY_VALUE); + ArrayInitialize(g_lower_i,EMPTY_VALUE); + ArrayInitialize(g_high,EMPTY_VALUE); + ArrayInitialize(g_low,EMPTY_VALUE); + ArrayInitialize(g_volat,EMPTY_VALUE); + + m_msv.init(InpVEmaPeriod); + g_start_time=0; + +///--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//--- + int i,pos; +//--- + ArraySetAsSeries(time,false); + ArraySetAsSeries(high,false); + ArraySetAsSeries(low,false); + ArraySetAsSeries(g_upper,false); + ArraySetAsSeries(g_lower,false); + ArraySetAsSeries(g_upper_i,false); + ArraySetAsSeries(g_lower_i,false); + ArraySetAsSeries(g_high,false); + ArraySetAsSeries(g_low,false); + ArraySetAsSeries(g_volat,false); + + pos=(int)MathMax(prev_calculated-1,0); + + if(prev_calculated==0 || (rates_total>0 && g_start_time != time[0])) + { + ArrayInitialize(g_upper,EMPTY_VALUE); + ArrayInitialize(g_lower,EMPTY_VALUE); + ArrayInitialize(g_upper_i,EMPTY_VALUE); + ArrayInitialize(g_lower_i,EMPTY_VALUE); + ArrayInitialize(g_high,EMPTY_VALUE); + ArrayInitialize(g_low,EMPTY_VALUE); + ArrayInitialize(g_volat,EMPTY_VALUE); + g_start_time=time[0]; + pos=0; + } + +//--- preliminary calculations + + double v; +//--- the main loop of calculations + for(i=pos; i= low[i]) ? low[i] :low[ArrayMinimum(low,i-(FAST-1),FAST)]; + + + //--- upper side calculation + + double width = g_volat[i] * InpVFactor; + + if(g_upper[i-1]<=high[i]) + { + g_upper[i]=high[i]; + g_upper_i[i] = i; + + } + else + { + int h_pos= (int) g_upper_i[i-1]; + int lookback= 1+i-h_pos; + + // Euclidean distance + double dist= distance(width, h_pos, i, g_high[h_pos],g_high[i]); + if(InpPeriod * width < dist) + { + int len=MathMax(1,lookback-1); + int max_i=ArrayMaximum(high,i-(len-1),len); + g_upper[i]=high[max_i]; + g_upper_i[i] = max_i; + + } + else + { + g_upper[i]=g_upper[i-1]; + g_upper_i[i] = g_upper_i[i-1]; + } + } + + //--- lower side calculation + if(g_lower[i-1] >= low[i]) + { + g_lower[i]=low[i]; + g_lower_i[i]= i; + + } + else + { + int l_pos= (int)g_lower_i[i-1]; + int lookback=1+i-l_pos; + // Euclidean distance + double dist= distance(width, l_pos, i, g_low[l_pos], g_low[i]); + if(InpPeriod*width < dist) + { + int len=MathMax(1,lookback-1); + int min_i=ArrayMinimum(low,i-(len-1),len); + g_lower[i]=low[min_i]; + g_lower_i[i]= min_i; + + } + else + { + g_lower[i]=g_lower[i-1]; + g_lower_i[i]= g_lower_i[i-1]; + + } + } + + } +//--- return value of prev_calculated for next call + return(rates_total); + } +//+------------------------------------------------------------------+ +double distance(const double v,const double x1,const double x2,const double y1,const double y2) + { + return MathSqrt(MathPow(v*(x2-x1),2)+MathPow(y2-y1,2)); + } + +//+------------------------------------------------------------------+ +//+------------------------------------------------------------------+ +struct MsVolatItem + { + double main; + double adf; + double df3; + double df4; + double df5; + double df6; + double df8; + double df10; + double df13; + }; + + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +class MsVolat + { +private : + int _begin_plot; + double _alpha; + double _sq3; + double _sq4; + double _sq5; + double _sq6; + double _sq8; + double _sq10; + double _sq13; + + MsVolatItem _buf[]; + int _buf_size; +public : + + MsVolat(): + _begin_plot(0), + _alpha(0.), + _sq3(sqrt(3)), + _sq4(sqrt(4)), + _sq5(sqrt(5)), + _sq6(sqrt(6)), + _sq8(sqrt(8)), + _sq10(sqrt(10)), + _sq13(sqrt(13)) { return; } + + ~MsVolat() { return; } + + void init(int period) + { + //--- + _begin_plot = period+1+13; + _alpha= 2.0/(period+1.0); + + } + + double diff(const int lag,const double w, const double &value[],const int i) + { + return MathAbs(value[i-lag]-value[i])/w; + } + + //+------------------------------------------------------------------+ + bool calculate(const double &value[], int i, int bars,double &rslt) + { + if(_buf_size Made with вќ¤пёЏ for the trading community. diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/expert.png b/MomentumCandleKeltner - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/expert.png differ diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/indicator.png b/MomentumCandleKeltner - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/indicator.png differ diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/logo-2.png b/MomentumCandleKeltner - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/logo-2.png differ diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/momentumcandlekeltner.mq5 b/MomentumCandleKeltner - indicator for MetaTrader 5/momentumcandlekeltner.mq5 new file mode 100644 index 0000000..6aa5046 Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/momentumcandlekeltner.mq5 differ diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/picture__13.png b/MomentumCandleKeltner - indicator for MetaTrader 5/picture__13.png new file mode 100644 index 0000000..f36b2c2 Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/picture__13.png differ diff --git a/MomentumCandleKeltner - indicator for MetaTrader 5/script.png b/MomentumCandleKeltner - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/MomentumCandleKeltner - indicator for MetaTrader 5/script.png differ diff --git a/Momentum_Signal - indicator for MetaTrader 5/Momentum_Signal.png b/Momentum_Signal - indicator for MetaTrader 5/Momentum_Signal.png new file mode 100644 index 0000000..23b3b2e Binary files /dev/null and b/Momentum_Signal - indicator for MetaTrader 5/Momentum_Signal.png differ diff --git a/Momentum_Signal - indicator for MetaTrader 5/README.md b/Momentum_Signal - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..3a3da34 --- /dev/null +++ b/Momentum_Signal - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `momentum_signal.mq5` + +### Screenshots: +![Screenshot](Momentum_Signal.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Momentum_Signal - indicator for MetaTrader 5/expert.png b/Momentum_Signal - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Momentum_Signal - indicator for MetaTrader 5/expert.png differ diff --git a/Momentum_Signal - indicator for MetaTrader 5/indicator.png b/Momentum_Signal - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Momentum_Signal - indicator for MetaTrader 5/indicator.png differ diff --git a/Momentum_Signal - indicator for MetaTrader 5/logo-2.png b/Momentum_Signal - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Momentum_Signal - indicator for MetaTrader 5/logo-2.png differ diff --git a/Momentum_Signal - indicator for MetaTrader 5/momentum_signal.mq5 b/Momentum_Signal - indicator for MetaTrader 5/momentum_signal.mq5 new file mode 100644 index 0000000..20bf31c Binary files /dev/null and b/Momentum_Signal - indicator for MetaTrader 5/momentum_signal.mq5 differ diff --git a/Money-Meter - indicator for MetaTrader 5/EURUSDH4__3.png b/Money-Meter - indicator for MetaTrader 5/EURUSDH4__3.png new file mode 100644 index 0000000..4207f70 Binary files /dev/null and b/Money-Meter - indicator for MetaTrader 5/EURUSDH4__3.png differ diff --git a/Money-Meter - indicator for MetaTrader 5/README.md b/Money-Meter - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..40e57b5 --- /dev/null +++ b/Money-Meter - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `money-meter.mq5` + +### Screenshots: +![Screenshot](EURUSDH4__3.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Money-Meter - indicator for MetaTrader 5/expert.png b/Money-Meter - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Money-Meter - indicator for MetaTrader 5/expert.png differ diff --git a/Money-Meter - indicator for MetaTrader 5/indicator.png b/Money-Meter - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Money-Meter - indicator for MetaTrader 5/indicator.png differ diff --git a/Money-Meter - indicator for MetaTrader 5/library.png b/Money-Meter - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Money-Meter - indicator for MetaTrader 5/library.png differ diff --git a/Money-Meter - indicator for MetaTrader 5/logo-2.png b/Money-Meter - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Money-Meter - indicator for MetaTrader 5/logo-2.png differ diff --git a/Money-Meter - indicator for MetaTrader 5/money-meter.mq5 b/Money-Meter - indicator for MetaTrader 5/money-meter.mq5 new file mode 100644 index 0000000..8b58860 --- /dev/null +++ b/Money-Meter - indicator for MetaTrader 5/money-meter.mq5 @@ -0,0 +1,204 @@ +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +#property copyright "Money-Meter (by Transcendreamer)" +#property description "Chart evaluation in deposit currency" +#property strict +#property indicator_chart_window +#property indicator_plots 0 +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +input double grid_step_value=100; +input double lot_size=0.1; +input double lot_divider=1; +input double total_levels=50; +input double zero_price=0; +enum PROGRESSION {none,equal,linear,fibo,martin}; +input PROGRESSION progression=none; +input double multiplicator=2; +input color lines_color=clrMagenta; +input int lines_width=1; +input ENUM_LINE_STYLE lines_style=STYLE_SOLID; +input bool lines_prices=false; +input int text_shift_bars=0; +input ENUM_BASE_CORNER info_corner=CORNER_LEFT_UPPER; +input int info_shift_pixels=0; +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +int OnInit() + { + clean_all(); + make_grid(); + put_info(); + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) + { + clean_all(); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +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[]) + { + return(rates_total); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void clean_all() + { + ObjectDelete(0,"INFOTEXT"); + for(int k=ObjectsTotal(0,0,OBJ_HLINE)-1; k>=0; k--) + { + string name=ObjectName(0,k,0,OBJ_HLINE); + if(StringFind(name,"GRID_LEVEL_")!=-1) + ObjectDelete(0,name); + } + for(int k=ObjectsTotal(0,0,OBJ_TEXT)-1; k>=0; k--) + { + string name=ObjectName(0,k,0,OBJ_TEXT); + if(StringFind(name,"GRID_TEXT_")!=-1) + ObjectDelete(0,name); + } + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void make_grid() + { + double ts=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); + double tv=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); + double step=grid_step_value/tv*ts/lot_size/lot_divider; + double zero=zero_price?zero_price:iClose(NULL,0,0); +//--- + datetime time; + if(text_shift_bars>=0) + time=iTime(NULL,0,text_shift_bars); + else + time=iTime(NULL,0,0)-PeriodSeconds(PERIOD_CURRENT)*text_shift_bars; +//--- + put_level("GRID_LEVEL_ZERO",zero,"(ZERO)"); + put_text("GRID_TEXT_ZERO",zero,time,"(ZERO)"); + for(int n=1; n<=total_levels; n++) + { + double value=grid_step_value*get_progression(n); + string text=DoubleToString(value,2); + put_level("GRID_LEVEL_UP"+string(n),zero+step*n,"+"+text); + put_level("GRID_LEVEL_DN"+string(n),zero-step*n,"-"+text); + put_text("GRID_TEXT_UP"+string(n),zero+step*n,time,"+"+text); + put_text("GRID_TEXT_DN"+string(n),zero-step*n,time,"-"+text); + } + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +double get_progression(int n) + { + if(progression==none) return(n); + double sum=0; + for(int k=1; k<=n; k++) + sum+=(n-k+1)*get_member(k); + return(sum); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +double get_member(int k) + { + if(progression==equal) + { + return(1); + } + else if(progression==fibo) + { + if(k<3) return(1); + int f=1,s=1; + while(k>2) { f=f+s*2; s=f-s; f=f-s; k--; } + return(s); + } + else if(progression==martin) + { + return(MathPow(multiplicator,k-1)); + } + else if(progression==linear) + { + return(k); + } + return(1); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void put_info() + { + ObjectCreate(0,"INFOTEXT",OBJ_LABEL,0,0,0); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_XDISTANCE,5); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_YDISTANCE,17+info_shift_pixels); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_SELECTABLE,false); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_SELECTED,false); +//--- + ENUM_ANCHOR_POINT anchor=0; + if(info_corner==CORNER_LEFT_LOWER) anchor=ANCHOR_LEFT_LOWER; + if(info_corner==CORNER_LEFT_UPPER) anchor=ANCHOR_LEFT_UPPER; + if(info_corner==CORNER_RIGHT_LOWER) anchor=ANCHOR_RIGHT_LOWER; + if(info_corner==CORNER_RIGHT_UPPER) anchor=ANCHOR_RIGHT_UPPER; + ObjectSetInteger(0,"INFOTEXT",OBJPROP_CORNER,info_corner); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_ANCHOR,anchor); +//--- + string text="LOT:"+DoubleToString(lot_size/lot_divider,2); + if(progression==none) text+=(" MODE:NONE"); + if(progression==equal) text+=(" MODE:EQUAL"); + if(progression==linear) text+=(" MODE:LINEAR"); + if(progression==fibo) text+=(" MODE:FIBO"); + if(progression==martin) text+=(" MODE:MARTIN *"+DoubleToString(multiplicator,2)); + ObjectSetString(0,"INFOTEXT",OBJPROP_TEXT,text); + ObjectSetString(0,"INFOTEXT",OBJPROP_FONT,"Verdana"); + ObjectSetInteger(0,"INFOTEXT",OBJPROP_COLOR,lines_color); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void put_level(string name,double price,string text) + { + ObjectCreate(0,name,OBJ_HLINE,0,0,0); + ObjectSetDouble(0,name,OBJPROP_PRICE,price); + ObjectSetInteger(0,name,OBJPROP_COLOR,lines_color); + ObjectSetInteger(0,name,OBJPROP_WIDTH,lines_width); + ObjectSetInteger(0,name,OBJPROP_STYLE,lines_style); + ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); + ObjectSetInteger(0,name,OBJPROP_SELECTED,false); + ObjectSetInteger(0,name,OBJPROP_BACK,!lines_prices); + ObjectSetString(0,name,OBJPROP_TEXT,text); + } +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void put_text(string name,double price,datetime time,string text) + { + ObjectCreate(0,name,OBJ_TEXT,0,0,0); + ObjectSetDouble(0,name,OBJPROP_PRICE,price); + ObjectSetInteger(0,name,OBJPROP_TIME,0,time); + ObjectSetString(0,name,OBJPROP_TEXT,text); + ObjectSetString(0,name,OBJPROP_FONT,"Verdana"); + ObjectSetInteger(0,name,OBJPROP_COLOR,lines_color); + ObjectSetInteger(0,name,OBJPROP_FONTSIZE,8); + ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER); + ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); + ObjectSetInteger(0,name,OBJPROP_SELECTED,false); + } +//+------------------------------------------------------------------+ diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/Capture__9.png b/Moving Average Bands - extended - indicator for MetaTrader 5/Capture__9.png new file mode 100644 index 0000000..1e3314f Binary files /dev/null and b/Moving Average Bands - extended - indicator for MetaTrader 5/Capture__9.png differ diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/Capture_cb__4.png b/Moving Average Bands - extended - indicator for MetaTrader 5/Capture_cb__4.png new file mode 100644 index 0000000..40058b4 Binary files /dev/null and b/Moving Average Bands - extended - indicator for MetaTrader 5/Capture_cb__4.png differ diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/README.md b/Moving Average Bands - extended - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..174b8cd --- /dev/null +++ b/Moving Average Bands - extended - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_average_bands_-_extended.mq5` + +### Screenshots: +![Screenshot](Capture_cb__4.png) +![Screenshot](Capture__9.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/indicator.png b/Moving Average Bands - extended - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average Bands - extended - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/logo-2.png b/Moving Average Bands - extended - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average Bands - extended - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average Bands - extended - indicator for MetaTrader 5/moving_average_bands_-_extended.mq5 b/Moving Average Bands - extended - indicator for MetaTrader 5/moving_average_bands_-_extended.mq5 new file mode 100644 index 0000000..cf8218c Binary files /dev/null and b/Moving Average Bands - extended - indicator for MetaTrader 5/moving_average_bands_-_extended.mq5 differ diff --git a/Moving Average Bands - indicator for MetaTrader 5/Capture__7.png b/Moving Average Bands - indicator for MetaTrader 5/Capture__7.png new file mode 100644 index 0000000..db715ff Binary files /dev/null and b/Moving Average Bands - indicator for MetaTrader 5/Capture__7.png differ diff --git a/Moving Average Bands - indicator for MetaTrader 5/Capture_cb__3.png b/Moving Average Bands - indicator for MetaTrader 5/Capture_cb__3.png new file mode 100644 index 0000000..1bcf71d Binary files /dev/null and b/Moving Average Bands - indicator for MetaTrader 5/Capture_cb__3.png differ diff --git a/Moving Average Bands - indicator for MetaTrader 5/README.md b/Moving Average Bands - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2eba81e --- /dev/null +++ b/Moving Average Bands - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_average_bands.mq5` + +### Screenshots: +![Screenshot](Capture_cb__3.png) +![Screenshot](Capture__7.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average Bands - indicator for MetaTrader 5/indicator.png b/Moving Average Bands - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average Bands - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average Bands - indicator for MetaTrader 5/logo-2.png b/Moving Average Bands - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average Bands - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average Bands - indicator for MetaTrader 5/moving_average_bands.mq5 b/Moving Average Bands - indicator for MetaTrader 5/moving_average_bands.mq5 new file mode 100644 index 0000000..c0a1218 Binary files /dev/null and b/Moving Average Bands - indicator for MetaTrader 5/moving_average_bands.mq5 differ diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/Capture__11.png b/Moving Average Bands Width - indicator for MetaTrader 5/Capture__11.png new file mode 100644 index 0000000..d2e0d4a Binary files /dev/null and b/Moving Average Bands Width - indicator for MetaTrader 5/Capture__11.png differ diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/Capture_cb__5.png b/Moving Average Bands Width - indicator for MetaTrader 5/Capture_cb__5.png new file mode 100644 index 0000000..fd7b981 Binary files /dev/null and b/Moving Average Bands Width - indicator for MetaTrader 5/Capture_cb__5.png differ diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/README.md b/Moving Average Bands Width - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..42b89bf --- /dev/null +++ b/Moving Average Bands Width - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_average_bands_width.mq5` + +### Screenshots: +![Screenshot](Capture_cb__5.png) +![Screenshot](Capture__11.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/indicator.png b/Moving Average Bands Width - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average Bands Width - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/logo-2.png b/Moving Average Bands Width - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average Bands Width - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average Bands Width - indicator for MetaTrader 5/moving_average_bands_width.mq5 b/Moving Average Bands Width - indicator for MetaTrader 5/moving_average_bands_width.mq5 new file mode 100644 index 0000000..508bd6f Binary files /dev/null and b/Moving Average Bands Width - indicator for MetaTrader 5/moving_average_bands_width.mq5 differ diff --git a/Moving Average Candles - indicator for MetaTrader 5/MovingAveragesCandles.png b/Moving Average Candles - indicator for MetaTrader 5/MovingAveragesCandles.png new file mode 100644 index 0000000..c8fc90d Binary files /dev/null and b/Moving Average Candles - indicator for MetaTrader 5/MovingAveragesCandles.png differ diff --git a/Moving Average Candles - indicator for MetaTrader 5/README.md b/Moving Average Candles - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..acb1ce0 --- /dev/null +++ b/Moving Average Candles - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `ma_candles.mq5` + +### Screenshots: +![Screenshot](MovingAveragesCandles.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average Candles - indicator for MetaTrader 5/indicator.png b/Moving Average Candles - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average Candles - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average Candles - indicator for MetaTrader 5/logo-2.png b/Moving Average Candles - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average Candles - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average Candles - indicator for MetaTrader 5/ma_candles.mq5 b/Moving Average Candles - indicator for MetaTrader 5/ma_candles.mq5 new file mode 100644 index 0000000..e1086b4 Binary files /dev/null and b/Moving Average Candles - indicator for MetaTrader 5/ma_candles.mq5 differ diff --git a/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/MA-Candlesticks__3.png b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/MA-Candlesticks__3.png new file mode 100644 index 0000000..1491862 Binary files /dev/null and b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/MA-Candlesticks__3.png differ diff --git a/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/README.md b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..ec77758 --- /dev/null +++ b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `ma-candlesticks.mq5` + +### Screenshots: +![Screenshot](MA-Candlesticks__3.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/indicator.png b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/logo-2.png b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/ma-candlesticks.mq5 b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/ma-candlesticks.mq5 new file mode 100644 index 0000000..d1d0641 --- /dev/null +++ b/Moving Average Candlesticks MT5 - indicator for MetaTrader 5/ma-candlesticks.mq5 @@ -0,0 +1,107 @@ +//+------------------------------------------------------------------+ +//| MA-Candlesticks.mq5 | +//+------------------------------------------------------------------+ +#property link "https://t.me/ForexEaPremium" +#property version "1.01" + +#property description "Displays the moving average in form of the candlesticks." +#property description "This way, the moving average is shown for Close, Open, High and Low." +#property description "Works with any trading instrument, timeframe, period, and MA type." + +#property indicator_chart_window +#property indicator_buffers 5 +#property indicator_plots 1 +#property indicator_type1 DRAW_COLOR_CANDLES +#property indicator_color1 clrBlue, clrYellow +#property indicator_label1 "MA Open;MA High;MA Low;MA Close" + +// Indicator buffers +double ExtOBuffer[]; +double ExtHBuffer[]; +double ExtLBuffer[]; +double ExtCBuffer[]; +double ExtColorBuffer[]; + +// MA buffers +double MACloseBuf[]; +double MAOpenBuf[]; +double MAHighBuf[]; +double MALowBuf[]; + +input int MAPeriod = 10; // MA Period +input ENUM_MA_METHOD MAType = MODE_SMA; // MA Type + +void OnInit() +{ + SetIndexBuffer(0, ExtOBuffer, INDICATOR_DATA); + SetIndexBuffer(1, ExtHBuffer, INDICATOR_DATA); + SetIndexBuffer(2, ExtLBuffer, INDICATOR_DATA); + SetIndexBuffer(3, ExtCBuffer, INDICATOR_DATA); + SetIndexBuffer(4, ExtColorBuffer, INDICATOR_COLOR_INDEX); + + IndicatorSetString(INDICATOR_SHORTNAME, "MA-Candlesticks(" + IntegerToString(MAPeriod) + ")"); + + PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, MAPeriod); +} + +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[]) +{ + int myMA; + + myMA = iMA(NULL, 0, MAPeriod, 0, MAType, PRICE_CLOSE); + if (CopyBuffer(myMA, 0, 0, rates_total, MACloseBuf) != rates_total) return 0; + + myMA = iMA(NULL, 0, MAPeriod, 0, MAType, PRICE_OPEN); + if (CopyBuffer(myMA, 0, 0, rates_total, MAOpenBuf) != rates_total) return 0; + + myMA = iMA(NULL, 0, MAPeriod, 0, MAType, PRICE_HIGH); + if (CopyBuffer(myMA, 0, 0, rates_total, MAHighBuf) != rates_total) return 0; + + myMA = iMA(NULL, 0, MAPeriod, 0, MAType, PRICE_LOW); + if (CopyBuffer(myMA, 0, 0, rates_total, MALowBuf) != rates_total) return 0; + + // Preliminary calculations. + int limit; + if (prev_calculated <= 1) + { + // Set the first candle. + ExtLBuffer[0] = MALowBuf[0]; + ExtHBuffer[0] = MAHighBuf[0]; + ExtOBuffer[0] = MAOpenBuf[0]; + ExtCBuffer[0] = MACloseBuf[0]; + limit = 1; + } + else limit = prev_calculated - 1; + + // The main loop of calculations. + for (int i = limit; i < rates_total; i++) + { + ExtOBuffer[i] = MAOpenBuf[i]; + ExtCBuffer[i] = MACloseBuf[i]; + + if (MAOpenBuf[i] < MACloseBuf[i]) + { + ExtLBuffer[i] = MALowBuf[i]; + ExtHBuffer[i] = MAHighBuf[i]; + ExtColorBuffer[i] = 0.0; + } + else + { + ExtLBuffer[i] = MAHighBuf[i]; + ExtHBuffer[i] = MALowBuf[i]; + ExtColorBuffer[i] = 1.0; + } + } + + return rates_total; +} +//+------------------------------------------------------------------+ \ No newline at end of file diff --git a/Moving Average applied price - indicator for MetaTrader 5/2018-10-26_14h28_26.png b/Moving Average applied price - indicator for MetaTrader 5/2018-10-26_14h28_26.png new file mode 100644 index 0000000..22ec63f Binary files /dev/null and b/Moving Average applied price - indicator for MetaTrader 5/2018-10-26_14h28_26.png differ diff --git a/Moving Average applied price - indicator for MetaTrader 5/README.md b/Moving Average applied price - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..1e94a62 --- /dev/null +++ b/Moving Average applied price - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_average_applied_price.mq5` + +### Screenshots: +![Screenshot](2018-10-26_14h28_26.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average applied price - indicator for MetaTrader 5/indicator.png b/Moving Average applied price - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average applied price - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average applied price - indicator for MetaTrader 5/logo-2.png b/Moving Average applied price - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average applied price - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average applied price - indicator for MetaTrader 5/moving_average_applied_price.mq5 b/Moving Average applied price - indicator for MetaTrader 5/moving_average_applied_price.mq5 new file mode 100644 index 0000000..d7f0424 Binary files /dev/null and b/Moving Average applied price - indicator for MetaTrader 5/moving_average_applied_price.mq5 differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA.png new file mode 100644 index 0000000..89196fd Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_4.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_4.png new file mode 100644 index 0000000..c6956b7 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_4.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_5.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_5.png new file mode 100644 index 0000000..2010666 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_5.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_MT.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_MT.png new file mode 100644 index 0000000..ee99ec2 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/EURUSDM5_HAMA_MT.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/README.md b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b85291d --- /dev/null +++ b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/README.md @@ -0,0 +1,25 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `heiken_ashi_ma.mq5` + +### Screenshots: +![Screenshot](EURUSDM5_HAMA.png) +![Screenshot](EURUSDM5_HAMA_4.png) +![Screenshot](EURUSDM5_HAMA_5.png) +![Screenshot](EURUSDM5_HAMA_MT.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/expert.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/expert.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/heiken_ashi_ma.mq5 b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/heiken_ashi_ma.mq5 new file mode 100644 index 0000000..8f92550 --- /dev/null +++ b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/heiken_ashi_ma.mq5 @@ -0,0 +1,261 @@ +#property copyright "Copyright 2025, ProtimeTrader." +#property link "https://www.mql5.com/en/users/protimetrader" +#property description "Moving Average based on Heiken-Ashi" +#property version "1.00" + +#property indicator_chart_window +#property indicator_buffers 7 +#property indicator_plots 1 + +#property indicator_type1 DRAW_COLOR_LINE +#property indicator_color1 clrDodgerBlue, clrRed + +//--- Input parameters +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_CURRENT; // Timeframe for Heiken Ashi calculation +input int InpMAPeriod = 13; // Moving Average period +input int InpMAShift = 0; // MA shift +input ENUM_MA_METHOD InpMAMethod = MODE_SMMA; // MA method +input ENUM_APPLIED_PRICE InpMAAppliedPrice = PRICE_CLOSE; // Source price for MA + +//--- Indicator buffers +// Buffer 0: MA values +double ExtLineBuffer[]; // Buffer 0: MA values +double ExtLineColorBuffer[]; // Buffer 1: Color index +double ExtPriceBuffer[]; // Buffer 2: Source price from Heiken Ashi + +// Buffer 3-6: Heiken Ashi OHLC +double ExtHAOpenPriceBuffer[]; +double ExtHAHighPriceBuffer[]; +double ExtHALowPriceBuffer[]; +double ExtHAClosePriceBuffer[]; + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +void OnInit() + { +// Map buffers to indices + SetIndexBuffer(0, ExtLineBuffer, INDICATOR_DATA); + SetIndexBuffer(1, ExtLineColorBuffer, INDICATOR_COLOR_INDEX); + + SetIndexBuffer(2, ExtPriceBuffer, INDICATOR_CALCULATIONS); + SetIndexBuffer(3, ExtHAOpenPriceBuffer, INDICATOR_CALCULATIONS); + SetIndexBuffer(4, ExtHAHighPriceBuffer, INDICATOR_CALCULATIONS); + SetIndexBuffer(5, ExtHALowPriceBuffer, INDICATOR_CALCULATIONS); + SetIndexBuffer(6, ExtHAClosePriceBuffer, INDICATOR_CALCULATIONS); + +// Precision + IndicatorSetInteger(INDICATOR_DIGITS, _Digits + 1); + +// Start drawing after enough data is available + PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, InpMAPeriod); + PlotIndexSetInteger(0, PLOT_SHIFT, InpMAShift); + +// Label in Data Window + string short_name; + switch(InpMAMethod) + { + case MODE_EMA: + short_name = "EMA"; + break; + case MODE_LWMA: + short_name = "LWMA"; + break; + case MODE_SMA: + short_name = "SMA"; + break; + case MODE_SMMA: + short_name = "SMMA"; + break; + default: + short_name = "unknown"; + break; + } + + IndicatorSetString(INDICATOR_SHORTNAME, short_name + "(" + string(InpMAPeriod) + ")"); + PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0); + } + +//+------------------------------------------------------------------+ +//| Core calculation function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const int begin, + const double &price[]) + { + if(rates_total < InpMAPeriod - 1 + begin) + { + string warn_msg = "Not enough bars to calculate Heiken Ashi MA (need at least " + IntegerToString(InpMAPeriod) + " bars)"; + Comment(warn_msg); + Print(warn_msg); + return(0); + } + else + { + Comment(""); // Clear any previous warning once conditions are met + } + + int start = (prev_calculated == 0) ? 0 : 1; + +// Initialize first HA candle to current OHLC + if(prev_calculated == 0) + { + int last = rates_total - 1; + ExtHAOpenPriceBuffer[last] = iOpen(_Symbol, InpTimeframe, start); + ExtHAClosePriceBuffer[last] = iClose(_Symbol, InpTimeframe, start); + ExtHAHighPriceBuffer[last] = iHigh(_Symbol, InpTimeframe, start); + ExtHALowPriceBuffer[last] = iLow(_Symbol, InpTimeframe, start); + } + +//--- Calculate Heiken Ashi candles + for(int i = start; i < rates_total && !IsStopped(); i++) + { + CalculateHeikenAshi(rates_total, i); + } + +//--- Copy selected Heiken Ashi price into MA source buffer + for(int i = start; i < rates_total && !IsStopped(); i++) + { + switch(InpMAAppliedPrice) + { + case PRICE_OPEN: + ExtPriceBuffer[i] = ExtHAOpenPriceBuffer[i]; + break; + case PRICE_HIGH: + ExtPriceBuffer[i] = ExtHAHighPriceBuffer[i]; + break; + case PRICE_LOW: + ExtPriceBuffer[i] = ExtHALowPriceBuffer[i]; + break; + case PRICE_MEDIAN: + ExtPriceBuffer[i] = (ExtHAHighPriceBuffer[i] + ExtHALowPriceBuffer[i]) / 2.0; + break; + case PRICE_TYPICAL: + ExtPriceBuffer[i] = (ExtHAHighPriceBuffer[i] + ExtHALowPriceBuffer[i] + ExtHAClosePriceBuffer[i]) / 3.0; + break; + case PRICE_WEIGHTED: + ExtPriceBuffer[i] = (ExtHAHighPriceBuffer[i] + ExtHALowPriceBuffer[i] + ExtHAClosePriceBuffer[i] + ExtHAClosePriceBuffer[i]) / 4.0; + break; + + default: // PRICE_CLOSE + ExtPriceBuffer[i] = ExtHAClosePriceBuffer[i]; + break; + } + } + +//--- Calculate moving average + switch(InpMAMethod) + { + case MODE_EMA: + CalculateEMA(rates_total, prev_calculated, begin, ExtPriceBuffer); + break; + case MODE_LWMA: + CalculateLWMA(rates_total, prev_calculated, begin, ExtPriceBuffer); + break; + case MODE_SMA: + CalculateSimpleMA(rates_total, prev_calculated, begin, ExtPriceBuffer); + break; + case MODE_SMMA: + CalculateSmoothedMA(rates_total, prev_calculated, begin, ExtPriceBuffer); + break; + } + + return rates_total; + } + +//+------------------------------------------------------------------+ +//| Calculate Heiken Ashi bar values | +//+------------------------------------------------------------------+ +void CalculateHeikenAshi(const int total, const int ind) + { + int i = ind; + + double o = iOpen(_Symbol, InpTimeframe, total - i - 1); + double h = iHigh(_Symbol, InpTimeframe, total - i - 1); + double l = iLow(_Symbol, InpTimeframe, total - i - 1); + double c = iClose(_Symbol, InpTimeframe, total - i - 1); + + double ha_close = (o + h + l + c) / 4.0; + + double ha_open = (i > 0) ? (ExtHAOpenPriceBuffer[i - 1] + ExtHAClosePriceBuffer[i - 1]) / 2.0 : (o + c) / 2.0; + + double ha_high = MathMax(h, MathMax(ha_open, ha_close)); + double ha_low = MathMin(l, MathMin(ha_open, ha_close)); + + ExtHAOpenPriceBuffer[i] = ha_open; + ExtHAClosePriceBuffer[i] = ha_close; + ExtHAHighPriceBuffer[i] = ha_high; + ExtHALowPriceBuffer[i] = ha_low; + + ExtLineColorBuffer[i] = (ha_close > ha_open) ? 0.0 : 1.0; + } + +//+------------------------------------------------------------------+ +//| Standard Moving Average Calculations | +//+------------------------------------------------------------------+ +void CalculateSimpleMA(int rates_total,int prev_calculated,int begin,const double &price[]) + { + int start = (prev_calculated == 0) ? InpMAPeriod : prev_calculated - 1; + + for(int i = start; i < rates_total && !IsStopped(); i++) + { + double sum = 0.0; + for(int j = 0; j < InpMAPeriod; j++) + sum += price[i - j]; + ExtLineBuffer[i] = sum / InpMAPeriod; + } + } + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void CalculateEMA(int rates_total,int prev_calculated,int begin,const double &price[]) + { + double k = 2.0 / (InpMAPeriod + 1.0); + int start = (prev_calculated == 0) ? InpMAPeriod : prev_calculated - 1; + + if(prev_calculated == 0) + ExtLineBuffer[InpMAPeriod - 1] = price[InpMAPeriod - 1]; + + for(int i = start; i < rates_total && !IsStopped(); i++) + ExtLineBuffer[i] = price[i] * k + ExtLineBuffer[i - 1] * (1 - k); + } + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void CalculateLWMA(int rates_total,int prev_calculated,int begin,const double &price[]) + { + int weight_sum = InpMAPeriod * (InpMAPeriod + 1) / 2; + int start = (prev_calculated == 0) ? InpMAPeriod : prev_calculated - 1; + + for(int i = start; i < rates_total && !IsStopped(); i++) + { + double sum = 0.0; + for(int j = 0; j < InpMAPeriod; j++) + sum += price[i - j] * (InpMAPeriod - j); + ExtLineBuffer[i] = sum / weight_sum; + } + } + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void CalculateSmoothedMA(int rates_total,int prev_calculated,int begin,const double &price[]) + { + int start = (prev_calculated == 0) ? InpMAPeriod : prev_calculated - 1; + + if(prev_calculated == 0) + { + double sum = 0; + for(int i = 0; i < InpMAPeriod; i++) + sum += price[i]; + ExtLineBuffer[InpMAPeriod - 1] = sum / InpMAPeriod; + start = InpMAPeriod; + } + + for(int i = start; i < rates_total && !IsStopped(); i++) + ExtLineBuffer[i] = (ExtLineBuffer[i - 1] * (InpMAPeriod - 1) + price[i]) / InpMAPeriod; + } +//+------------------------------------------------------------------+ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/indicator.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/logo-2.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/script.png b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/Moving Average based on Heiken-Ashi - indicator for MetaTrader 5/script.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/5416973991035.png b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/5416973991035.png new file mode 100644 index 0000000..fa14e8c Binary files /dev/null and b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/5416973991035.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/README.md b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..19296ff --- /dev/null +++ b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `macrossalerter.mq5` + +### Screenshots: +![Screenshot](5416973991035.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/expert.png b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/expert.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/indicator.png b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/library.png b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/library.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/logo-2.png b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/macrossalerter.mq5 b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/macrossalerter.mq5 new file mode 100644 index 0000000..acf7f5a --- /dev/null +++ b/Moving Average with alerts on price crossovers - indicator for MetaTrader 5/macrossalerter.mq5 @@ -0,0 +1,248 @@ +//+------------------------------------------------------------------+ +//| SlowMA_alerter_phade.mq5 | +//| https://www.mql5.com/en/users/phade/ | +//+------------------------------------------------------------------+ + +#property copyright "Copyright 2023, https://www.mql5.com/en/users/phade/" +#property link "https://www.mql5.com/en/users/phade/" +#property version "1.01" + +#property indicator_chart_window +#property indicator_buffers 1 +#property indicator_plots 1 + +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrGray // change to clrNONE to hide the line +#property indicator_style1 STYLE_DOT +#property indicator_label1 "Line" +#property indicator_width1 1 +#define OBJ_PREFIX MQLInfoString(MQL_PROGRAM_NAME) + + +ENUM_TIMEFRAMES prevPeriod = PERIOD_CURRENT; +input int slowPeriod = 44; // Moving Average Length +double indvalue[]; +double slowma[]; +int handle; +int max_bars; +double arrowDistance = 250.0; // Desired distance + + +input string Audio_Alert_Sound = "alert.wav"; //Audio alert sample +string audioFilePath = "\\Files\\" + Audio_Alert_Sound; +static datetime last_playsound_time = TimeCurrent(); +input bool Audio_Alert_On_Signals = false; // Enable audio alerts +input int pointNum = 100; // Amount of points on MA crossover that should enable a signal +input color LongSignalColor = clrPurple; // Set the up arrow color (long signals) +input color ShortSignalColor = clrBlack; // Set the down arrow color (short signals) + +double gLongSignal = 0.0; +double gShortSignal = 0.0; +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // ChartSetInteger(0, CHART_FOREGROUND, false); + SetIndexBuffer(0, indvalue, INDICATOR_DATA); + + handle = iMA(_Symbol, PERIOD_CURRENT, slowPeriod, 0, MODE_SMA, PRICE_CLOSE); + + if (handle == INVALID_HANDLE) + { + Print("Get MA Handle failed!"); + return INIT_FAILED; + } + + max_bars = Bars(Symbol(), Period()); + + ArrayResize(slowma, max_bars); + ArrayResize(indvalue, max_bars); + + return INIT_SUCCEEDED; +} + +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) +{ + // Calculate the number of bars to copy + int to_copy = rates_total - prev_calculated; + if (to_copy <= 0) + to_copy = max_bars; + + int limit = MathMin(rates_total - prev_calculated, rates_total); + + // Copy data from indicator buffers + CopyBuffer(handle, 0, 0, to_copy, slowma); + + if (ChartPeriod() != prevPeriod) { + prevPeriod = ChartPeriod(); // Store the current timeframe for comparison in the next calculation + ChartRedraw(); // Refresh the chart to remove previous objects + } + + if (_Period == PERIOD_M1) { + arrowDistance = 5.0; // Change the distance for the 1-minute timeframe + } else if (_Period == PERIOD_M2) { + arrowDistance = 5.0; // Change the distance for the 2-minute timeframe + } else if (_Period == PERIOD_M5) { + arrowDistance = 20.0; // Change the distance for the 5-minute timeframe + } else if (_Period == PERIOD_M15) { + arrowDistance = 20.0; // Change the distance for the 15-minute timeframe + } else if (_Period == PERIOD_M30) { + arrowDistance = 20.0; // Change the distance for the 30-minute timeframe + } else if (_Period == PERIOD_H1) { + arrowDistance = 40.0; // Change the distance for the 1-hour timeframe + } else if (_Period == PERIOD_H4) { + arrowDistance = 40.0; // Change the distance for the 4-hour timeframe + } else if (_Period == PERIOD_D1) { + arrowDistance = 40.0; // Change the distance for the daily timeframe + } else if (_Period == PERIOD_W1) { + arrowDistance = 40.0; // Change the distance for the weekly timeframe + } else if (_Period == PERIOD_MN1) { + arrowDistance = 40.0; // Change the distance for the monthly timeframe + } + + // Calculate the indicator values + for (int i = prev_calculated - (rates_total==prev_calculated); i < limit; i++) + { + indvalue[i] = slowma[i]; + + // longSignalBuffer[i] = 0; // Set long signal to 0 + // shortSignalBuffer[i] = 0; // Set short signal to 0 + + bool noSidewaysMarket = false; + bool significantLiquidity = false; + + if(i > 0){ + noSidewaysMarket = (MathAbs(close[i] - close[i-1]) > 10 * _Point); + } + + if(i > 3){ + significantLiquidity = (MathAbs(close[i] - close[i-3]) > 8 * _Point); + } + + bool greenCandleFormation = (close[i] > open[i]); + bool redCandleFormation = (close[i] < open[i]); + + + // Check for MA crossovers + if (i > 0 && (i - 2) >= 0 && close[i] > (indvalue[i] + pointNum * _Point) && close[i - 2] < indvalue[i]) + { + string bullArrow = OBJ_PREFIX + IntegerToString(i); // Unique name for the arrow object based on bar index + double bullArrowPrice = low[i] - (arrowDistance * _Point); + + if(EntryValid(open, close, high, low, i, time, rates_total) && greenCandleFormation && noSidewaysMarket && significantLiquidity){ + + gLongSignal = 1; + gShortSignal = 0; + + if (Audio_Alert_On_Signals) { + if (last_playsound_time < time[i]) + { + PlaySound(audioFilePath); + + // Update last_playsound_time to the start of the current minute + last_playsound_time = time[i] - (time[i] % PeriodSeconds()); + } + } + + ObjectCreate(0, bullArrow, OBJ_ARROW, 0, time[i], bullArrowPrice); + ObjectSetInteger(0, bullArrow, OBJPROP_ARROWCODE, 233); + ObjectSetInteger(0, bullArrow, OBJPROP_BACK, false); + ObjectSetInteger(0, bullArrow, OBJPROP_COLOR, LongSignalColor); // Set the color of the arrow + ObjectSetInteger(0, bullArrow, OBJPROP_ANCHOR, ANCHOR_TOP); // Set the anchor point of the arrow + ObjectSetInteger(0, bullArrow, OBJPROP_WIDTH, 2); // Set the width of the arrow + } + + } + else if (i > 0 && (i - 2) >= 0 && close[i] < (indvalue[i] - pointNum * _Point) && close[i - 2] > indvalue[i]) + { + string bearArrow = OBJ_PREFIX + IntegerToString(i); // Unique name for the arrow object based on bar index + double bearArrowPrice = high[i] + (arrowDistance * _Point); + + if(EntryValid(open, close, high, low, i, time, rates_total) && redCandleFormation && noSidewaysMarket && significantLiquidity){ + + gLongSignal = 0; + gShortSignal = 1; + + if (Audio_Alert_On_Signals) { + if (last_playsound_time < time[i]) + { + PlaySound(audioFilePath); + + // Update last_playsound_time to the start of the current minute + last_playsound_time = time[i] - (time[i] % PeriodSeconds()); + } + } + + ObjectCreate(0, bearArrow, OBJ_ARROW, 0, time[i], bearArrowPrice); + ObjectSetInteger(0, bearArrow, OBJPROP_ARROWCODE, 234); + ObjectSetInteger(0, bearArrow, OBJPROP_BACK, false); + ObjectSetInteger(0, bearArrow, OBJPROP_COLOR, ShortSignalColor); // Set the color of the arrow + ObjectSetInteger(0, bearArrow, OBJPROP_ANCHOR, ANCHOR_BOTTOM); // Set the anchor point of the arrow + ObjectSetInteger(0, bearArrow, OBJPROP_WIDTH, 2); // Set the width of the arrow + } + } + } + + // Return value of prev_calculated for the next call + return rates_total; +} + + + +bool EntryValid(const double& open[], const double& close[], const double& high[], const double& low[], int idx, const datetime& time[], const int bars){ + + double pointSize = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + bool valid = true; + + double liquidityCheck_a = MathAbs(close[idx-1] - close[idx-2])/pointSize; // analyze previous candle closes + double liquidityCheck_b = MathAbs(close[idx-3] - close[idx-4])/pointSize; // analyze even older candle closes + double liquidityCheck_c = MathAbs(open[idx] - close[idx])/pointSize; // compare current candle open and close + double liquidityCheck_d = MathAbs(high[idx] - low[idx])/pointSize; // compare current candle high and low + double liquidityCheck_e = MathAbs(open[idx-1] - close[idx-1])/pointSize; // compare previous candle open and close + double liquidityCheck_f = MathAbs(high[idx-1] - low[idx-1])/pointSize; // compare previous candle high and low + double liquidityCheck_g = MathAbs(close[idx-2] - close[idx-8])/pointSize; // analyze even older candle closes + + // remove signals on weak candles (market uncertainty) + if(liquidityCheck_d < 25){ + valid = false; + } + else if(liquidityCheck_e < 10){ + + if(MathAbs(high[idx] - low[idx])/pointSize > 15){ + valid = true; + } + else{ + valid = false; + } + } + else if(liquidityCheck_g < 10){ + valid = false; + } + + return valid; +} + + + +//+------------------------------------------------------------------+ + +void OnDeinit(const int reason) +{ + ObjectsDeleteAll(0, OBJ_PREFIX); + IndicatorRelease(handle); +} + + diff --git a/Moving Average-RMA - indicator for MetaTrader 5/README.md b/Moving Average-RMA - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b1712d2 --- /dev/null +++ b/Moving Average-RMA - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `relative_moving_average.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](o7wv_20230526230712.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Average-RMA - indicator for MetaTrader 5/expert.png b/Moving Average-RMA - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/expert.png differ diff --git a/Moving Average-RMA - indicator for MetaTrader 5/indicator.png b/Moving Average-RMA - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Average-RMA - indicator for MetaTrader 5/library.png b/Moving Average-RMA - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/library.png differ diff --git a/Moving Average-RMA - indicator for MetaTrader 5/logo-2.png b/Moving Average-RMA - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Average-RMA - indicator for MetaTrader 5/o7wv_20230526230712.png b/Moving Average-RMA - indicator for MetaTrader 5/o7wv_20230526230712.png new file mode 100644 index 0000000..5f25745 Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/o7wv_20230526230712.png differ diff --git a/Moving Average-RMA - indicator for MetaTrader 5/relative_moving_average.mq5 b/Moving Average-RMA - indicator for MetaTrader 5/relative_moving_average.mq5 new file mode 100644 index 0000000..da48d80 Binary files /dev/null and b/Moving Average-RMA - indicator for MetaTrader 5/relative_moving_average.mq5 differ diff --git a/Moving Averages with Colors - indicator for MetaTrader 5/README.md b/Moving Averages with Colors - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..2013f12 --- /dev/null +++ b/Moving Averages with Colors - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_averages.mq5` + +### Screenshots: +![Screenshot](mov_av.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving Averages with Colors - indicator for MetaTrader 5/indicator.png b/Moving Averages with Colors - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving Averages with Colors - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving Averages with Colors - indicator for MetaTrader 5/logo-2.png b/Moving Averages with Colors - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving Averages with Colors - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving Averages with Colors - indicator for MetaTrader 5/mov_av.png b/Moving Averages with Colors - indicator for MetaTrader 5/mov_av.png new file mode 100644 index 0000000..e9eec6e Binary files /dev/null and b/Moving Averages with Colors - indicator for MetaTrader 5/mov_av.png differ diff --git a/Moving Averages with Colors - indicator for MetaTrader 5/moving_averages.mq5 b/Moving Averages with Colors - indicator for MetaTrader 5/moving_averages.mq5 new file mode 100644 index 0000000..c5f0b3f --- /dev/null +++ b/Moving Averages with Colors - indicator for MetaTrader 5/moving_averages.mq5 @@ -0,0 +1,221 @@ +//+------------------------------------------------------------------+ +//| Colored moving averages.mq5 | +//+------------------------------------------------------------------+ +#property copyright "Mladen" +#property link "http://www.forex-tsd.com" +#property version "1.00" + +#property indicator_chart_window +#property indicator_buffers 3 +#property indicator_plots 1 + +// +// +// +// +// + +#property indicator_label1 "Moving average" +#property indicator_type1 DRAW_COLOR_LINE +#property indicator_color1 Red +#property indicator_style1 STYLE_SOLID +#property indicator_width1 2 + +// +// +// +// +// + +input int inpLength = 14; // Moving average period (length) +input ENUM_APPLIED_PRICE Price = PRICE_CLOSE; // Applied price +input ENUM_MA_METHOD Method = MODE_EMA; // Moving average method +input color ColorFrom = Lime; // "Fast up" color +input color ColorTo = DeepPink; // "Fast down" color +input int MaxAngle = 20; // Angle threshhold for color steps + +// +// +// +// +// + +double maBuffer[]; +double maColors[]; +double atrBuffer[]; + +int maHandle; +int atrHandle; + +// +// +// +// +// + +#define angleBars 6 +#define atrBars 100 + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +// +// +// +// +// + +int OnInit() +{ + SetIndexBuffer(0,maBuffer ,INDICATOR_DATA); ArraySetAsSeries(maBuffer ,true); + SetIndexBuffer(1,maColors ,INDICATOR_COLOR_INDEX); ArraySetAsSeries(maColors ,true); + SetIndexBuffer(2,atrBuffer,INDICATOR_DATA); ArraySetAsSeries(atrBuffer,true); + + // + // + // + // + // + + int iLength = (inpLength>0) ? inpLength : 1; + + maHandle = iMA(NULL,0,iLength,0,Method,Price); + atrHandle = iATR(NULL,0,atrBars); + PlotIndexSetInteger(0,PLOT_COLOR_INDEXES,20); + for (int i=0;i<20;i++) + PlotIndexSetInteger(0,PLOT_LINE_COLOR,i,gradientColor(i,20,ColorTo,ColorFrom)); + return(0); +} + + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +// +// +// +// +// + +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[]) +{ + + // + // + // + // + // + + int limit = rates_total-prev_calculated; + if (prev_calculated > 0) limit++; + if (prev_calculated == 0) limit-=(angleBars+1); + + if (!checkCalculated(maHandle ,rates_total,"averages")) return(prev_calculated); + if (!checkCalculated(atrHandle,rates_total,"ATR")) return(prev_calculated); + if (!doCopy(maHandle,maBuffer,0,limit ,"averages")) return(prev_calculated); + if (!doCopy(atrHandle,atrBuffer,0,limit ,"ATR")) return(prev_calculated); + + // + // + // + // + // + + for(int i=limit; i>=0; i--) maColors[i] = slopeColor(i); + return(rates_total); +} + + + + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +// +// +// +// +// + +#define Pi 3.141592653589793238462643 + +// +// +// + +int slopeColor(int i) +{ + double range = atrBuffer[i]; + double angle = 0.00; + double change = maBuffer[i]-maBuffer[i+angleBars]; + + if (range != 0) angle = MathArctan(change/(range*angleBars))*180.0/Pi; + + int theColor = (int)round((angle+MaxAngle)/(MaxAngle/10.0)); + theColor = (theColor>=0) ? ((theColor<20) ? theColor : 19) : 0; + return(theColor); +} + +// +// +// +// +// + +color gradientColor(int step, int totalSteps, color from, color to) +{ + color newBlue = getColor(step,totalSteps,(from & 0XFF0000)>>16,(to & 0XFF0000)>>16)<<16; + color newGreen = getColor(step,totalSteps,(from & 0X00FF00)>> 8,(to & 0X00FF00)>> 8) <<8; + color newRed = getColor(step,totalSteps,(from & 0X0000FF) ,(to & 0X0000FF) ) ; + return(newBlue+newGreen+newRed); +} + +color getColor(int stepNo, int totalSteps, color from, color to) +{ + double step = (from-to)/(totalSteps-1.0); + return((color)round(from-step*stepNo)); +} + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +// +// +// +// + +bool checkCalculated(int bufferHandle, int total, string checkDescription) +{ + int calculated=BarsCalculated(bufferHandle); + if (calculated Made with вќ¤пёЏ for the trading community. diff --git a/Moving Averages-14 different types - indicator for MetaTrader 5/all_ma.mq5 b/Moving Averages-14 different types - indicator for MetaTrader 5/all_ma.mq5 new file mode 100644 index 0000000..33e4228 --- /dev/null +++ b/Moving Averages-14 different types - indicator for MetaTrader 5/all_ma.mq5 @@ -0,0 +1,319 @@ +//+------------------------------------------------------------------+ +//| All_MA.mq5 | +//| Copyright 2022, MetaQuotes Ltd. | +//| https://www.mql5.com | +//| Author: Yashar Seyyedin | +//| Web Address: https://www.mql5.com/en/users/yashar.seyyedin | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2022, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.10" +#property indicator_chart_window +#property indicator_buffers 9 +#property indicator_plots 1 +//--- plot MA +#property indicator_label1 "MA" +#property indicator_type1 DRAW_LINE +#property indicator_color1 clrRed +#property indicator_style1 STYLE_SOLID +#property indicator_width1 1 + +#define BARS MathMax(rates_total-_length-prev_calculated,1) +enum MA_TYPE + { + SMA, EMA, WMA, VWMA, + RMA, DEMA, TEMA, ZLEMA, + HMA, ALMA, LSMA, + SWMA, SMMA, DONCHIAN + }; + +//--- input parameters +input MA_TYPE _type = SMMA; //MA Type: +input int _length = 8; //MA Period +input double _offset = 0.85; //Offset for ALMA +input int _sigma = 6; //Offset for LSMA / Sigma for ALMA + +//--- indicator buffers +double EMABuffer[]; +double EMA2Buffer[]; +double EMA3Buffer[]; +double RMABuffer[]; +double DEMABuffer[]; +double TEMABuffer[]; +double zlematmpBuffer[]; +double ZLEMABuffer[]; +double MABuffer[]; + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//--- indicator buffers mapping + SetIndexBuffer(0,MABuffer,INDICATOR_DATA); + SetIndexBuffer(1,EMABuffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(2,EMA2Buffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(3,EMA3Buffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(4,RMABuffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(5,DEMABuffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(6,TEMABuffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(7,zlematmpBuffer,INDICATOR_CALCULATIONS); + SetIndexBuffer(8,ZLEMABuffer,INDICATOR_CALCULATIONS); + + ArraySetAsSeries(EMABuffer,true); + ArraySetAsSeries(EMA2Buffer,true); + ArraySetAsSeries(EMA3Buffer,true); + ArraySetAsSeries(RMABuffer,true); + ArraySetAsSeries(DEMABuffer,true); + ArraySetAsSeries(TEMABuffer,true); + ArraySetAsSeries(zlematmpBuffer,true); + ArraySetAsSeries(ZLEMABuffer,true); + ArraySetAsSeries(MABuffer,true); +//--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +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[]) + { +//--- + ArraySetAsSeries(close, true); + for(int i=BARS; i>=0; i--) + MABuffer[i]=anyma(close, _length, _type, _offset, _sigma, i); + + return(rates_total); + } +//+------------------------------------------------------------------+ + + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +double anyma(const double &src[], + int length, + MA_TYPE type = EMA, + double offset = 0.85, + int sigma = 6, + int index = 0) + { + switch(type) + { + case SMA: + return pine_sma(src, length, index); + case EMA: + return pine_ema(src, length, index); + case WMA: + return pine_wma(src, length, index); + case VWMA: + return pine_vwma(src, length, index); + case RMA: + return pine_rma(src, length, index); + case DEMA: + return pine_dema(src, length, index); + case TEMA: + return pine_tema(src, length, index); + case ZLEMA: + return pine_zlema(src, length, index); + case HMA: + return pine_hma(src, length, index); + case ALMA: + return pine_alma(src, length, offset, sigma, index); + case LSMA: + return pine_linreg(src, length, sigma, index); + case SWMA: + return pine_swma(src, index); + case SMMA: + return pine_rma(src, length, index); + case DONCHIAN: + return pine_donchian(src, length, index); + default: + return EMPTY_VALUE; + } + } + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +double pine_sma(const double &src[], int length, int index) + { + double sum = 0.0; + for(int i = index; i Made with вќ¤пёЏ for the trading community. diff --git a/Moving slope rate of change - Extended - indicator for MetaTrader 5/indicator.png b/Moving slope rate of change - Extended - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving slope rate of change - Extended - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving slope rate of change - Extended - indicator for MetaTrader 5/logo-2.png b/Moving slope rate of change - Extended - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving slope rate of change - Extended - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving slope rate of change - Extended - indicator for MetaTrader 5/moving_slope_rate_of_change_-_extended.mq5 b/Moving slope rate of change - Extended - indicator for MetaTrader 5/moving_slope_rate_of_change_-_extended.mq5 new file mode 100644 index 0000000..923b4a0 Binary files /dev/null and b/Moving slope rate of change - Extended - indicator for MetaTrader 5/moving_slope_rate_of_change_-_extended.mq5 differ diff --git a/Moving slope rate of change - indicator for MetaTrader 5/README.md b/Moving slope rate of change - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..05d7915 --- /dev/null +++ b/Moving slope rate of change - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `moving_slope_rate_of_change.mq5` + +### Screenshots: +![Screenshot](cb-1.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Moving slope rate of change - indicator for MetaTrader 5/cb-1.png b/Moving slope rate of change - indicator for MetaTrader 5/cb-1.png new file mode 100644 index 0000000..73c1421 Binary files /dev/null and b/Moving slope rate of change - indicator for MetaTrader 5/cb-1.png differ diff --git a/Moving slope rate of change - indicator for MetaTrader 5/indicator.png b/Moving slope rate of change - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Moving slope rate of change - indicator for MetaTrader 5/indicator.png differ diff --git a/Moving slope rate of change - indicator for MetaTrader 5/logo-2.png b/Moving slope rate of change - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Moving slope rate of change - indicator for MetaTrader 5/logo-2.png differ diff --git a/Moving slope rate of change - indicator for MetaTrader 5/moving_slope_rate_of_change.mq5 b/Moving slope rate of change - indicator for MetaTrader 5/moving_slope_rate_of_change.mq5 new file mode 100644 index 0000000..5c6b42b Binary files /dev/null and b/Moving slope rate of change - indicator for MetaTrader 5/moving_slope_rate_of_change.mq5 differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/MovingAverages.mqh_Part_I_by_Wiliam210.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/MovingAverages.mqh_Part_I_by_Wiliam210.png new file mode 100644 index 0000000..22a177d Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/MovingAverages.mqh_Part_I_by_Wiliam210.png differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/README.md b/MovingAverages.mqh Part I - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..07af0f4 --- /dev/null +++ b/MovingAverages.mqh Part I - indicator for MetaTrader 5/README.md @@ -0,0 +1,23 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `movingaverages.mqh_part_i.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](MovingAverages.mqh_Part_I_by_Wiliam210.png) +![Screenshot](script.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/expert.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/expert.png new file mode 100644 index 0000000..9a2e616 Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/expert.png differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/indicator.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/indicator.png differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/library.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/library.png differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/logo-2.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/logo-2.png differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/movingaverages.mqh_part_i.mq5 b/MovingAverages.mqh Part I - indicator for MetaTrader 5/movingaverages.mqh_part_i.mq5 new file mode 100644 index 0000000..ba195a7 Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/movingaverages.mqh_part_i.mq5 differ diff --git a/MovingAverages.mqh Part I - indicator for MetaTrader 5/script.png b/MovingAverages.mqh Part I - indicator for MetaTrader 5/script.png new file mode 100644 index 0000000..d32d874 Binary files /dev/null and b/MovingAverages.mqh Part I - indicator for MetaTrader 5/script.png differ diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/Moving_Averages_Part_II_by_William210.png b/MovingAverages.mqh Part II - indicator for MetaTrader 5/Moving_Averages_Part_II_by_William210.png new file mode 100644 index 0000000..1d6000c Binary files /dev/null and b/MovingAverages.mqh Part II - indicator for MetaTrader 5/Moving_Averages_Part_II_by_William210.png differ diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/README.md b/MovingAverages.mqh Part II - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..61ebf15 --- /dev/null +++ b/MovingAverages.mqh Part II - indicator for MetaTrader 5/README.md @@ -0,0 +1,22 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `movingaverages.mqh_part_ii.mq5` + +### Screenshots: +![Screenshot](library.png) +![Screenshot](Moving_Averages_Part_II_by_William210.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/indicator.png b/MovingAverages.mqh Part II - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/MovingAverages.mqh Part II - indicator for MetaTrader 5/indicator.png differ diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/library.png b/MovingAverages.mqh Part II - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/MovingAverages.mqh Part II - indicator for MetaTrader 5/library.png differ diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/logo-2.png b/MovingAverages.mqh Part II - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/MovingAverages.mqh Part II - indicator for MetaTrader 5/logo-2.png differ diff --git a/MovingAverages.mqh Part II - indicator for MetaTrader 5/movingaverages.mqh_part_ii.mq5 b/MovingAverages.mqh Part II - indicator for MetaTrader 5/movingaverages.mqh_part_ii.mq5 new file mode 100644 index 0000000..a858d32 Binary files /dev/null and b/MovingAverages.mqh Part II - indicator for MetaTrader 5/movingaverages.mqh_part_ii.mq5 differ diff --git a/Multi Averages Slopes - indicator for MetaTrader 5/README.md b/Multi Averages Slopes - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..a318fe8 --- /dev/null +++ b/Multi Averages Slopes - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `multi_averages_slopes.mq5` + +### Screenshots: +![Screenshot](cb__20.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Multi Averages Slopes - indicator for MetaTrader 5/cb__20.png b/Multi Averages Slopes - indicator for MetaTrader 5/cb__20.png new file mode 100644 index 0000000..6caf76b Binary files /dev/null and b/Multi Averages Slopes - indicator for MetaTrader 5/cb__20.png differ diff --git a/Multi Averages Slopes - indicator for MetaTrader 5/indicator.png b/Multi Averages Slopes - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Multi Averages Slopes - indicator for MetaTrader 5/indicator.png differ diff --git a/Multi Averages Slopes - indicator for MetaTrader 5/logo-2.png b/Multi Averages Slopes - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Multi Averages Slopes - indicator for MetaTrader 5/logo-2.png differ diff --git a/Multi Averages Slopes - indicator for MetaTrader 5/multi_averages_slopes.mq5 b/Multi Averages Slopes - indicator for MetaTrader 5/multi_averages_slopes.mq5 new file mode 100644 index 0000000..5c64db5 Binary files /dev/null and b/Multi Averages Slopes - indicator for MetaTrader 5/multi_averages_slopes.mq5 differ diff --git a/Multi JMA Slopes - indicator for MetaTrader 5/README.md b/Multi JMA Slopes - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..b72d7f9 --- /dev/null +++ b/Multi JMA Slopes - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `multi_jma_slopes.mq5` + +### Screenshots: +![Screenshot](cb__22.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Multi JMA Slopes - indicator for MetaTrader 5/cb__22.png b/Multi JMA Slopes - indicator for MetaTrader 5/cb__22.png new file mode 100644 index 0000000..ea4cea6 Binary files /dev/null and b/Multi JMA Slopes - indicator for MetaTrader 5/cb__22.png differ diff --git a/Multi JMA Slopes - indicator for MetaTrader 5/indicator.png b/Multi JMA Slopes - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Multi JMA Slopes - indicator for MetaTrader 5/indicator.png differ diff --git a/Multi JMA Slopes - indicator for MetaTrader 5/logo-2.png b/Multi JMA Slopes - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Multi JMA Slopes - indicator for MetaTrader 5/logo-2.png differ diff --git a/Multi JMA Slopes - indicator for MetaTrader 5/multi_jma_slopes.mq5 b/Multi JMA Slopes - indicator for MetaTrader 5/multi_jma_slopes.mq5 new file mode 100644 index 0000000..74d209f Binary files /dev/null and b/Multi JMA Slopes - indicator for MetaTrader 5/multi_jma_slopes.mq5 differ diff --git a/Multi LSMA Slopes - indicator for MetaTrader 5/README.md b/Multi LSMA Slopes - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..1e9d5e9 --- /dev/null +++ b/Multi LSMA Slopes - indicator for MetaTrader 5/README.md @@ -0,0 +1,21 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `multi_lsma_slopes.mq5` + +### Screenshots: +![Screenshot](cb__21.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Multi LSMA Slopes - indicator for MetaTrader 5/cb__21.png b/Multi LSMA Slopes - indicator for MetaTrader 5/cb__21.png new file mode 100644 index 0000000..bd3e89e Binary files /dev/null and b/Multi LSMA Slopes - indicator for MetaTrader 5/cb__21.png differ diff --git a/Multi LSMA Slopes - indicator for MetaTrader 5/indicator.png b/Multi LSMA Slopes - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Multi LSMA Slopes - indicator for MetaTrader 5/indicator.png differ diff --git a/Multi LSMA Slopes - indicator for MetaTrader 5/logo-2.png b/Multi LSMA Slopes - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Multi LSMA Slopes - indicator for MetaTrader 5/logo-2.png differ diff --git a/Multi LSMA Slopes - indicator for MetaTrader 5/multi_lsma_slopes.mq5 b/Multi LSMA Slopes - indicator for MetaTrader 5/multi_lsma_slopes.mq5 new file mode 100644 index 0000000..e8308c4 Binary files /dev/null and b/Multi LSMA Slopes - indicator for MetaTrader 5/multi_lsma_slopes.mq5 differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h35_44.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h35_44.png new file mode 100644 index 0000000..91b30a3 Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h35_44.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h38_06__1.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h38_06__1.png new file mode 100644 index 0000000..9d151f5 Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/2020-11-28_19h38_06__1.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/3.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/3.png new file mode 100644 index 0000000..e477765 Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/3.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/README.md b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/README.md new file mode 100644 index 0000000..6f946d0 --- /dev/null +++ b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/README.md @@ -0,0 +1,24 @@ +# рџљЂ Unlock the Power of Trading! + +Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring в­ђ, sharing, or donating to support further development! + +--- + +**Support the project:** +- Star this repository on GitHub +- Share it with your trading friends +- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow! + +--- + +## Files included: +### Source Files: +- `multi_pair_pivot_point_scanner_alerts_v2.8.mq5` + +### Screenshots: +![Screenshot](2020-11-28_19h35_44.png) +![Screenshot](2020-11-28_19h38_06__1.png) +![Screenshot](3.png) +![Screenshot](library.png) + +> Made with вќ¤пёЏ for the trading community. diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/indicator.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/indicator.png new file mode 100644 index 0000000..7a885d8 Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/indicator.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/library.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/library.png new file mode 100644 index 0000000..5c79a8f Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/library.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/logo-2.png b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/logo-2.png new file mode 100644 index 0000000..28ea55c Binary files /dev/null and b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/logo-2.png differ diff --git a/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/multi_pair_pivot_point_scanner_alerts_v2.8.mq5 b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/multi_pair_pivot_point_scanner_alerts_v2.8.mq5 new file mode 100644 index 0000000..e087afc --- /dev/null +++ b/Multi Pair Pivot Point Scanner Alerts 2.8 - indicator for MetaTrader 5/multi_pair_pivot_point_scanner_alerts_v2.8.mq5 @@ -0,0 +1,2268 @@ +//+------------------------------------------------------------------+ +//| Multi_Pair_Pivot_Point_Scanner_Alerts_v2.7.mq4 | +//| Copyright 2019, NickBixy | +//| https://www.forexfactory.com/showthread.php?t=904734 | +//+------------------------------------------------------------------+ +#property copyright "NickBixy" +#property link "https://www.forexfactory.com/showthread.php?t=904734" +//#property version "2.0" +#property strict +#property description "Indicator Scans Multiple Symbol Pairs Looking For When The Price Crosses A Pivot Point or xx points near or bounced off pivot Then It Alerts The Trader." +#property indicator_chart_window +#define HR2400 (PERIOD_D1 * 60) + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +ENUM_TIMEFRAMES TFMigrate(int tf) + { + switch(tf) + { + case 0: + return(PERIOD_CURRENT); + case 1: + return(PERIOD_M1); + case 5: + return(PERIOD_M5); + case 15: + return(PERIOD_M15); + case 30: + return(PERIOD_M30); + case 60: + return(PERIOD_H1); + case 240: + return(PERIOD_H4); + case 1440: + return(PERIOD_D1); + case 10080: + return(PERIOD_W1); + case 43200: + return(PERIOD_MN1); + + case 2: + return(PERIOD_M2); + case 3: + return(PERIOD_M3); + case 4: + return(PERIOD_M4); + case 6: + return(PERIOD_M6); + case 10: + return(PERIOD_M10); + case 12: + return(PERIOD_M12); + case 16385: + return(PERIOD_H1); + case 16386: + return(PERIOD_H2); + case 16387: + return(PERIOD_H3); + case 16388: + return(PERIOD_H4); + case 16390: + return(PERIOD_H6); + case 16392: + return(PERIOD_H8); + case 16396: + return(PERIOD_H12); + case 16408: + return(PERIOD_D1); + case 32769: + return(PERIOD_W1); + case 49153: + return(PERIOD_MN1); + default: + return(PERIOD_CURRENT); + } + } + +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +ENUM_MA_METHOD MethodMigrate(int method) + { + switch(method) + { + case 0: + return(MODE_SMA); + case 1: + return(MODE_EMA); + case 2: + return(MODE_SMMA); + case 3: + return(MODE_LWMA); + default: + return(MODE_SMA); + } + } + +enum pivotTypes + { + Standard,//Standard(Floor) Pivot Formula + Fibonacci,//Fibonacci Pivot Formula + Camarilla,//Camarilla Pivot Formula + Woodie//Woodie Pivot Formula + }; +enum yesnoChoiceToggle + { + No, + Yes + }; +enum timeChoice + { + Server, + Local + }; +enum symbolTypeChoice + { + MarketWatch,//Market Watch + SymbolList//Symbols In List + }; +enum alertMode + { + Cross_Alerts,//Crossed Pivot Alerts + Near_Alerts,//Near Pivot Alerts + Cross_And_Bounce_Alerts,//Crossed And Bounced Alerts + Near_And_Bounce_Alerts,//Near And Bounced Alerts + Bounce_Only_Alerts//Bounced Only Alerts + }; +enum enabledisableChoiceToggle + { + Disable, + Enable + }; +input string info="Put Scanner On A Separate Chart Tab From Trading Strategy";//Put Scanner On A Separate Chart Tab From Trading Stategy +input string indiLink="https://www.forexfactory.com/showthread.php?t=904734";//Indicator's thread on Forex Factory +input int refreshTime=5;//Refresh check every x Seconds +input string pivotPointHeader="-----------------Pivot Point Settings------------------------------------------";//----- Pivot Point Settings +input pivotTypes pivotSelection=Standard;//Pivot Point Formula +input ENUM_TIMEFRAMES pivotTimeframe=PERIOD_D1;//Pivot Point Timeframe +input alertMode alertModeSelection= Cross_Alerts;//Alert Mode to use +input int xxPoints=50;//Points Near Pivot - For Alert Mode Near +string pointsNearMessage="is Near";//PointsNear Alert Msg +string crossedMessage="Crossed";//Cross Alert Msg +input string symbolHeader="-----------------Symbol Settings------------------------------------------";//----- Symbol Settings +input symbolTypeChoice symTypeChoice=MarketWatch;//Symbols To Scan- Market Watch/Symbol List Below +input string symbols="AUDCAD,AUDCHF,AUDJPY,AUDNZD,AUDUSD,CADCHF,CADJPY,CHFJPY,EURAUD,EURCAD,EURCHF,EURGBP,EURJPY,EURNZD,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDCAD,NZDCHF,NZDJPY,NZDUSD,USDCAD,USDCHF,USDJPY"; //Symbols To Scan +input string symbolPrefix=""; //Symbol Prefix +input string symbolSuffix=""; //Symbol Suffix +input string printoutAndAlertHeader="-----------------Alert/Printout Settings--------------------------------------";//----- Alert/Printout Settings +input int alertInternalMinutes=30;//Alert Wait Time In Min for same Pivot alert Msg +input yesnoChoiceToggle popupAlerts=Yes;//Use Popup Alerts? +input yesnoChoiceToggle notificationAlerts=Yes;//Use Notification Alerts? +input yesnoChoiceToggle emailAlerts=No;//Use Email Alerts? +input yesnoChoiceToggle showBidPriceOnAlert=No;//Show Bid Price in Alert Msg +input yesnoChoiceToggle printOutPivotPoints=No;//Print Out Pivot Values - For Testing Values +input int printOutPivotPointsSymbolIndex=0;//Index Value Of Symbol To Print Out +input string bouncedHeader="-----------------Bounced Mode Alerts Settings------------------------------------------";//----- Bounce Settings +input ENUM_TIMEFRAMES bouncedCandleTF=PERIOD_M15;//Time Frame Candles For Bounced Alerts +input yesnoChoiceToggle candleColorFilter=Yes;//Use Candle Color Filter +input int bounceXBarsWait=0;//Alert Wait Time In Bars for same Pivot alert Msg +input string offResistanceBounceMSG=" - Price Crossed Then Closed Below";//Msg For Bounce Off Resistance +input string offSupportBounceMSG=" - Price Crossed Then Closed Above";//Msg For Bounce Off Support +input string bbFilterHeader="-----------------Bollinger Bands Filter Settings------------------------------------------";//----- Bollinger Bands Filter +input string note="Near/Cross/Bounce Alerts only when price is above upper band or when price is below lower band";//Filter note +input yesnoChoiceToggle useBollingerBands=No;//Use BollingerBands upper/lower Filter +input ENUM_TIMEFRAMES BBtimeFrame=PERIOD_M30;//Bollinger Bands: Timeframe +input int BBperiod=20;//Bollinger Bands: Period +input double BBdeviation=2;//Bollinger Bands: Deviations +input int BBShift=0;//Bollinger Bands: Shift +input ENUM_APPLIED_PRICE BBAppliedPrice=PRICE_CLOSE;//Bollinger Bands: Apply to +input string showAlertsHeader="-----------------Enable/Disable Alerts For Specified Pivot Point----------------------------------------------";//----- Will Affect All the Alert Modes +input string showAlertsStandardPivotHeader="Standard Pivot Point--------------------------------------------";//----- Standard Pivot Point Settings +input enabledisableChoiceToggle MidPointAlerts=Disable;//Mid Pivot Point Alerts +input enabledisableChoiceToggle showStandardPivotR4=Enable;//Standard Pivot R4 +input enabledisableChoiceToggle showStandardPivotR3=Enable;//Standard Pivot R3 +input enabledisableChoiceToggle showStandardPivotR2=Enable;//Standard Pivot R2 +input enabledisableChoiceToggle showStandardPivotR1=Enable;//Standard Pivot R1 +input enabledisableChoiceToggle showStandardPivotPP=Enable;//Standard Pivot PP +input enabledisableChoiceToggle showStandardPivotS1=Enable;//Standard Pivot S1 +input enabledisableChoiceToggle showStandardPivotS2=Enable;//Standard Pivot S2 +input enabledisableChoiceToggle showStandardPivotS3=Enable;//Standard Pivot S3 +input enabledisableChoiceToggle showStandardPivotS4=Enable;//Standard Pivot S4 +input string StandardMidPivotHeader="-----------------Standard Mid Pivot Points";//----- Standard Mid PP +input enabledisableChoiceToggle showStandardPivotMR4=Enable;//Standard Pivot mR4 +input enabledisableChoiceToggle showStandardPivotMR3=Enable;//Standard Pivot mR3 +input enabledisableChoiceToggle showStandardPivotMR2=Enable;//Standard Pivot mR2 +input enabledisableChoiceToggle showStandardPivotMR1=Enable;//Standard Pivot mR1 +input enabledisableChoiceToggle showStandardPivotMS1=Enable;//Standard Pivot mS1 +input enabledisableChoiceToggle showStandardPivotMS2=Enable;//Standard Pivot mS2 +input enabledisableChoiceToggle showStandardPivotMS3=Enable;//Standard Pivot mS3 +input enabledisableChoiceToggle showStandardPivotMS4=Enable;//Standard Pivot mS4 +input string showAlertsFibonacciPivotHeader="Fibonacci Pivot Point--------------------------------------------";//----- Fibonacci Pivot Point Settings +input enabledisableChoiceToggle showFibonacciPivotR200=Enable;//Fibonacci Pivot R200 +input enabledisableChoiceToggle showFibonacciPivotR161=Enable;//Fibonacci Pivot R161 +input enabledisableChoiceToggle showFibonacciPivotR138=Enable;//Fibonacci Pivot R138 +input enabledisableChoiceToggle showFibonacciPivotR100=Enable;//Fibonacci Pivot R100 +input enabledisableChoiceToggle showFibonacciPivotR78=Enable;//Fibonacci Pivot R78 +input enabledisableChoiceToggle showFibonacciPivotR61=Enable;//Fibonacci Pivot R61 +input enabledisableChoiceToggle showFibonacciPivotR38=Enable;//Fibonacci Pivot R38 +input enabledisableChoiceToggle showFibonacciPivotPP=Enable;//Fibonacci Pivot PP +input enabledisableChoiceToggle showFibonacciPivotS38=Enable;//Fibonacci Pivot S38 +input enabledisableChoiceToggle showFibonacciPivotS61=Enable;//Fibonacci Pivot S61 +input enabledisableChoiceToggle showFibonacciPivotS78=Enable;//Fibonacci Pivot S78 +input enabledisableChoiceToggle showFibonacciPivotS100=Enable;//Fibonacci Pivot S100 +input enabledisableChoiceToggle showFibonacciPivotS138=Enable;//Fibonacci Pivot S138 +input enabledisableChoiceToggle showFibonacciPivotS161=Enable;//Fibonacci Pivot S161 +input enabledisableChoiceToggle showFibonacciPivotS200=Enable;//Fibonacci Pivot S200 +input string showAlertsWoodiePivotHeader="Woodie Pivot Point--------------------------------------------";//----- Woodie Pivot Point Settings +input enabledisableChoiceToggle showWoodieR1=Enable;//Woodie Pivot R1 +input enabledisableChoiceToggle showWoodieR2=Enable;//Woodie Pivot R2 +input enabledisableChoiceToggle showWoodiePP=Enable;//Woodie Pivot PP +input enabledisableChoiceToggle showWoodieS1=Enable;//Woodie Pivot S1 +input enabledisableChoiceToggle showWoodieS2=Enable;//Woodie Pivot S2 +input string showAlertsCamarillaPivotHeader="Camarilla Pivot Point--------------------------------------------";//----- Camarilla Pivot Point Settings +input enabledisableChoiceToggle showCamarillaR1=Enable;//Camarilla Pivot R1 +input enabledisableChoiceToggle showCamarillaR2=Enable;//Camarilla Pivot R2 +input enabledisableChoiceToggle showCamarillaR3=Enable;//Camarilla Pivot R3 +input enabledisableChoiceToggle showCamarillaR4=Enable;//Camarilla Pivot R4 +input enabledisableChoiceToggle showCamarillaR5=Enable;//Camarilla Pivot R5 +input enabledisableChoiceToggle showCamarillaPP=Enable;//Camarilla Pivot PP +input enabledisableChoiceToggle showCamarillaS1=Enable;//Camarilla Pivot S1 +input enabledisableChoiceToggle showCamarillaS2=Enable;//Camarilla Pivot S2 +input enabledisableChoiceToggle showCamarillaS3=Enable;//Camarilla Pivot S3 +input enabledisableChoiceToggle showCamarillaS4=Enable;//Camarilla Pivot S4 +input enabledisableChoiceToggle showCamarillaS5=Enable;//Camarilla Pivot S5 +int numSymbols=0; //the number of symbols to scan +int alertIntervalTimeSeconds; //wait time between same alert message for pivot point +string symbolList[]; // array of symbols +string symbolListFinal[]; // array of symbols after merging post and prefix +datetime symbolTimeframeTimeP[]; //array of symbol dates today used for checking for new day for each symbol +double Pivots[][20]; //stores all the pivot points for each timeframe +double PivotsCheck[][20]; //stores all the pivot points for each timeframe +//stores all the bool flags to help detect price cross pivot point for each timeframe +bool PivotsFlag[][20]; +//stores the time to wait for alert time interval for each pivot points timeframe +datetime PivotsWaitTill[][20]; +//stores all the bool flags to help detect price cross pivot point for each timeframe +bool PivotsZoneFlag[][20]; +//num of pivots for each formula +int numPPStandard=17; +int numPPCamarilla=11; +int numPPWoodie=5; +int numPPFibonacci=15; +//bool for the enable/disables specified pivot alerts and thier pivot names in correct index order +bool showStandard[17]; +string standardPivotNames[]= + { + "Pivot", + "S1", + "S2", + "S3", + "R1", + "R2", + "R3", + "R4", + "S4", + "mR4", + "mR3", + "mR2", + "mR1", + "mS1", + "mS2", + "mS3", + "mS4", + }; +bool showCamarilla[11]; +string camarillaPivotNames[]= + { + "Pivot", + "S1", + "S2", + "S3", + "S4", + "R1", + "R2", + "R3", + "R4", + "R5", + "S5", + }; +bool showWoodie[5]; +string woodiePivotNames[]= + { + "Pivot", + "S1", + "S2", + "R1", + "R2" + }; +bool showFibonacci[15]; +string fibonacciPivotNames[]= + { + "Pivot", + "R38", + "R61", + "R78", + "R100", + "R138", + "R161", + "R200", + "S38", + "S61", + "S78", + "S100", + "S138", + "S161", + "S200", + }; +string pivotTimeframeName; +///////////////////////////////////////////////////////////////////////////////////////////// +//variables for bounced check alerts +datetime symbolNewCandleCheck[][1];//keep track of current candle time so will know if new candle starts +datetime bouncedWaitTill[][20]; +int symbolPPIndex[][1];//keep track of the pivot point index that was crossed for all symbols in list, they start all set to -1 +//keep track of the symbol pivot cross state, they start all set to 0 when bull candle cross pp from below set to 1 for opposite set 2 +//hold that state untill a oppposite candle closses above or below then reset ot reset when new pivot cross update state +int PivotState[][1] ; +string indiName="MPPPSA"+EnumToString(pivotTimeframe)+EnumToString(pivotSelection); + +input string dashBoardHeader="-----------------Dashboard Settings--------------------------------------";//----- Dashboard Settings +input yesnoChoiceToggle useDashboard=Yes;//Use DashBoard? +input int widthX=28;//X Dashboard +Moves right, -Moves left +input int widthY=28;//Y Dashboard +Moves down, -Moves up +input int symbolPivotXSpacing=85;//X Between Columns Symbol-PP Nearest +input int pivotPivotAlertXSpacing=50;//X Between Columns PP Nearest-PP Alert +input int pivotAlertTimeLastXSpacing=35;//X Between Columns PP Alert-Time Last +input string FontHeader="Arial Bold";//Font of the headers +input string Font="Arial";//font of the labels +input int fontText=9;//Font Size Labels +input int textH=14;//Y Spacing Between Rows +input color headerColors=clrViolet;//Color of Header +input color symbolColor=clrWhite;//Color of Symbol Rows +int textHEnd=0; +input timeChoice timeChoiceOption=Local;//Local/Server Time For Time Last Alert +input color resistantColor=clrOrangeRed;//Resistant PP Color +input color supportColor=clrLawnGreen;//Support PP Color +input color pivotColor=clrGold;//Pivot Color + +input int listLabelSize=40;//Num Of Alert Msg In List Below +input bool usePivotColor=false;//Label Color use res/sup/piv colors for alerts +input color listLabelColor=clrAquamarine;//List Label Color +input color timeLastAlertColor=clrAquamarine;//Time Last Alert Label Color +string listLabelNames[]; +input ENUM_TIMEFRAMES openChartTimeFrame=PERIOD_H1;//Open Chart TimeFrame + +//initial start +int OnInit() + { + if(EventSetTimer(refreshTime)==false) + { + Alert("ERROR CODE: "+(string)GetLastError());//check error code for timer + } + IndicatorSetString(INDICATOR_SHORTNAME,indiName);//name of indicator used for when symbol not found error will remove indicator from chart + + ObjectsDeleteAll(0,indiName,0,OBJ_LABEL) ; + + alertIntervalTimeSeconds=alertInternalMinutes*60;//waiting time between alerts + updateSpecifiedPivotPointAlerts();//set the bool for the show pivot alerts + if(symTypeChoice==MarketWatch) + { + int numSymbolsMarketWatch=SymbolsTotal(true); + numSymbols=numSymbolsMarketWatch; + ArrayResize(symbolListFinal,numSymbolsMarketWatch); + for(int i=0; ipivot set to true else false, used to dectect price cross pivot point + double bid=SymbolInfoDouble(symbol,SYMBOL_BID); + //if using bounced alert get the current time of that symbol m15 TF candle so when new candle open we will know its a new candle + if(alertModeSelection==Cross_And_Bounce_Alerts || + alertModeSelection==Near_And_Bounce_Alerts || + alertModeSelection==Bounce_Only_Alerts) + { + symbolNewCandleCheck[symbolIndex][0]=iTime(symbol,bouncedCandleTF,0); + } + double points=SymbolInfoDouble(symbol,SYMBOL_POINT); + double pipPoints=xxPoints*points; + switch(pivotSelection)//initalize seleted pivot point forumula + { + case Standard : + standardPivotPoint(pivotTimeframe,Pivots,symbolIndex,symbol);//Gets the values + break; + case Camarilla : + camarillaPivotPoint(pivotTimeframe,Pivots,symbolIndex,symbol);//Gets the values + break; + case Woodie : + woodiePivotPoint(pivotTimeframe,Pivots,symbolIndex,symbol);//Gets the values + break; + case Fibonacci : + fibonacciPivotPoint(pivotTimeframe,Pivots,symbolIndex,symbol);//Gets the values + break; + } + for(int l=0; l=Pivots[symbolIndex][i]) + PivotsFlag[symbolIndex][i]=true; + else + PivotsFlag[symbolIndex][i]=false; + } + } + else + if(alertModeSelection==Near_Alerts || + alertModeSelection==Near_And_Bounce_Alerts) + { + for(int i=0; i=pivotLow)//check if inzone == false + { + PivotsZoneFlag[symbolIndex][i]=true; + } + else + { + PivotsZoneFlag[symbolIndex][i]=false; + } + } + } + if(printOutPivotPoints==Yes && printOutPivotPointsSymbolIndex==symbolIndex)// if yes will call the print out method to show the pivot point values in alert pop up + { + printOutPivotPoint(printOutPivotPointsSymbolIndex); + } + } + } +//check for alert conditions +void PivotCheck(int symbolIndex, int numOfPivotPoints,bool &showRef[],string &pivotNamesRef[])//method to look for the alert conditions using the pivot flags or bounced check method + { + if(symbolTimeframeTimeP[symbolIndex]!=NULL) + { + bool result;//bool for bid>pivot test with flag + double bid; + double points; + double pipPoints; + int digits; + string ppTimeFrame; + string symbolName; + symbolName=symbolListFinal[symbolIndex]; + bid=SymbolInfoDouble(symbolName,SYMBOL_BID); + points=SymbolInfoDouble(symbolName,SYMBOL_POINT); + digits=(int)SymbolInfoInteger(symbolName,SYMBOL_DIGITS); + pipPoints=xxPoints*points; + ppTimeFrame=pivotTimeframeName; + if(alertModeSelection!=Bounce_Only_Alerts) + { + for(int j=0; j=Pivots[symbolIndex][j]; + if(result!=PivotsFlag[symbolIndex][j]) + { + PivotsFlag[symbolIndex][j]=result; + if(useBollingerBands==Yes) + { + if(isUpperLowerBollinger(symbolIndex)==true && TimeCurrent()>=PivotsWaitTill[symbolIndex][j] && showRef[j]==true) + { + PivotsWaitTill[symbolIndex][j]=(TimeCurrent()+alertIntervalTimeSeconds); + doAlert(symbolName,ppTimeFrame,pivotNamesRef[j]); + } + } + else + if(useBollingerBands==No) + { + if(TimeCurrent()>=PivotsWaitTill[symbolIndex][j] && showRef[j]==true) + { + PivotsWaitTill[symbolIndex][j]=(TimeCurrent()+alertIntervalTimeSeconds); + doAlert(symbolName,ppTimeFrame,pivotNamesRef[j]); + } + } + } + } + else + if(alertModeSelection==Near_Alerts || + alertModeSelection==Near_And_Bounce_Alerts) + { + double pivotHigh=Pivots[symbolIndex][j]+pipPoints; + double pivotLow=Pivots[symbolIndex][j]-pipPoints; + + result=((bid<=pivotHigh) && (bid>=pivotLow));//get 1 or 0 + if(result!=PivotsZoneFlag[symbolIndex][j]) + { + PivotsZoneFlag[symbolIndex][j]=result; + if(useBollingerBands==Yes) + { + if(isUpperLowerBollinger(symbolIndex)==true && TimeCurrent()>=PivotsWaitTill[symbolIndex][j] && showRef[j]==true && PivotsZoneFlag[symbolIndex][j]==true) + { + PivotsWaitTill[symbolIndex][j]=(TimeCurrent()+alertIntervalTimeSeconds); + doAlert(symbolName,ppTimeFrame,pivotNamesRef[j]); + } + } + else + if(useBollingerBands==No) + { + if(TimeCurrent()>=PivotsWaitTill[symbolIndex][j] && showRef[j]==true && PivotsZoneFlag[symbolIndex][j]==true) + { + PivotsWaitTill[symbolIndex][j]=(TimeCurrent()+alertIntervalTimeSeconds); + doAlert(symbolName,ppTimeFrame,pivotNamesRef[j]); + } + } + } + } + }//end of + } + //code for bounce check + if(useBollingerBands==Yes && isUpperLowerBollinger(symbolIndex)==true) + { + BouncedCheck(symbolIndex,numOfPivotPoints,symbolPPIndex,Pivots,PivotState,ppTimeFrame,pivotNamesRef,showRef); + } + else + if(useBollingerBands==No) + { + BouncedCheck(symbolIndex,numOfPivotPoints,symbolPPIndex,Pivots,PivotState,ppTimeFrame,pivotNamesRef,showRef); + } + } + } +//printout values +void printOutPivotPoint(int index)//prints out the values of all the pivot points and names used for testing and seeing the values to compare + { + if(index>numSymbols-1 || index<0) + { + Alert("printOutPivotPointsSymbolIndex invalid index number"); + } + else + { + string printMessage=""; + if(pivotSelection==Standard) + { + string pivotLevelName=pivotTimeframeName; + int digits=(int)SymbolInfoInteger(symbolListFinal[index],SYMBOL_DIGITS); + for(int j=0; j=low)//if true means a pivot point was between the high and low so there was a cross + { + countFound++;//increments 1 evertime enter if statement + PivotIndexCrossed[k]=1;//set to 1 mean was crossed + correctPivotIndex=k;//set that pivot index so we know which pivot point that was + } + else + if(open>ppArrayRef[i][k] && + ppArrayRef[i][k]<=high && + ppArrayRef[i][k]>=low)//if true means a pivot point was between the high and low so there was a cross and Beasrish open candle price greater than pivot + { + countFound++; + PivotIndexCrossed[k]=1; + correctPivotIndex=k; + } + } + bool isBullishCandle=false; + if(openclose)//bearish + { + isBearishCandle=true; + } + //if countFound more than 1 pivot it must of been a huge move so check if was bullish or bearish candle then get the best level + bool firstNumberGrabed=false; + double highest=0; + double lowest=0; + if(countFound>1) + { + if(isBullishCandle==true)//bullish candle and found multiple pivot crossing so look for highest priced pivot point and use that one + { + for(int n=0; nhighest) + { + highest=ppArrayRef[i][n]; + correctPivotIndex=n;//index of the pivot to get name and price + } + } + } + } + } + else + if(isBearishCandle==true) + { + for(int n=0; n 1 loop + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + bool foundR=false; + bool foundP=false; + bool foundS=false; + if(countFound>=1) + { + if('R'==StringGetCharacter(PivotNamesRef[correctPivotIndex],0)) + { + foundR=true; + } + else + if('P'==StringGetCharacter(PivotNamesRef[correctPivotIndex],0)) + { + foundP=true; + } + else + if('S'==StringGetCharacter(PivotNamesRef[correctPivotIndex],0)) + { + foundS=true; + } + else + if('m'==StringGetCharacter(PivotNamesRef[correctPivotIndex],0)) + { + if('R'==StringGetCharacter(PivotNamesRef[correctPivotIndex],1)) + { + foundR=true; + } + else + { + foundS=true; + } + } + } + //if pivot state is not zero but priced crossed new pivot reset to 0 + if(pivotStateRef[i][0]!=0 && countFound>=1 && + pivotStateRef[i][0]!=correctPivotIndex) + { + pivotStateRef[i][0]=0; + correctPivotIndexRef[i][0]=-1; + } + //ALERT TYPE 1 + if(pivotStateRef[i][0]==0 && countFound>=1) + { + if(foundR==true && + close= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'R'); + } + } + else + if(candleColorFilter==No) + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'R'); + } + } + } + else + if(foundS==true && + close>ppArrayRef[i][correctPivotIndex]) + { + if(candleColorFilter==Yes && isBullishCandle==true && isBearishCandle==false)//bounced off of S has to close Bullish color Candle Above S + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'S'); + } + } + else + if(candleColorFilter==No) + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'S'); + } + } + } + else + if(foundP==true && + close>ppArrayRef[i][correctPivotIndex]) + { + if(candleColorFilter==Yes && isBullishCandle==true && isBearishCandle==false)//bounced off of S has to close Bullish color Candle Above S + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'S'); + } + } + else + if(candleColorFilter==No) + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'S'); + } + } + } + else + if(foundP==true && + close= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'R'); + } + } + else + if(candleColorFilter==No) + { + if(showRef[correctPivotIndex] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndex])) + { + bouncedWaitTill[i][correctPivotIndex]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndex],'R'); + } + } + } + } + //ALERT TYPE 2 + if(pivotStateRef[i][0]==0 && countFound>=1) + { + if(foundR==true && + close>ppArrayRef[i][correctPivotIndex]) + { + pivotStateRef[i][0]=1; + correctPivotIndexRef[i][0]=correctPivotIndex; + } + else + if(foundS==true && + close= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'R'); + } + } + else + if(candleColorFilter==No) + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'R'); + } + } + } + else + if(foundS==true && + close>ppArrayRef[i][correctPivotIndexRef[i][0]]) + { + if(candleColorFilter==Yes && isBullishCandle==true && isBearishCandle==false)//bounced off of S has to close Bullish color Candle Above S + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'S'); + } + } + else + if(candleColorFilter==No) + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'S'); + } + } + } + else + if(foundP==true && + close>ppArrayRef[i][correctPivotIndexRef[i][0]]) + { + if(candleColorFilter==Yes && isBullishCandle==true && isBearishCandle==false)//bounced off of S has to close Bullish color Candle Above S + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'S'); + } + } + else + if(candleColorFilter==No) + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'S'); + } + } + } + else + if(foundP==true && + close= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'R'); + } + } + else + if(candleColorFilter==No) + { + pivotStateRef[i][0]=0; + if(showRef[correctPivotIndexRef[i][0]] &&(iTime(symbolName,bouncedCandleTF,bounceXBarsWait) >= bouncedWaitTill[i][correctPivotIndexRef[i][0]])) + { + bouncedWaitTill[i][correctPivotIndexRef[i][0]]=iTime(symbolName,bouncedCandleTF,0); + doAlertBounce(symbolName,ppTimeFrame,PivotNamesRef[correctPivotIndexRef[i][0]],'R'); + } + } + } + } + } + //end of bounce + } + } +//used to stop certain pivot points from being alerted +void updateSpecifiedPivotPointAlerts()//used to stop certain pivot points from being alerted + { + if(showStandardPivotPP==Disable)//standard + showStandard[0]=false; + else + showStandard[0]=true; + if(showStandardPivotS1==Disable) + showStandard[1]=false; + else + showStandard[1]=true; + if(showStandardPivotS2==Disable) + showStandard[2]=false; + else + showStandard[2]=true; + if(showStandardPivotS3==Disable) + showStandard[3]=false; + else + showStandard[3]=true; + if(showStandardPivotR1==Disable) + showStandard[4]=false; + else + showStandard[4]=true; + if(showStandardPivotR2==Disable) + showStandard[5]=false; + else + showStandard[5]=true; + if(showStandardPivotR3==Disable) + showStandard[6]=false; + else + showStandard[6]=true; + if(showStandardPivotR4==Disable) + showStandard[7]=false; + else + showStandard[7]=true; + if(showStandardPivotS4==Disable) + showStandard[8]=false; + else + showStandard[8]=true; + + if(showCamarillaPP==Disable) //Camarilla + showCamarilla[0]=false; + else + showCamarilla[0]=true; + if(showCamarillaS1==Disable) + showCamarilla[1]=false; + else + showCamarilla[1]=true; + if(showCamarillaS2==Disable) + showCamarilla[2]=false; + else + showCamarilla[2]=true; + if(showCamarillaS3==Disable) + showCamarilla[3]=false; + else + showCamarilla[3]=true; + if(showCamarillaS4==Disable) + showCamarilla[4]=false; + else + showCamarilla[4]=true; + if(showCamarillaR1==Disable) + showCamarilla[5]=false; + else + showCamarilla[5]=true; + if(showCamarillaR2==Disable) + showCamarilla[6]=false; + else + showCamarilla[6]=true; + if(showCamarillaR3==Disable) + showCamarilla[7]=false; + else + showCamarilla[7]=true; + if(showCamarillaR4==Disable) + showCamarilla[8]=false; + else + showCamarilla[8]=true; + if(showCamarillaR5==Disable) + showCamarilla[9]=false; + else + showCamarilla[9]=true; + if(showCamarillaS5==Disable) + showCamarilla[10]=false; + else + showCamarilla[10]=true; + + if(showWoodiePP==Disable)//Woodie + showWoodie[0]=false; + else + showWoodie[0]=true; + if(showWoodieS1==Disable) + showWoodie[1]=false; + else + showWoodie[1]=true; + if(showWoodieS2==Disable) + showWoodie[2]=false; + else + showWoodie[2]=true; + if(showWoodieR1==Disable) + showWoodie[3]=false; + else + showWoodie[3]=true; + if(showWoodieR2==Disable) + showWoodie[4]=false; + else + showWoodie[4]=true; + + if(showFibonacciPivotPP==Disable)//Fibonacci + showFibonacci[0]=false; + else + showFibonacci[0]=true; + if(showFibonacciPivotR38==Disable) + showFibonacci[1]=false; + else + showFibonacci[1]=true; + if(showFibonacciPivotR61==Disable) + showFibonacci[2]=false; + else + showFibonacci[2]=true; + if(showFibonacciPivotR78==Disable) + showFibonacci[3]=false; + else + showFibonacci[3]=true; + if(showFibonacciPivotR100==Disable) + showFibonacci[4]=false; + else + showFibonacci[4]=true; + if(showFibonacciPivotR138==Disable) + showFibonacci[5]=false; + else + showFibonacci[5]=true; + if(showFibonacciPivotR161==Disable) + showFibonacci[6]=false; + else + showFibonacci[6]=true; + if(showFibonacciPivotR200==Disable) + showFibonacci[7]=false; + else + showFibonacci[7]=true; + if(showFibonacciPivotS38==Disable) + showFibonacci[8]=false; + else + showFibonacci[8]=true; + if(showFibonacciPivotS61==Disable) + showFibonacci[9]=false; + else + showFibonacci[9]=true; + if(showFibonacciPivotS78==Disable) + showFibonacci[10]=false; + else + showFibonacci[10]=true; + if(showFibonacciPivotS100==Disable) + showFibonacci[11]=false; + else + showFibonacci[11]=true; + if(showFibonacciPivotS138==Disable) + showFibonacci[12]=false; + else + showFibonacci[12]=true; + if(showFibonacciPivotS161==Disable) + showFibonacci[13]=false; + else + showFibonacci[13]=true; + if(showFibonacciPivotS200==Disable) + showFibonacci[14]=false; + else + showFibonacci[14]=true; + } +//check if values are correct +void checkValuesForValid(int symbolIndex,int numOfPivotPoints) + { + string symbol=symbolListFinal[symbolIndex]; + switch(pivotSelection)//initalize seleted pivot point forumula + { + case Standard : + standardPivotPoint(pivotTimeframe,PivotsCheck,symbolIndex,symbol);//Gets the values + break; + case Camarilla : + camarillaPivotPoint(pivotTimeframe,PivotsCheck,symbolIndex,symbol);//Gets the values + break; + case Woodie : + woodiePivotPoint(pivotTimeframe,PivotsCheck,symbolIndex,symbol);//Gets the values + break; + case Fibonacci : + fibonacciPivotPoint(pivotTimeframe,PivotsCheck,symbolIndex,symbol);//Gets the values + break; + } + for(int i=0; iupperBand || symbolBidPrice