mt4精讲:mt4 指标的含义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 指标的概念
指标最重要的几个概念:
1、主图显示/窗口
2、索引线(Index)
3、缓冲区(buffer)
4、 K线柱子(bar)--下一篇文章介绍
我们下面详细介绍这些重要的概念:
1、主图显示/窗口
有些指标在主图显示,例如MA均线;有些指标在窗口显示,例如成交量和MACD;这些是通过指标的属性来控制的:
#property indicator_chart_window 主图窗口显示
#property indicator_separate_window 窗口显示
2、索引线(Index)
索引线最终就是反映到指标图上的图形,例如线条、柱状图、符号(箭头等)、无图形等。
而索引线和缓冲区是一一绑定的,缓冲区的最大值为8个,因此索引最多为8个。
索引按照[0, N]的顺序依次排列。
索引对应的概念包括:
风格:通过SetIndexStyle函数来设置,例如SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID);表示将索引0设置为实现的柱状图,例如ExplosionSA指标中的红色柱子;(请参考SetIndexStyle函数来详细了解)
颜色:通过指标属性来设置,例如#property indicator_color1 Red表示将索引1的颜色设置为红色
3、缓冲区(buffer)
每个缓冲区对应的其实就是一个double类型的数组,其被绑定到索引线上,和索引线的风格(Style)同时来决定其外观,举例说明:
风格Style 缓冲区取值的影响
DRAW_HISTOGRAM 数组的值决定了柱子的高低
DRAW_ARROW 数组赋值大于0决定了箭头出现,为空或为0则箭头不出现
下面以Explosion指标来说明
此指标使用了5个Index:
Index0:图中的红色柱子,表示多头能量
Index1:图中的绿色柱子,表示空头能量
Index3:布林张口的爆发力
Index4:条件阀值,用于剔除盘整行情中的伪信号
Index5:交易信号:多单开仓、空单开仓、多单平仓、空单平仓
此指标的简单原理是红色柱子(Index0)穿透黄线(Index3)做多、回落到黄线下方多单平仓;同理绿色柱子(Index2)穿透黄线做空,回落黄线下方空单平仓。
如果黄色线在条件阀值(Index4)下方则不给出信号。
#property copyright "Copyright?2009"
#property link "tianlinyi@"
//----
#property indicator_separate_window //窗口显示
#property indicator_buffers 5 //5个缓冲区
#property indicator_color1 Red //设置索引线颜色
#property indicator_color2 Green
#property indicator_color3 Gold
#property indicator_color4 Aqua
#property indicator_minimum 0.0 //指标窗口底部为0,即Y轴从0开始
//作用:MACD指标窗口中间为0,上下为正负数
#property indicator_width1 2 //设置索引线宽度
#property indicator_width2 2
#property indicator_width3 1
#property indicator_width4 1
//----
设置指标参数代码这里忽略。
//----
double ind_buffer1[]; //对应Trend1,为多方的能量数值
double ind_buffer2[]; //对应Trend2,为空方的能量数值
double ind_buffer3[]; //当前柱子和前一个柱子的布林张口爆发力
double ind_buffer4[]; //条件阀值
double ind_buffer5[]; //交易信号:1-多单;2-空单;3-多单平仓;4-空单平仓
//+------------------------------------------------------------------+
//|
|
//+------------------------------------------------------------------+
int init() //初始化函数,指标加载后仅执行一次
{
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID); //设置索引线的风格
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_NONE);
//----
SetIndexBuffer(0, ind_buffer1); //依次绑定缓冲区数组到索引线上
SetIndexBuffer(1, ind_buffer2);
SetIndexBuffer(2, ind_buffer3);
SetIndexBuffer(3, ind_buffer4);
SetIndexBuffer(4, ind_buffer5);
//----
IndicatorShortName("Explosion-xxxxxx"); //在窗口左上角显示指标名称,最长64个字符,
return(0);
}
//+------------------------------------------------------------------+
//|
|
//+------------------------------------------------------------------+
int start() //汇价每跳动一次就执行一次
{
这里撰写指标代码,通过给缓冲区数据循环赋值,从而达到控制Index显示,来完成设计的指标功能。
}。