“
在当成交手数达到大于20000手时,取当根K线之前20000手的加权平均价 画横线” 这个是指在成交量达到20000 K 位置统计上次成交量20000位置到现在 这段时间收盘价的加权平均价?
VARIABLE:ct:=0,mark:=0,res:=0;//ct累加成交量,mark标识成交量达到20000时候的位置
if TODAYBAR=1 or BARPOS=1 then ct:=0;//初始K或者当日第一个K 重置ct的值
ct:=ct+vol;
if ct<20000 then //不在满足条件的位置,mark都重置成0 方便进行区分
begin
mark:=0;
end
if ct>20000 or time=CLOSETIME(0) then //满足20000量的情况下 或者是收盘K了 重置ct ,并设置mark为1
begin
ct:=0;
mark:=1;
end
len:BARSLAST(mark=1 or (not(mark) and BARPOS=1));//获取跨度位置,上次满足20000量位置或者第一个K的位置
p1:=vol*c;
len0:=ref(len,1)+2;//获取需要统计的K线周期跨度
result:if(len=0,sum(p1,len0)/(sum(vol,len0)),0),NODRAW;//计算出来的加权价格,
if result<>0 then res:=result;
k:res;//输出的线条
1.由于没有符合需求直接算加权的函数,上面代码逻辑上有点绕,我尽量注释了。另外这里的逻辑无法直接使用绘制图形,绘图函数有一定限制。
2.只在满足20000量或者收盘K上的位置计算一次。画线以变量指标的输出线作为替代(变量K)。
仅供参考。
[此贴子已经被作者于2019/9/11 17:13:34编辑过]