开拓者期货期权程序化系统交易论坛

标题: V4版收盘平仓函数不能SetExitOnClose应该用什么表示 [打印本页]

作者: 道勤    时间: 2011-5-16 13:31:19     标题: V4版收盘平仓函数不能SetExitOnClose应该用什么表示

V4版收盘平仓函数不能SetExitOnClose应该用什么表示?  谢谢 用作历史测试。
作者: lh948    时间: 2011-5-16 14:06:37

收盘平仓分为两部分,一部分负责处理历史测试,一部分负责处理实时交易。在测试时我们可以以每天的收盘价平仓,在实时交易时我们选择14:59分平仓。
  1. Begin
  2.     ...   
  3.     If(Date[-1]!=InvalidInteger && Date!=Date[-1])
  4.     {
  5.         Sell(0,Close);
  6.         BuyToCover(0,Close);
  7.     }Else If(Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459)
  8.     {
  9.         Sell(0,Open);
  10.         BuyToCover(0,Open);
  11.     }
  12.     ...
  13. End  
复制代码

作者: kings425    时间: 2011-5-25 13:56:01

如果是日线做测试,没有SetexitOnClose,怎么替换代码啊?  CurrentTime好像不能判断日线级别
作者: twt_bj    时间: 2011-6-10 16:17:17

谢谢了!呵呵!
作者: hy12345    时间: 2011-10-2 16:33:43

Date[-1]!=InvalidInteger && Date!=Date[-1]这个不是开盘第一根bar了吗?Date[-1]!=InvalidInteger代表啥意思啊
作者: lh948    时间: 2011-10-3 17:06:57

回复 5# hy12345

Date[-1]!=InvalidInteger
当前bar的后一个bar的date值不为无效值
作者: 蔡宛宏    时间: 2011-12-17 09:53:38

谢谢管理员分享
作者: speed_fj    时间: 2011-12-18 22:38:01

请问
Begin
    ...   
    If(Date[-1]!=InvalidInteger && Date!=Date[-1])
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }Else If(Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459)
    {
        Sell(0,Open);
        BuyToCover(0,Open);
    }
    ...
End  
这样写的话 14:59只平一次单吗?

假如目前白糖有10手 但是这个系统只有5手多单

到了14:59分 只会平掉一次5手的多单 不会连发单把10手全部平掉的吧




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2