Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教成交量累计达到一定数值画线问题

1楼
plmokn 发表于:2019/9/10 19:56:02
在一分钟K线图中,每天从开盘开始计算成交手数,在当成交手数达到大于20000手时,取当根K线之前20000手的加权平均价 画横线,
并从下一根K线开始从0开始重新计算成交手数,当成交手数再一次达到大于20000手时,取当根K线之前20000手的加权平均价 画横线,
以后以此类推,直到收盘,下一交易日重新开始计算。   
2楼
FireScript 发表于:2019/9/11 9:32:29
 “在当成交手数达到大于20000手时,取当根K线之前20000手的加权平均价 画横线” 这个是指在成交量达到20000 K 位置统计上次成交量20000位置到现在 这段时间收盘价的加权平均价?
3楼
plmokn 发表于:2019/9/11 14:03:29

是的

4楼
plmokn 发表于:2019/9/11 14:03:54
是的
5楼
FireScript 发表于:2019/9/11 14:28:13
 按照成交量作为权重?
6楼
plmokn 发表于:2019/9/11 15:01:55
是的
7楼
FireScript 发表于:2019/9/11 17:12:46
 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编辑过]
8楼
plmokn 发表于:2019/9/14 13:00:57

谢谢FireScript老师

共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.02344 s, 3 queries.