以文本方式查看主题

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

--  作者:与家交流
--  发布时间:2010/8/5 10:05:21
--  为何模拟交易不开仓?

为何模拟交易不开仓?代码如下:

 

CC:=TAVGENTERPRICE;//持仓价位
NB:=N;//多头止损
NS:=N1;//空投止损
K:=tasset*0.1667/(close*multiplier*0.11);//开仓量
KK:=IF(K>1,intpart(K),1);//开仓量最少1手

 

TSELLSHORT(TIME>=145800 and THOLDING<0,THOLDING,LMT,C+20); //交易系统之平空操作
TSELLSHORT(THOLDING<0,THOLDING,STPLMT,CC+NS,C+20);
TBUY(BK and  THOLDING=0,KK,LMT,C+20);//交易系统之开多操作
TSELL(TIME>=145800 and THOLDING>0,THOLDING,LMT,C-20);
TSELL(HOLDING>0,THOLDING,STPLMT,CC-NB,C-20);//交易系统之平多操作
TBUYSHORT(SK and THOLDING=0,KK,LMT,C-20); //交易系统之开空操作


--  作者:与家交流
--  发布时间:2010/8/5 11:27:08
--  
测试交易模型 在图上有信号,就是模拟交易不开仓。
--  作者:admin
--  发布时间:2010/8/5 11:30:04
--  

TBUY(BK and  THOLDING=0,KK,LMT,C+20);//交易系统之开多操作
这句有问题的,因为后台自动交易是取的真实仓位数量,在之前的的平仓语句被执行后,THOLDING不会是马上就是0,所以TBUY的THOLDING=0判断条件不会马上成立,故导致不能开多。后台自动交易与图表还是有比较大的区别的,不能简单的把函数名都加T就可以保证一致,要注意逻辑上的不同和工作原理上的不同

后台自动交易的平仓反手模型,请参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题5

[此贴子已经被作者于2010-8-5 11:31:42编辑过]

--  作者:与家交流
--  发布时间:2010/8/5 13:22:36
--  

可我的系统从未开仓和平仓。THOLDING调用的账户数据应该就是0。所以TBUY的THOLDING=0判断条件不会马上成立,故导致不能开多,这个原因似乎不成立。

 

还有到底该如何修改才能确保开仓。

 

谢谢


--  作者:admin
--  发布时间:2010/8/5 15:18:24
--  有行情指标。求编写自动交易

TBUY(BK,KK,LMT,C+20);//

如果这么改了后还是不能开仓

那你只能通过DEBUGFILE检查BK变量为什么没有成立导致没有开仓信号,或者看看KK是不是变成0了