以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  模拟当日成交量  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74684)

--  作者:wzsunshao
--  发布时间:2015/1/20 8:48:48
--  模拟当日成交量
金字塔有没有根据当日分时成交量,模拟计算出当日成交量的函数,或者如何通过编写公式达到上述目的,当然模拟毕竟是模拟,希望尽可能的接近真实。
--  作者:jinzhe
--  发布时间:2015/1/20 9:09:41
--  
那么模拟算法是什么?
--  作者:wzsunshao
--  发布时间:2015/1/20 9:16:29
--  
我只是个想法,希望能有好的方法实现目的。


--  作者:jinzhe
--  发布时间:2015/1/20 9:25:07
--  
没有算法思路提供,那我们也无能为力
--  作者:wzsunshao
--  发布时间:2015/1/20 10:55:33
--  

1、把日内交易时间平均分成Nn1,n2,n3,n3,n4,n5-----)个时间段;

2、取前Mn1时间段的成交量均值K,如在n2时间段,则取n+n2段成交量均值,以此类推累加;

3、取当日成交额VK,得到量比L;

4、模拟日成交量=M日成交量均值*L;




--  作者:jinzhe
--  发布时间:2015/1/20 11:13:58
--  

2、取前M日n1时间段的成交量均值K,如在n2时间段,则取n+n2段成交量均值,以此类推累加;

 

 

这段举例说明一下


--  作者:wzsunshao
--  发布时间:2015/1/20 14:56:15
--  

2、取前M日n1时间段的成交量均值K,如在n2时间段,则取n+n2段成交量均值,以此类推累加;


假设以10分钟K线为间隔,n1时段为9.15-9.25,n1时段成交量即为9.25的成交量,

取前3日n1时段成交量均值即为:ref(ma(9:25的成交量,3),1)。

取前3日n4时段成交量均值即为:ref(ma(9:55的成交量,3),1);


如在时段中,如9.40取值时,不取即时数据,取K线结束时数据,取前几日9.45的成交量计算,






--  作者:fly
--  发布时间:2015/1/20 15:25:10
--  

你的模拟成交量,难道只模拟最后一天的

 

 


--  作者:wzsunshao
--  发布时间:2015/1/20 16:06:53
--  
当然只需要模拟计算得到最后一天的成交量,已完成的交易日已经有真实成交量了,就是希望当日交易时间还没结束时,模拟得到当日交易结束时的成交量,模拟成交量虽然不可能很准确,但是希望逐步逼近,越接近交易结束时间越接近真实值。
--  作者:wzsunshao
--  发布时间:2015/1/20 16:20:30
--  
下面这个也是计算模拟成交量的,但是思路是当日成交量乘以已交易时间,结果早盘阶段差距太大
avol:vol,volstick;
mavol5:=ema(avol,5);
mavol15:=ema(avol,15);
mavol30:=ema(avol,30);
时间:=CURRENTTIME/10000;
a1:=if(时间>=9.3000 and 时间<=9.5959,1,0);
a2:=if(时间>=10.0000 and 时间<=10.2959,1,0);
a3:=if(时间>=10.3000 and 时间<=10.5959,1,0);
a4:=if(时间>=11.0000 and 时间<=11.3000,1,0);
上午休息:=if((时间>11.3000 and 时间<13.0000),1,0);
aa:=if(时间>=13.0000 and 时间<=15.0000,1,0);
下午:=if(aa=1,INTPART(时间)-13,0);
下午休息:=if((时间>15.0000 and 时间<24.0000),1,0);
时:=if(a1=1,0,
   if(a2=1,1800,
   if(a3=1,3600,
   if(a4=1,5400,
   if(aa=1,下午*3600+7200,
   if(上午休息=1,7200,
   if(下午休息=1,14400,0)))))));
aaa:=INTPART(FRACPART(时间)*100);
分:=if(a1=1,(aaa-30)*60,
    if(a2=1,aaa*60,
    if(a3=1,(aaa-30)*60,
    if(a4=1,aaa*60,
    if(aa=1,aaa*60,
    if(上午休息=1,0,
    if(下午休息=1,0,0)))))));
秒:=if((时间>=9.3000 and 时间<=11.3000) or (时间>=13.0000 and 时间<=15.0000),
FRACPART(FRACPART(时间)*100)*100,0);
现在用时:=时+分+秒;
模拟量:if(vol=DYNAINFO(8),14400/现在用时*avol,0),COLORSTICK;