您的当前位置: 首页 > 外汇学院 > 外汇教程

Sidus v.2指标源码[MT4公式]

时间:2025-11-11 11:12:53

源码:

//#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;

num++;

WindowRedraw( ) ;

return(0);

}

描述:

tick数据指标,没错,是tick数据指标。tick数据是超级短线交易员必须的数据。

可惜,MT自身提供的tick数据和市场报价表窗口一样大小,在下单平仓改仓窗口的tick图大小固定,显示的数据很有限,仅能勉强满足观察当前很短时间的tick数据。

本指标实际记录tick数据(BID或ASK价),象指标一样显示在主窗口或辅窗口。可设置记录数据点数。

唯一要注意的是, MT不允许控制X轴坐标和Y轴坐标范围,所以我们没法改变X轴。

tick数据,是价格变动的记录,X轴坐标,常规图上的一个bar对应一次数据变动。

另外,MT不是总是优先处理图示窗口刷新,也不是一有价格变化就更新的(虽然更新了那根价格横线)。所以,tick数据有时会有一个点的丢失,本指标通过复制上次数据来填充数据漏洞。

图像:

Sidus v.2指标源码[MT4公式](图1)

参数:TBars, 设置记录绘制多少个tick价格

有了这个指标,可以很容易的使用tick数据而不是HLOC数据来计算其它任何指标,如用 iMAOnArray(.....)来得到tick数据的MA。

注意:新加入本指标或在指标列表中修改参数,MT将会重新初始化指标,MT没提供tick数据数组记录,当然,本指标显示的tick是从初始化时刻开始收集获得的,初始化时历史数据缺省使用当前时间周期的close数据填充。所以从指标初始化开始,需要一段时间收集tick数据才有足够数据可观察显示。

Copyright © 2012-2026 兴业外汇 版权所有网站地图