指标: Mirror_Bands

 

Mirror_Bands:

一款带有信号线的带状指标


作者: Scriptor

 
你好,Scriptor。这是一个不错的指标。你能基于 LWMA 和 EMA 创建一个类似的指标吗?
 
FX-Navigator :
你好,Scriptor。这是一个不错的指标。您能否基于 LWMA 和 EMA 创建一个类似的指标?

Scriptor 很久没有回复任何人了。不过你可以自己修改代码:

//+------------------------------------------------------------------+
//| 自定义指示器初始化函数
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 设置全局变量
   period=int(InpPeriod<1 ? 1 : InpPeriod);
   period_ma=int(InpPeriodMA<1 ? 1 : InpPeriodMA);
   deviation=InpDeviation;
//--- 指示器缓冲区映射
   SetIndexBuffer(0,BufferTop,INDICATOR_DATA);
   SetIndexBuffer(1,BufferBottom,INDICATOR_DATA);
   SetIndexBuffer(2,BufferMA,INDICATOR_DATA);
   SetIndexBuffer(3,BufferMirror,INDICATOR_DATA);
   SetIndexBuffer(4,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,BufferMAInd,INDICATOR_CALCULATIONS);
//--- 设置指示器参数
   IndicatorSetString(INDICATOR_SHORTNAME,"MBands("+(string)period+","+(string)period_ma+","+DoubleToString(deviation,1)+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- 将缓冲数组设置为时间序列
   ArraySetAsSeries(BufferTop,true);
   ArraySetAsSeries(BufferBottom,true);
   ArraySetAsSeries(BufferMA,true);
   ArraySetAsSeries(BufferMirror,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMAInd,true);
//--- 创建 MA 的句柄
   ResetLastError();
   handle_ma=iMA(NULL,PERIOD_CURRENT,period_ma,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period_ma,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   ResetLastError();
   handle_ma_ind=iMA(NULL,PERIOD_CURRENT,period,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma_ind==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

输入所需的MODE_EMA 或 MODE_LWMA,而不是 MODE_SMA

 
Artyom Trishkin:

Scriptor 很久没有回复任何人了。但你可以自己修改代码:

输入所需的MODE_EMA 或 MODE_LWMA,而不是MODE_SMA

谢谢。我照你说的做了,但没有变化。