Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共21 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:后台函数TBUYHOLDING(1)有问题?

1楼
厚德载物 发表于:2013/10/23 10:18:45

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

 

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

 

检查检查这个函数???

2楼
jinzhe 发表于:2013/10/23 10:28:49

成交了没?

 

3楼
厚德载物 发表于:2013/10/23 10:44:16

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


图片点击可在新窗口打开查看此主题相关图片如下:1232.gif
图片点击可在新窗口打开查看
4楼
厚德载物 发表于: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,结果全部是零。说明这三个函数,全部失效?

5楼
jinzhe 发表于:2013/10/23 10:48:58

下单条件是怎么写的?

 

6楼
厚德载物 发表于:2013/10/23 11:21:11

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

7楼
jinzhe 发表于:2013/10/23 11:29:53

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

也就是

if tholding=0 then  begin

debug(持仓);

end

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

 

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

8楼
厚德载物 发表于:2013/10/23 12:08:30

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

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

9楼
jinzhe 发表于:2013/10/23 13:13:22

输出的条件是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));

 

 

10楼
厚德载物 发表于:2013/10/23 13:23:17

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

 

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

共21 条记录, 每页显示 10 条, 页签: [1] [2][3]


Powered By Dvbbs Version 8.3.0
Processed in 0.04688 s, 3 queries.