Rss & SiteMap

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

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

标题:[求助]请问如何实现以下主买主卖统计?

1楼
saintlucifer 发表于:2019/11/26 9:32:22
商品期货框架下,以昨日成交总金额为分母,今日分笔成交下单笔主动买跟主动卖为分子,即A=单笔成交/昨日成交总金额,并从大到小排序,并分别统计排在前面的5%,5%-15%,15%-35%,35%-75%这4个区间的主动买跟主动卖之和是多少?请问如何实现?
2楼
FireScript 发表于:2019/11/26 9:57:22
 抱歉这个在PEL上实现不了。
3楼
saintlucifer 发表于:2019/11/26 10:07:17

那如果我不排序,而是只要A>1%的分笔主买主卖之和,然后还有1%>A>0.5%,0.5%>A>0.25%,0.25%>A>0.125%这几个区间的主买主卖之和呢?

4楼
FireScript 发表于:2019/11/26 10:22:12
如果只看A的值,不进行统计是可以的。1楼那个难点在于 “别统计排在前面的5%,5%-15%,15%-35%,35%-75%这4个区间的主动买跟主动卖之和是多少? ”  这个统计是做不到的。

如果只根据A值所在区间不同进行统计倒是可以。
de:CALLSTOCK('',vtAMOUNT,6,-1);
a:AMOUNT/de;

sum1:sum(if(a>=0.01,AMOUNT,0),TODAYBAR);//a 在0.01以上
sum2:sum(if(a>=0.005 and a<0.1,AMOUNT,0),TODAYBAR);//a在[0.05,0.1) 之间
.
.
.
后面的照着上面写下就行了。
5楼
saintlucifer 发表于:2019/11/26 10:36:07
但这里怎么体现A是每一份单笔成交的数值呢?用在分笔周期上面吗?然后怎么区分主动买和主动卖?
6楼
FireScript 发表于:2019/11/26 10:44:39
 对的,要单独体现每一笔的话,就得用在分笔上了。
如果你还要区分主买和主卖,需要在分笔上用BUYVOL和
SELLVOL 函数进行判断才行。
7楼
saintlucifer 发表于:2019/11/26 13:30:15

追加提问:

我现在弄好了一个如下的程序,在分笔周期可以运行,但我想在其他周期引用它的结果,例如在分钟周期最新k引用它的最后一个结果,如果是分钟周期昨k则引用昨k里面最后一刻的结果,但我尝试跨周期引用A_H等4个结果时,程序一直卡着,然后报错说运行过长,暂停运行让你关闭之类的,请问怎么解决?

 

D_A := CALLSTOCK('',VTAMOUNT,6,-1);
BUY_AMOUNT := BUYVOL * MULTIPLIER * CLOSE;
SELL_AMOUNT := SELLVOL * MULTIPLIER * CLOSE;
BUY_A := BUY_AMOUNT / D_A;
SELL_A := SELL_AMOUNT / D_A;

 

BUY_H := SUM(IF(BUY_A >=0.01,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a 在0.01以上
BUY_L := SUM(IF(BUY_A >= 0.005 AND BUY_A < 0.01,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.005,0.01) 之间
BUY_M := SUM(IF(BUY_A >= 0.0025 AND BUY_A < 0.005,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.0025,0.005) 之间
BUY_S := SUM(IF(BUY_A >= 0.00125 AND BUY_A < 0.0025,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.00125,0.0025) 之间

 

SELL_H := SUM(IF(SELL_A >=0.01,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a 在0.01以上
SELL_L := SUM(IF(SELL_A >= 0.005 AND SELL_A < 0.01,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.005,0.01) 之间
SELL_M := SUM(IF(SELL_A >= 0.0025 AND SELL_A < 0.005,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.0025,0.005) 之间
SELL_S := SUM(IF(SELL_A >= 0.00125 AND SELL_A < 0.0025,AMOUNT,0),TODAYBAR)/100000000,LINETHICK0;;//a在[0.00125,0.0025) 之间

 

A_H : BUY_H - SELL_H,COLORRED,COLORSTICK;
A_L : BUY_L - SELL_L,,COLORYELLOW;
A_M : BUY_M - SELL_M,COLORGREEN;
A_S : BUY_S - SELL_S,COLORWHITE,LINETHICK0;

8楼
FireScript 发表于:2019/11/26 14:07:29
 因为每一句引用都是单独创建了一个被引用指标的副本,相当于你当前加载了四个图的指标。分笔上本身K线量大,因此会导致资源占用快速增长。你可以考虑这个指标放到自定义数据里面去吧。不用一直刷新,改成定期刷新计算下。然后再调用。

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


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