以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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,可以大大超过了????
|