以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  金字塔软件问题提交  (http://222.73.7.161/bbs/list.asp?boardid=2)
----  帮我看一下程序,怎么会开多仓2次?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=50591)

--  作者:xiaotianshen
--  发布时间:2013/4/2 23:29:40
--  帮我看一下程序,怎么会开多仓2次?
这是日志记录:显示在13:45和12:00分别开了两次多仓
2013-04-02 13:45:59.171    【图表】触发下单 BUY 品种 IF00
2013-04-02 13:45:59.203    【图表】分品种下单调整后,系数1
2013-04-02 13:45:59.203    【图表】模型下单 1
2013-04-02 13:45:59.203    【图表】下单系数调整后 手数:1
2013-04-02 13:45:59.203    【图表】直接下单
2013-04-02 13:45:59.250    【图表】IF00 运行完毕
2013-04-02 13:45:59.250    【下单】IF04 价0.000000 量1 买卖0 类型1 开平0 账户805756 Formula 1
2013-04-02 13:45:59.578    【回报】805756 : IF04 - 正在申报 1 价格:2489.00 开仓 买入
2013-04-02 13:45:59.718    【回报】805756 : IF04 全部成交 1 价格:2488.2 开 买
2013-04-02 13:46:59.109    【图表】IF00 运行完毕
2013-04-02 13:47:59.125    【图表】IF00 运行完毕
2013-04-02 13:48:59.109    【图表】IF00 运行完毕
2013-04-02 13:49:59.109    【图表】IF00 运行完毕
2013-04-02 13:50:59.109    【图表】IF00 运行完毕
2013-04-02 13:51:59.109    【图表】IF00 运行完毕
2013-04-02 13:52:59.109    【图表】IF00 运行完毕
2013-04-02 13:53:59.109    【图表】IF00 运行完毕
2013-04-02 13:54:59.109    【图表】IF00 运行完毕
2013-04-02 13:55:59.109    【图表】IF00 运行完毕
2013-04-02 13:56:59.109    【图表】IF00 运行完毕
2013-04-02 13:57:59.109    【图表】IF00 运行完毕
2013-04-02 13:58:59.109    【图表】IF00 运行完毕
2013-04-02 13:59:59.125    【图表】IF00 运行完毕
2013-04-02 14:00:59.109    【图表】触发下单 BUY 品种 IF00
2013-04-02 14:00:59.109    【图表】分品种下单调整后,系数1
2013-04-02 14:00:59.109    【图表】模型下单 1
2013-04-02 14:00:59.109    【图表】下单系数调整后 手数:1
2013-04-02 14:00:59.109    【图表】直接下单
2013-04-02 14:00:59.156    【图表】IF00 运行完毕
2013-04-02 14:00:59.156    【下单】IF04 价0.000000 量1 买卖0 类型1 开平0 账户805756 Formula 1
2013-04-02 14:00:59.406    【回报】805756 : IF04 - 正在申报 1 价格:2489.20 开仓 买入
2013-04-02 14:00:59.656    【回报】805756 : IF04 全部成交 1 价格:2488.4 开 买

我的开仓语句只有以下两句:
IF M1M2  and time<151000 THEN BEGIN      
BUY(HOLDING<=0 AND  TIME<151000,1);
END
IF M2M1  and time<151000 THEN BEGIN
BUYSHORT(HOLDING>=0 AND TIME<151000,1);
END

如果holding>0,就不可能再开多单了,怎么会连开两次呢?M1M2是均线上穿下穿的意思,和这应该没关系。

实在想不明白,请教高手解答。


--  作者:jinzhe
--  发布时间:2013/4/3 8:45:10
--  

13:45 的信号消失,然后在14:00重新出现


--  作者:xiaotianshen
--  发布时间:2013/4/3 9:58:39
--  
我的问题还是没有解决。这个和信号已经没关系。这个问题的实质是第一次已经开仓成功了,在第二次开仓之前,金字塔应该已经检测到holding=1,怎么还会再次开仓呢?
--  作者:XO仔
--  发布时间:2013/4/3 10:35:23
--  
我也出现了重复开仓问题··    我是这么写的 也重复开仓了,发现新版本 tholding 这个函数 跟以前不一样,以前是交易指令触发了就开仓,信号会在下一根K线才显示的,但现在用得是信号和指令同时出现了
 IF 开多 AND tholding=0 THEN BEGIN 
  BUY(1,P,LIMITR,O+2*MINDIFF);
    END
 IF 开空 AND tholding=0 THEN BEGIN
  BUYSHORT(1,P,LIMITR,O-2*MINDIFF);
    END

--  作者:xiaotianshen
--  发布时间:2013/4/3 11:10:55
--  
 我怀疑是holding函数出了问题,就是判断持仓量函数出了问题
--  作者:Ivan
--  发布时间:2013/4/3 12:04:08
--  
以下是引用jinzhe在2013-4-3 8:45:10的发言:

13:45 的信号消失,然后在14:00重新出现

即使信号消失后再出现,因为有holding<=0的条件,应该不会再开多单啊?难道图表程式化交易不读取holding吗?我也有此现象,希望尽快解决问题,谢谢!


--  作者:Ivan
--  发布时间:2013/4/3 12:16:07
--  
以下是引用jinzhe在2013-4-3 8:45:10的发言:

13:45 的信号消失,然后在14:00重新出现

我的现象是图表程式化交易记录中显示57秒平多,58秒开空,而模拟账户的交易记录是,58秒是平多,59秒开空,然后在下根k线02秒又开空,怎么两个记录不一样啊?到底是怎么回事呢?固定轮询模式,间隔1秒,选择恢复持仓。

 

if 开空 and 提前4秒 then

begin

sell(holding>0,1,MARKETR),ORDERQUEUE;
buyshort(holding=0,1,MARKETR),ORDERQUEUE;

end


--  作者:klc
--  发布时间:2013/4/3 12:50:17
--  
消失后holding=0图片点击可在新窗口打开查看这就是虚拟持仓,哈哈
--  作者:Ivan
--  发布时间:2013/4/3 13:55:15
--  
以下是引用klc在2013-4-3 12:50:17的发言:
消失后holding=0图片点击可在新窗口打开查看这就是虚拟持仓,哈哈

我那是在下根k线02秒处再发出重复开仓,这时holding=-1了


--  作者:just
--  发布时间:2013/4/3 14:01:35
--  
能否提供相关交易日志以便 工作人员帮您进行分析