求助高手:MT5编程创建一个指标MA20均线后,如何继续在编码中设置MA20线在图表显示的颜色和宽度

Daying Cao  

各位大老好!

       MT5编程创建一个指标MA20均线后,如何继续在编码中设置MA20线在图表显示的颜色和宽度!


                   谢谢!

Xiao Hua Feng  

自定义指标。

参考其他自定义指标的写法,通常写在头部。

Daying Cao  
SherrieW #:

自定义指标。

参考其他自定义指标的写法,通常写在头部。

非常感谢高手指点!

Daying Cao  
SherrieW #:

自定义指标。

参考其他自定义指标的写法,通常写在头部。

你好!

       你说的写在头部是指属性设置吗?

#property indicator_color1  clrRed //MA线颜色
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA);
   ResetLastError();
   MA_custom_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // using the close prices
                     );
   Print("MA_handle = ",MA_handle,"  error = ",GetLastError());
//---
   return(INIT_SUCCEEDED);
  }

我想得是让用户自己设置线颜色和线宽或者在我在程序里可以像定义不公开变量那样修改
在EA或者指标里实现它,并且保留一个ex4或ex5文件,我想让iCustom调用是公共指标库的文件,因为调用其他自己写MA指标,MQL5审核仅允许一个文件,无法提交MQL5审核
int h_signal_ma1=iMA(symbol,TF,MA1,0,MODE_SMA,PRICE_CLOSE);
if(!ChartIndicatorAdd(chart_id,0,h_signal_ma1))
{
PrintFormat(symbol+" "+EnumToString(TF)+" Failed to add MA1 indicator on %d chart window. Error code  %d", 

                                          chart_id,GetLastError());
}
这个MA1可能不会在当前图表添加,也可能在一个新打开的货币对图表 chart_id添加MA1,然后设置这个MA1的颜色和线宽

但iCustom不能指定多余的参数吧,只能 指定与iMA参数完全一样的

如果按钮说的写在头部方法
那么,我打开一个新图表后,在执行 if(!ChartIndicatorAdd(chart_id,0, MA_custom_handle)){}

但#property indicator_color1  clrRed 这些属性数据是指运行EA或指标的那个图表的数据,不能用于其他图表, 即使执行 ChartIndicatorAdd(chart_id,0,MA_custom_handle)

MA线也不会有颜色吧