编程逆袭仔 发表于 2013-11-22 15:25:25

Sidus v.2指标源码

描述:tick数据指标,没错,是tick数据指标。tick数据是超级短线交易员必须的数据。
可惜,MT自身提供的tick数据和市场报价表窗口一样大小,在下单平仓改仓窗口的tick图大小固定,显示的数据很有限,仅能勉强满足观察当前很短时间的tick数据。
本指标实际记录tick数据(BID或ASK价),象指标一样显示在主窗口或辅窗口。可设置记录数据点数。
唯一要注意的是, MT不允许控制X轴坐标和Y轴坐标范围,所以我们没法改变X轴。
tick数据,是价格变动的记录,X轴坐标,常规图上的一个bar对应一次数据变动。
另外,MT不是总是优先处理图示窗口刷新,也不是一有价格变化就更新的(虽然更新了那根价格横线)。所以,tick数据有时会有一个点的丢失,本指标通过复制上次数据来填充数据漏洞。图像:
[*]参数: TBars, 设置记录绘制多少个tick价格
有了这个指标,可以很容易的使用tick数据而不是HLOC数据来计算其它任何指标,如用 iMAOnArray(.....)来得到tick数据的MA.注意:新加入本指标或在指标列表中修改参数,MT将会重新初始化指标,MT没提供tick数据数组记录,当然,本指标显示的tick是从初始化时刻开始收集获得的,初始化时历史数据缺省使用当前时间周期的close数据填充。所以从指标初始化开始,需要一段时间收集tick数据才有足够数据可观察显示。
源码区:
#property copyright "Copyright ?2007, okwh."
#property link "ROBO VO3.30"
//#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 intTbars = 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;i>0;i--)
   ExtMapBuffer1= Close; //以队列方式记录ticks 价格
   return(0);
}
nows = MarketInfo(Symbol(),MODE_BID);//MarketInfo(Symbol(),MODE_ASK);//+MarketInfo(Symbol(),MODE_BID))/2.0;
SetLevelValue(0, nows) ;
if (Ncounted_bars>1) //有时多数据变化,MT仅调用指标一次,需填充空白 由于MT的数据更新方式
   {
    for ( i=Ncounted_bars;i>0;i--)
   ExtMapBuffer1= ExtMapBuffer1; //以队列方式记录ticks 价格
   }
if (num>0)
   {
   if (nows == ExtMapBuffer1) return (0);//只记录有变化的数据
      if (num>Tbars)num = Tbars;
      for ( i=num;i>0;i--)
      {
      ExtMapBuffer1= ExtMapBuffer1; //以队列方式记录ticks 价格
   }
   }
   ExtMapBuffer1 =   nows;
   num++;
   WindowRedraw( ) ;
return(0);
}

lololo448 发表于 2015-1-14 18:21:02

没有使用说明书

taobaosgf 发表于 2015-2-12 02:35:02

支持楼主

德裕金言 发表于 2015-2-12 03:20:48

nice!!!!!!!!!!!!

yoii0 发表于 2015-2-12 05:38:36

EA真的能赚钱么?

一汪静水 发表于 2015-2-13 15:19:09

想学EA,拜师,谁收了我吧

2357186528 发表于 2015-6-16 09:59:09

学习学习啊

zxc521920 发表于 2015-6-20 20:25:07

123

你的笑容 发表于 2020-7-15 10:42:15

学习了,不错

76244854 发表于 2020-8-11 14:37:31

谢谢楼主分享
页: [1] 2 3
查看完整版本: Sidus v.2指标源码