Indicators: Standard Deviation Channel MT5

 

Standard Deviation Channel MT5:

A channel based on standard deviation of close price.

Standard Deviation Channel MT5

Author: Ziheng Zhuang

 
 

How to call it in it EA ?


//+------------------------------------------------------------------+
//|                                                     test_SDC.mq5 |
//|                                           Copyright 2022,fxMeter |
//|                            https://www.mql5.com/en/users/fxmeter |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022,fxMeter"
#property link      "https://www.mql5.com/en/users/fxmeter"
#property version   "1.00"

input int InputStarBar = 0;//StarBar
input int InputCalcBars = 120;//Bars for Calculation
input double f1=1.0;//Inner Channel Multiplier
input double f2=2.0;//Outer Channel Multiplier

int handle = -1;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
//---
   //1.create a handle to StandardDeviationChannel
   handle = iCustom(Symbol(),PERIOD_CURRENT,"StandardDeviationChannel",InputStarBar,InputCalcBars,f1,f2);
   //2.check whether the handle is created successfully
   if(handle==INVALID_HANDLE)//failed
   {
      Alert("Create a handle to StandardDeviationChannel failed");
      return(INIT_FAILED);
   }
//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//---
   double mid_right = GetBufferValue(0,InputStarBar);
   double top_right = GetBufferValue(1,InputStarBar);
   double btm_right = GetBufferValue(2,InputStarBar);

   double mid_left = GetBufferValue(0,InputStarBar+InputCalcBars-1);
   double top_left = GetBufferValue(1,InputStarBar+InputCalcBars-1);
   double btm_left = GetBufferValue(2,InputStarBar+InputCalcBars-1);
   
      Comment(
        "mid_left = ",d2s(mid_left)," ,  ","mid_right = ",d2s(mid_right),"\n",
        "top_left = ",d2s(top_left)," ,  ","top_right = ",d2s(top_right),"\n",
        "btm_left = ",d2s(btm_left)," ,  ","btm_right = ",d2s(btm_right) 
   ); 
}
//+------------------------------------------------------------------+
double GetBufferValue(int which_buffer,int which_bar)
{
   double tmp[1]= {0};
   CopyBuffer(handle,which_buffer,which_bar,1,tmp);
   return tmp[0];
}
//+------------------------------------------------------------------+
//double convert to string
string d2s(double x)
{
  return DoubleToString(x,_Digits);
}
Files:
test_SDC.mq5  3 kb
 
Indicators: Standard Deviation Channel MT4
Indicators: Standard Deviation Channel MT4
  • 2021.08.20
  • www.mql5.com
Standard Deviation Channel MT4: Author: Ziheng Zhuang...
 
it would be ideal, if there is a multi-timeframe version
 
Amazing!!!