金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 787|回复: 4

统计今日开仓数量

[复制链接]

38

主题

76

帖子

76

积分

Rank: 4

等级: 专业版

注册:
2023-4-11
曾用名:
发表于 2025-2-10 10:31 | 显示全部楼层 |阅读模式
我想统计一下1个后台程序的今日开仓的数量,怎么编写?谢谢
回复

使用道具 举报

2

主题

5087

帖子

5087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-2-10 10:58 | 显示全部楼层
后台里只能用全局变量记录。没有现成的函数。


_str:NUMTOSTR(date,0);//按照日期生成字符串,不区分品种,如果需要区分品种 可以在字符串上再拼接一个品种代码

no:EXTGBDATA(_str);//读值

//这个开仓条件必须是完整的开仓条件,触发了一定能开仓,如果还有部分条件在下单语句的参数中,也必须改写到if条件里
//否则这个统计是会不准确的
if 开仓条件  then
begin
//下单语句
        EXTGBDATASET(_str,no+1);//每次开仓时候 数值累加为1       
end
回复

使用道具 举报

2

主题

5087

帖子

5087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-2-10 11:08 | 显示全部楼层
方式2:利用函数从监控记录中一直向前找,找到不属于今天的信号 就中断。

这个逻辑涉及到循环,要注意如果要自行调整一些逻辑 未必确保不能让代码进入死循环。

num:=0;//开仓次数 包含多空
index:=1;

tdb:=todaybar;
if ISLASTBAR then
begin
while 1 do
begin

x1:=ttypebar(index,1);//前index个开多信号位置
x2:=ttypebar(index,3);//前index个开空信号

if x1=-1 and x2=-1 then break;//没有信号 那么直接退出
if x1+1>tdb and x2+1>tdb then break;//如果2个开仓方向信号位置都在今天k之前位置 也退出

if x1+1<=tdb and x1>=0 then num:=num+1;
if x2+1<=tdb and x2>=0 then num:=num+1;

index:=index+1;
end

end
回复

使用道具 举报

38

主题

76

帖子

76

积分

Rank: 4

等级: 专业版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2025-2-10 13:24 | 显示全部楼层
今日开仓可以定义为;TBUYDING(1)>0 AND TBUYINGD(0)=0,如果我想统计,这个定义一共有几个,是不是就可以得出今日开仓的数量?这个怎么写?谢谢。我之前用的就是这个,把符合条件的加入一个把板块,在统计这个板块的股票数量。但是今天不知道为什么股票池 无法选出,我用测试选出,有时候能选出来,但是程序就崩溃 了,重启后就报哪个OFFICE的ACESS什么的错误。
回复

使用道具 举报

2

主题

5087

帖子

5087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2025-2-10 14:16 | 显示全部楼层
“如果我想统计,这个定义一共有几个,是不是就可以得出今日开仓的数量?” 这是你代码里的条件,你想知道你定义了多少个这样的语句?这只能自己去数了.....代码可没有办法判断自己出现了多少次 代码是不具备这种内省的功能的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-30 14:01 , Processed in 0.133835 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表