Indicadores: Standard Deviation Channel MT5

 

Standard Deviation Channel MT5:

O canal é construído com base no desvio padrão do preço de fechamento

Standard Deviation Channel MT5

Autor: Ziheng Zhuang

[Excluído]  
 

Como chamá-lo em seu EA?


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

input int InputStarBar = 0;//StarBar
input int InputCalcBars = 120;/Barras para cálculo
input double f1=1.0;//Multiplicador de canal interno
input double f2=2.0;/Multiplicador de canal externo

int handle = -1;

//+------------------------------------------------------------------+
//| Função de inicialização especializada|
//+------------------------------------------------------------------+
int OnInit()
{
//---
   //1.criar um identificador para StandardDeviationChannel
   handle = iCustom(Symbol(),PERIOD_CURRENT,"StandardDeviationChannel",InputStarBar,InputCalcBars,f1,f2);
   //2.verificar se o identificador foi criado com sucesso
   if(handle==INVALID_HANDLE)//falha
   {
      Alert("Create a handle to StandardDeviationChannel failed");
      return(INIT_FAILED);
   }
//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Função de desinicialização de especialista|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Função de tique de especialista|
//+------------------------------------------------------------------+
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];
}
//+------------------------------------------------------------------+
//conversão de duplos para string
string d2s(double x)
{
  return DoubleToString(x,_Digits);
}
Arquivos anexados:
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...
 
Seria ideal se houvesse uma versão com vários quadros de tempo
 
Incrível!!!