以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  金老师,请教代码:  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=143912)

--  作者:tmxker
--  发布时间:2016/12/2 15:39:27
--  金老师,请教代码:

 

后台程序日内交易中,需要统计账户当前品种的日内累计开仓量(多头+空头),请帮助给出代码,谢谢。


--  作者:jinzhe
--  发布时间:2016/12/2 15:57:44
--  

if 持仓判断 and 开多条件 then begin

    extgbdataset(\'kd\',开多手数+extgbdata(\'kd\'));

   tbuy(1,开多手数,mkt);

end

 

if 持仓判断 and 开空条件 then begin

    extgbdataset(\'kk\',开空手数+extgbdata(\'kk\'));

   tbuyshort(1,开空手数,mkt);

end

if time=closetime(0) then begin

    extgbdataset(\'kk\',0);

    extgbdataset(\'kd\',0);

end

 

extgbdata(\'kd\')为一天的开多总量

extgbdata(\'kk\')为一天的开空总量


--  作者:tmxker
--  发布时间:2016/12/2 16:21:11
--  

谢谢,下周我试试。


--  作者:tmxker
--  发布时间:2016/12/6 8:52:49
--  

金老师,我昨天把你‘2楼’给出的代码,加到模型中,并在末尾加了msgout输出,测试结果没有开仓数量输出显示,麻烦你看看,问题出在哪里?请指正。谢谢!


KD:=extgbdataset(\'KD\',zss+extgbdata(\'KD\'));
KK:=extgbdataset(\'KK\',zss+extgbdata(\'KK\'));
//
msgout(islastbar,\'开多仓数量=\'+numtostr(KD,0));
msgout(islastbar,\'开空仓数量=\'+numtostr(KK,0));


--  作者:jinzhe
--  发布时间:2016/12/6 8:54:11
--  
msgout(islastbar,\'开多仓数量=\'+numtostr(extgbdata(\'KD\'),0));
msgout(islastbar,\'开空仓数量=\'+numtostr(extgbdata(\'KK\'),0));

--  作者:tmxker
--  发布时间:2016/12/6 9:21:53
--  

2016/12/06 09:16:13  开多仓数量=32033
2016/12/06 09:16:13  开空仓数量=32036

 

金老师,输出的数据量太大!1分钟周期的日内交易,最多开仓量也就是几十手啊?


--  作者:jinzhe
--  发布时间:2016/12/6 9:28:44
--  

你的持仓判断是怎么写的?

你先去工具 数据 全局变量这里,清空下全局变量,这个是会叠加昨天的数据


--  作者:tmxker
--  发布时间:2016/12/6 9:57:39
--  
金老师,清空‘全局变量’里的KD/KK数据,显示的开仓数量就正常了。由于我仅需要在日内交易需要计数,那么,是否有方法,在每个日交易日开始,启动软件模型自动初始化“全局变量”里的KD/KK数据为‘0‘’呢?谢谢。
--  作者:jinzhe
--  发布时间:2016/12/6 10:08:31
--  

if time=closetime(0) then begin

    extgbdataset(\'kk\',0);

    extgbdataset(\'kd\',0);

end

 

这段代码是我之前就写的,目的是在收盘时清空全局变量,不知道你在收盘时有没有运行