Sidus v.2指标源码及使用说明MT4公式
源码:
//#property indicator_chart_window
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_color2 Aqua
#property indicator_color3 CornflowerBlue
#property indicator_color4 Gold
#property indicator_color5 SkyBlue
//---- input parameters
extern int Tbars = 1000; //只记录最近1000点
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function tick |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
double nows=0;
int num=0,i=0;
int start()
{
int Ncounted_bars = Bars-IndicatorCounted();
if (Ncounted_bars == Bars) //首次,复制close数据 并且有时多数据变化,MT仅调用指标一次
{
num = Ncounted_bars;
for (int i=num;i0;i--)
ExtMapBuffer1[i]= Close[i-1]; //以队列方式记录ticks 价格
return(0);
}
nows = MarketInfo(Symbol(),MODE_BID);//MarketInfo(Symbol(),MODE_ASK);//+MarketInfo(Symbol(),MODE_BID))/2.0;
SetLevelValue(0, nows) ;
if (Ncounted_bars1) //有时多数据变化,MT仅调用指标一次,需填充空白 由于MT的数据更新方式
{
for ( i=Ncounted_bars;i0;i--)
ExtMapBuffer1[i-1]= ExtMapBuffer1[i]; //以队列方式记录ticks 价格
}
if (num0)
{
if (nows == ExtMapBuffer1[0]) return (0);//只记录有变化的数据
if (numTbars)num = Tbars;
for ( i=num;i0;i--)
{
ExtMapBuffer1[i]= ExtMapBuffer1[i-1]; //以队列方式记录ticks 价格
}
}
ExtMapBuffer1[0] = nows;
numCWG官网++;
WindowRedraw( ) ;
return(0);
}
描述:
这是一个tick数据指标,没错,它专门处理tick数据。对于超级短线交易者来说,tick数据是必不可少的信息。
可惜,MT自身展示的tick数据与市场报价表窗口大小一致,在下单、平仓或改仓窗口中,tick图尺寸固定,能显示的数据非常有限,通常只能观察到当前极短时间内的tick变化。
本指标能够实时记录tick数据(BID或ASK价格),并像普通指标一样显示在主图或副图中。同时,你可以根据需要设置记录的tick数据点数。
唯一需要注意的是,MT并不允许用户控制X轴和Y轴的坐标范围,因此我们无法调整X轴的显示区间。
tick数据本质上是价格变动的记录,在X轴上,常规图表中的一个bar对应一次价格变动。
另外,MT并非总是优先刷新图表窗口,也不是每次价格变化都会实时更新(尽管价格横线会更新)。因此,tick数据有时会出现一个点位的缺失,本指标通过复制上一次的数据来填补这些空缺,确保数据连贯。
图像:
![Sidus v.2指标源码[MT4公式]](https://www.waihuibang.com/d/file/p/2018/08-18/14be1b40b6a13b4b618250f7206c7add.jpg)
参数:TBars, 设置记录绘制多少个tick价格
有了这个指标,你可以轻松地基于tick数据而不是HLOC数据来计算其他任何指标,例如使用iMAOnArray(.....)来获取tick数据的移动平均线。
注意:当您新添加此指标或在指标列表中修改参数时,MT会重新初始化指标。MT并未提供tick数据数组的记录,因此本指标显示的tick数据是从初始化时刻开始收集的。初始化时,历史数据默认使用当前时间周期的收盘价填充。因此,从指标初始化开始,需要等待一段时间来收集足够的tick数据,才能观察到完整显示。
