以文本方式查看主题

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

--  作者:厚德载物
--  发布时间:2013/10/23 10:18:45
--  后台函数TBUYHOLDING(1)有问题?

我使用了这样一个语句,TBUY(1,DEALNUM-TBUYHOLDING(1),MKT),ORDERQUEUE;

 

本来已经开仓了2,结果TBUYHOLDING(1)=0,导致连续开仓。

 

检查检查这个函数???


--  作者:jinzhe
--  发布时间:2013/10/23 10:28:49
--  

成交了没?

 


--  作者:厚德载物
--  发布时间:2013/10/23 10:44:16
--  

最后成交了10手,可以我限制2手的?这几个函数THOLDING,TSELLHOLDING,TBUYHOLDING,有问题?


图片点击可在新窗口打开查看此主题相关图片如下:1232.gif
图片点击可在新窗口打开查看

--  作者:厚德载物
--  发布时间:2013/10/23 10:48:52
--  

IF THOLDING=0  THEN
 BEGIN
   TBUY(1,DEALNUM-TBUYHOLDING(1),MKT),ORDERQUEUE;
   DEBUGFILE(\'\\BT50BACK.TXT\',\'--多单仓位:%2.f\',TBUYHOLDING(1));
   DEBUGFILE(\'\\BT50BACK.TXT\',\'----空单仓位:%.2f\',TSELLHOLDING(1));
 END;

 

这样的语句 THOLDING不应该等于零,结果等于零了。输出文件TBUYHOLDING(1),应该等于10,结果全部是零。说明这三个函数,全部失效?


--  作者:jinzhe
--  发布时间:2013/10/23 10:48:58
--  

下单条件是怎么写的?

 


--  作者:厚德载物
--  发布时间:2013/10/23 11:21:11
--  

下单条件,在这个循环之外。与下单条件没有关系?


--  作者:jinzhe
--  发布时间:2013/10/23 11:29:53
--  

你tholding=0才会输出你的debug,你都有10个持仓了,还会输出debug吗?

也就是

if tholding=0 then  begin

debug(持仓);

end

输出的持仓如果不是多空完全对冲掉,那么肯定输出的是0

 

你得把debug语句放到整个下单语句的外面


--  作者:厚德载物
--  发布时间:2013/10/23 12:08:30
--  

你看看我输出的是什么?不是THOLDING,而是TBUYHOLDING(1)????

我的技术,你看清楚了??????


--  作者:jinzhe
--  发布时间:2013/10/23 13:13:22
--  LastJiesuan在基金品种里表示什么?

输出的条件是tholding=0,也就是说是tholding=0时才输出debug

tholding不等于0时,不输出debug

条件满足了输出,tholding=0满足之后输出,那么会输出的值就是持仓在为0的状态下输出

条件不满足,也就是tholding不等于0了,那么就不会输出数值

 

有了10手持仓,这个时候thodling已经不是0了,所以tholding=0这个判断不成立,后面对应的debug将不会触发

 

所以解决办法是把debug放在if判断外面输出

 

 

改成下面的代码,就不需要先进行tholding 的判断,再执行debug了

IF THOLDING=0  THEN
 BEGIN
   TBUY(1,DEALNUM-TBUYHOLDING(1),MKT),ORDERQUEUE;
 END

 

   DEBUGFILE(\'\\BT50BACK.TXT\',\'--多单仓位:%2.f\',TBUYHOLDING(1));
   DEBUGFILE(\'\\BT50BACK.TXT\',\'----空单仓位:%.2f\',TSELLHOLDING(1));

 

 


--  作者:厚德载物
--  发布时间:2013/10/23 13:23:17
--  

问题的关键,TBUY(1,DEALNUM-TBUYHOLDING(1),MKT),ORDERQUEUE;
被反复执行了。

 

如果TBUYHOLDING(1)不等于零,最大不会开仓超过DEALNUM,可以大大超过了????