以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  tbuy代码运行了但是没有下单  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=148961)

--  作者:xiebooo
--  发布时间:2017/3/11 15:46:24
--  tbuy代码运行了但是没有下单
斑竹好,请看下面的后台程序化代码。我遇到的情况是在“工具--数据管理--全局变量里”看到extgbdataset(\'baitangjizhi\',jizhi);  extgbdataset(\'baitangpingcang\',pingcang);  extgbdataset(\'baitangcontrol\',control);  extgbdataset(\'baitangunit\',unit);这四个全局变量都根据所编写的公式发生了值的改变(即不为0),所以我认为下单的代码应该是被执行了,但是却没有出现预警条件,也没有出现实盘的下单。这种情况在模拟盘和实盘都出现过,有时候可以正常预警和下单,有时候又不行,以至于我难以分析出到底是哪里出了问题。请问可能是什么原因导致的?这里unit:= 仓量 * tasset / (止损幅度 * atr * MULTIPLIER)得出来的值是一个大于1的非整数,类似3.21这样的一个值,是否对这个值做取整处理对tbuy的运行有影响吗?


jizhi:= 0; 
  pingcang:= 0; 
  unit:= 0; 
  control:= 0;

if close > mafilter and close > ma(close, 10) then BEGIN
unit:= 仓量 * tasset / (止损幅度 * atr * MULTIPLIER);
tbuy(1,unit,mkt);
control:= 1;
jizhi:= close;
pingcang:= close + 止损幅度 * atr;

end;
extgbdataset(\'baitangjizhi\',jizhi);
extgbdataset(\'baitangpingcang\',pingcang);
extgbdataset(\'baitangcontrol\',control);
extgbdataset(\'baitangunit\',unit);


--  作者:wenarm
--  发布时间:2017/3/13 8:37:44
--  

有记录交易日志吗?

使用debugfile输出你的条件看下是否成立。

 

你代码中tbuy开仓数量是0手。

 


--  作者:xiebooo
--  发布时间:2017/3/13 9:36:58
--  
为什么会是零手?unit的计算公式得出的结果不是0

如果条件没有成立,extgbdataset是不会赋予全局变量非0的值的。我看到在工具-数据管理-全局变量里,四个全局变量都按照begin-end之内的计算公式发生了赋值,所以认tbuy的语句应该是执行了的,但是没有下单。经常都可以正常下单,但是偶尔又没有下单。