Board logo

标题: multicharts 如何DIY日内分时线 [打印本页]

作者: 龙听    时间: 2023-10-30 15:58     标题: multicharts 如何DIY日内分时线

分时线,为当日成交的平均价格,即总成交金额/总成交量。

由于MC上无成交金额字段,因此只能使用逐笔tick累加的方式计算总成交金额。总成交金额 = Σ (每笔成交价格*每笔成交量);总成交量 = Σ (每笔成交量)。

因此分时线需要使用1 Tick周期图表,累积计算当日的总成交金额,除以当日的总成交量即可。

具体代码参考后面的说明。

  1. var: a1(0), cjl(0), avgline(0) ;

  2. condition1 = ( time_s > 145000 and time_s < 152000 ) ;
  3. condition2 = ( time_s > 205900 and time_s < 210100 ) or ( time_s > 085900 and time_s < 090100 ) ;

  4. if condition1[1] and condition2 then begin
  5.         a1 = close*Ticks ;
  6.         cjl = Ticks ;   
  7. end
  8. else begin
  9.         a1 = a1 + close*Ticks;
  10.         cjl = cjl + Ticks;
  11. end ;

  12. if cjl<>0 then avgline = a1/cjl else avgline = close ;  

  13. Plot1(avgline);
复制代码
注释版(不要直接在MC中使用,中文会显示乱码,虽然不影响正常使用):
  1. var: a1(0), cjl(0), avgline(0) ;  //定义3个变量,a1为总成交金额,计算方式为累加每笔的成交金额;cjl为总的成交量,累加计算出的每笔成交量;avgline为计算的实时的分时线价格;

  2. condition1 = ( time_s > 145000 and time_s < 152000 ) ;  // 判断该笔tick的时间是否在收盘的时段范围
  3. condition2 = ( time_s > 205900 and time_s < 210100 ) or ( time_s > 085900 and time_s < 090100 ) ;  // 判断该笔tick的时间是否在开盘的时段范围

  4. if condition1[1] and condition2 then begin  // 如果上一笔tick的时间是在每天收盘时间,且当前的tick是每日的开市时间,那么代表这笔tick即为当日的开盘tick
  5.     a1 = close*Ticks ;   // 在开盘第一笔tick的时候,将a1和cjl重新开始计算
  6.     cjl = Ticks ;   
  7. end
  8. else begin
  9.     a1 = a1 + close*Ticks; // 在第二笔及后续的tick的时候,a1和cjl分别进行累加
  10.     cjl = cjl + Ticks;
  11. end ;

  12. if cjl<>0 then avgline = a1/cjl else avgline = close ;  // 计算a1和cjl的比值,即可得到当日的均价

  13. Plot1(avgline);  // 画线
复制代码





欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2