以文本方式查看主题

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

--  作者:tyx0063
--  发布时间:2019/12/11 9:52:23
--  开仓数量
请问如何控制开创股票品种数量?即,我用序列、日线、固定60秒、后台交易,在一篮子符合条件的股票里,只购买其中不超过5支票(我实际持仓有2支,还需要购买3支),如何写?
因我这样写:       TBUY(kd  and THOLDCOUNT(\'\')<5,ss,mkt);    但是实际开仓时,自动给我买了5、6支。我不需要再排序了,只需要控制开仓品种数量,如果处理?

--  作者:FireScript
--  发布时间:2019/12/11 10:52:51
--  
 
 用全局变量去控制。这个你之前好像问过吧。 我当时也给的代码里面其实就有用全局变量限制的部分。
单纯用THOLDCOUNT 不行  这个函数我试了 刷新不及时。

x:THOLDCOUNT(\'\');
ct:EXTGBDATA(\'ct\');//用全局变量下单进行计算和限制

if x<>0 and ct=0 then //要先判断下当前持仓的数量情况
begin
ct:=x;
end

DEBUGOUT(\'当前持仓品种数量为:%.2f\',x);
if ct+1<=5  and TBUYHOLDINGEX(\'\',\'\',2)=0 then
begin
TBUY(1,1,mkt);
EXTGBDATASET(\'ct\',ct+1);//全局变量值递增1
end

--  作者:tyx0063
--  发布时间:2019/12/11 11:25:03
--  
用此法,就是每隔一个固定间隔(如60秒)就买一支,再下一个60秒再买一支,直到达到控制数吧?
--  作者:FireScript
--  发布时间:2019/12/11 13:17:57
--  
满足时间间隔且满足买入条件就会买入,总个数不会超过五个。

--  作者:tyx0063
--  发布时间:2019/12/11 14:26:21
--  
能否一次性买到位,即判断还需买3支,就一次性买3支,而不是一个时间间隔买一支
--  作者:FireScript
--  发布时间:2019/12/11 14:49:31
--  
 你肯定是监控多个品种 的对吧,如果同时满足买入条件 会一次性买入的。并非说是一个时间间隔限制你买一个,不是这样的。你如果不限制条件 只看品种数量的话 那么第一个时间间隔就会根据当前缺的数量,直接买满的。你就用我给你的范例代码,监控超过五个品种试下就大概明确了。