
本组函数用于设计和编撰自定义指标。
这些函数不能用在智能交易和脚本中。
- IndicatorBuffers() – 指标报告缓冲区
- IndicatorCounted() – 指标计数
- IndicatorDigits() – 设置指标精度
- IndicatorShortName() – 设置指标简称
- SetIndexArrow() – 设置指标箭头符号
- SetIndexBuffer() – 设置指标缓冲区位置
- SetIndexDrawBegin() – 设置指标线起始位置
- SetIndexEmptyValue() – 设置图表画线空值
- SetIndexLabel() – 设置指标线标签
- SetIndexShift() – 设置指标线偏移值
- SetIndexStyle() – 设置指标线样式
- SetLevelStyle() – 设置水平线样式
- SetLevelValue() – 设置水平线值
void SetIndexDrawBegin(int index, int begin)
设置开始绘制指标线的柱体(指标线从什么位置开始绘制)。指标线从左边绘制到右边,已给出的柱子左边的数组值不会表明在图表或报告窗口中。设置0作为默认值,所有报告将被绘出。
参数:
index - 指标线。务必在0到7之间。 begin - 开始绘制指标线的柱体编号。
示例:
int init() {//----运用2个更多的缓冲区用于计算。 IndicatorBuffers(3);//----画线设置 SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);SetIndexDrawBegin(0,SignalSMA);IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);//---- 设置 3 个指标缓冲区位置 SetIndexBuffer(0,ind_buffer1);SetIndexBuffer(1,ind_buffer2);SetIndexBuffer(2,ind_buffer3);//---- Data万得ow 和自定义子窗口标签名称 IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");//---- 初始化完成 return(0);}
void SetIndexEmptyValue(int index, double value)
设置图表画线空值。设置的值不绘出或不表明在报告窗口。默认值为 EMPTY VALUE。
参数:
index - 指标线。务必在0到7之间。 value - 设置的"空值"。
示例:
int init() {//----设置 2 个指标缓冲区位置 SetIndexBuffer(0,ExtUppperBuffer);SetIndexBuffer(1,ExtLowerBuffer);//---- 画出参数设置 SetIndexStyle(0,DRAW_ARROW);SetIndexArrow(0,217);SetIndexStyle(1,DRAW_ARROW);SetIndexArrow(1,218);//---- 值为 0 不表明 SetIndexEmptyValue(0,0.0);SetIndexEmptyValue(1,0.0);//---- SetIndexLabel(0,"Fractal Up");SetIndexLabel(1,"Fractal Down");//---- 初始化完成 return(0);}
void SetIndexLabel(int index, string text)
设置在报告窗口和迅速提示中表明的指标线表明。
参数:
index - 指标线。务必在0到7之间。 text - 标签文本。NULL表明指标值在报告窗口中不表明。
示例:
//+------------------------------------------------------------------+//| Ichimoku Kinko Hyo initialization function |//+------------------------------------------------------------------+int init() {//---- SetIndexStyle(0,DRAW_LINE);SetIndexBuffer(0,Tenkan_Buffer);SetIndexDrawBegin(0,Tenkan-1);SetIndexLabel(0,"Tenkan Sen");//---- SetIndexStyle(1,DRAW_LINE);SetIndexBuffer(1,Kijun_Buffer);SetIndexDrawBegin(1,Kijun-1);SetIndexLabel(1,"Kijun Sen");//---- a_begin=Kijun; if(a_beginSetIndexBuffer(2,SpanA_Buffer);SetIndexDrawBegin(2,Kijun+a_begin-1);SetIndexShift(2,Kijun);//---- 在Data万得ow窗口 Up Kumo 线不表明 SetIndexLabel(2,NULL);SetIndexStyle(5,DRAW_LINE,STYLE_DOT);SetIndexBuffer(5,SpanA2_Buffer);SetIndexDrawBegin(5,Kijun+a_begin-1);SetIndexShift(5,Kijun);SetIndexLabel(5,"Senkou Span A");//---- SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);SetIndexBuffer(3,SpanB_Buffer);SetIndexDrawBegin(3,Kijun+Senkou-1);SetIndexShift(3,Kijun);//---- 在Data万得ow窗口上 Down Kumo 线不表明 SetIndexLabel(3,NULL);//---- SetIndexStyle(6,DRAW_LINE,STYLE_DOT);SetIndexBuffer(6,SpanB2_Buffer);SetIndexDrawBegin(6,Kijun+Senkou-1);SetIndexShift(6,Kijun);SetIndexLabel(6,"Senkou Span B");//---- SetIndexStyle(4,DRAW_LINE);SetIndexBuffer(4,Chinkou_Buffer);SetIndexShift(4,-Kijun);SetIndexLabel(4,"Chinkou Span");//---- return(0);}
void SetIndexShift(int index, int shift)
设置在报告窗口和迅速提示中表明的指标线表明。
参数:
index - 指标线。务必在0到7之间。 shift - 柱体(K线)偏移值。
示例:
//+------------------------------------------------------------------+//| Alligator initialization function |//+------------------------------------------------------------------+int init() {//----当画线时指标线的偏移 SetIndexShift(0,JawsShift);SetIndexShift(1,TeethShift);SetIndexShift(2,LipsShift);//---- 当画线时指标线跳过的位置 SetIndexDrawBegin(0,JawsShift+JawsPeriod);SetIndexDrawBegin(1,TeethShift+TeethPeriod);SetIndexDrawBegin(2,LipsShift+LipsPeriod);//---- 设置 3 个指标缓冲区位置 SetIndexBuffer(0,ExtBlueBuffer);SetIndexBuffer(1,ExtRedBuffer);SetIndexBuffer(2,ExtLimeBuffer);//---- 画出设置 SetIndexStyle(0,DRAW_LINE);SetIndexStyle(1,DRAW_LINE);SetIndexStyle(2,DRAW_LINE);//---- 指标线标签文本 SetIndexLabel(0,"Gator Jaws");SetIndexLabel(1,"Gator Teeth");SetIndexLabel(2,"Gator Lips");//---- 初始化完成 return(0);}
void SetIndexStyle(int index, int type, void style, void width, void clr)
为指定的指标线设置新类型、样式、宽度和颜色。
参数:
index - 指标线。务必在0到7之间。 type - 形状样式,可以是 划线形状样式列表 中任意一个。 style - 线型。可以应用一个像素的粗线,可以是 划线形状样式列表 其中一个。EMPTY值表明线型不变。width - 线宽。有效值是1,2,3,4,5。EMPTY值表明线宽不变。clr - 线的颜色。省略本参数表明颜色将维持不变
示例:
SetIndexStyle(3, DRAW_LINE, EMPTY, 2, Red);
void SetLevelStyle(int draw_style, int line_width, void clr)
本函数设置输出到独立窗口的指标水平线的样式、宽度和颜色。
参数:
draw_style - 形状样式,可以是 划线形状样式列表 中任意一个。 line_width - 线宽。有效值是1,2,3,4,5。EMPTY值表明线宽不变。clr - 线的颜色。空值CLR_NONE表明颜色不变。
示例:
//---- 红色单线表明水平 SetLevelStyle(STYLE_SOLID,2,Red)
void SetLevelValue(int level, double value)
本函数设置在独立窗口输出的水准指标线的值。
参数:
level - 水平线编号,0到31。 value - 给出的水准线值。clr - 线的颜色。空值CLR_NONE表明颜色不变。
示例:
SetLevelValue(1,3.14);