欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请问如何实现以下主买主卖统计?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3353人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
saintlucifer
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
[求助]请问如何实现以下主买主卖统计?  发帖心情 Post By:2019/11/26 9:32:22    Post IP:113.67.158.194[只看该作者]

商品期货框架下,以昨日成交总金额为分母,今日分笔成交下单笔主动买跟主动卖为分子,即A=单笔成交/昨日成交总金额,并从大到小排序,并分别统计排在前面的5%,5%-15%,15%-35%,35%-75%这4个区间的主动买跟主动卖之和是多少?请问如何实现?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/11/26 9:57:22    Post IP:180.169.30.6[只看该作者]

 抱歉这个在PEL上实现不了。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
saintlucifer
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2019/11/26 10:07:17    Post IP:113.67.158.194[只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/11/26 10:22:12    Post IP:180.169.30.6[只看该作者]

如果只看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) 之间
.
.
.
后面的照着上面写下就行了。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
saintlucifer
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2019/11/26 10:36:07    Post IP:113.67.158.194[只看该作者]

但这里怎么体现A是每一份单笔成交的数值呢?用在分笔周期上面吗?然后怎么区分主动买和主动卖?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/11/26 10:44:39    Post IP:180.169.30.6[只看该作者]

 对的,要单独体现每一笔的话,就得用在分笔上了。
如果你还要区分主买和主卖,需要在分笔上用BUYVOL和
SELLVOL 函数进行判断才行。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
saintlucifer
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2019/11/26 13:30:15    Post IP:113.67.158.194[只看该作者]

追加提问:

我现在弄好了一个如下的程序,在分笔周期可以运行,但我想在其他周期引用它的结果,例如在分钟周期最新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;


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/11/26 14:07:29    Post IP:180.169.30.6[只看该作者]

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



命数如织,当如磐石。
 回到顶部