在网上找了很近没找到MT4平台分时图指标,没办法自己写了一个,希望对有这个需求的朋友有用该指标采用5分钟折线图,效果与同花顺、文华财经等软件的分时图非常接近
下面贴两张效果对比图,一张是文化财经赢顺软件的欧元分时图,一张是我编写的这个指标的分时图,源代码也给贴出来了由于外汇市场没有统一的精确的成交量,因此各个行情软件的数据会有差别,不过并不影响总体趋势的判断
//+------------------------------------------------------------------+
//| FenShiTu_I.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//| 指标采用5分钟的折线图,得到的效果和分时图非常接近 |
//| 该指标使用方法:1、把5分钟分钟K线图设置改成折线图 |
//| 2、折线图的颜色改成白色 |
//| 3、设置好背景和网格颜色 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, houxinyu "
#property link "http://www.metaquotes.net/"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow//黄色均线
#property indicator_color2 Red//红色零轴(昨收盘价)
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
int shift;
int i;
int loopbegin;
double VolumeSum;
double AmountSum;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(5);
//---- drawing settings
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
//SetIndexBuffer(2,sum);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
//---- initialization done
return(0);
}
int start()
{
//从每天的0点计算到现在的柱体数量
string time=TimeToString(TimeCurrent(),TIME_DATE);
datetime d=StringToTime(time);
loopbegin=iBarShift(0, 0, d, false);
for(shift = 0; shift <= loopbegin; shift++)
{
AmountSum = 0;
VolumeSum = 0;
for(i = 0; i <= loopbegin-shift ; i++)//shift为0的时候是最左面的主体,累加数量最多为loopbegin根
{
AmountSum+=(iVolume(0, 0, loopbegin-i)*Close[loopbegin-i]);
VolumeSum+=iVolume(0, 0, loopbegin-i);
}
ExtMapBuffer1[shift] = AmountSum/VolumeSum;
ExtMapBuffer2[shift]=iClose(0,PERIOD_D1,1);//零轴采用昨天的收盘价
}
return(0);
}
//+------------------------------------------------------------------+
|