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

标题: 历史测试平仓标示错 [打印本页]

作者: maodong    时间: 2008-2-27 23:19:20     标题: 历史测试平仓标示错

历史测试,最后用close平仓,调试出平仓价格没有错。只是图画到天上了。
作者: nopain    时间: 2008-2-28 09:05:59

因为最后一个Bar您的交易价格是12590左右。这是正常的。您用了一个很极端的价格想要保证买入平仓即时成交。
作者: maodong    时间: 2008-2-28 10:09:09

没有使用极端价格,你指的是停板价吗?
我用的收盘价,价格就是12372,测试品种:豆油0805 1分钟 2008-02-21,22,好几天都这样。
其他品种还没发现这个现象。
作者: maodong    时间: 2008-2-28 10:20:40

还有,如果计算出的下单价格不在最高最低之间,不是自动用收盘价替代吗?
作者: nopain    时间: 2008-2-28 10:21:35

您的程序是否用了BarStatus==2进行分支处理?
最后Bar发单的价格是怎么写的?
作者: maodong    时间: 2008-2-28 10:40:44

原帖由 nopain 于 2008-2-28 10:21 发表
您的程序是否用了BarStatus==2进行分支处理?
最后Bar发单的价格是怎么写的?

没有用BarStatus==2进行分支处理。
  1. If (Time > 0.145830 And Time < 0.150030)                                     //空头或最后一个Bar平仓操作
  2. {
  3.   If (MarketPosition() == -1)          //有空单,应该全部平空仓。
  4.   {
  5.    myExitPrice = Close();
  6.    ContractCount = CurrentContracts();                                     //获取当前的合约手数
  7.    AvgCost = AvgEntryPrice();                                              //获得平均成本
  8.    CurrentProfit = PositionProfit();                                       //当前持仓位置的浮动盈亏
  9.    If (BuyToCover(ExitSize, myExitPrice))
  10.    {
  11.     SetGlobalVar(IS_IN_WAVE, NO);                                       //波段结束。
  12.     SetGlobalVar(TRADE_COUNT, GetGlobalVar(TRADE_COUNT) + 1);         //交易次数加1。
  13.     //调试信息
  14.     Commentary("-----空头离场-----");
  15.     Commentary("空头离场平仓价 : " + Text(myExitPrice));
  16.     Commentary("总共第 " + Text(GetGlobalVar(TRADE_COUNT)) + " 回合交易");
  17.     Commentary("当前盈亏 : " + Text(CurrentProfit / 10000) + "万元");
  18.    }
  19.   }
  20. }
复制代码

作者: nopain    时间: 2008-2-28 11:02:19

您看看注释中平仓的价位是多少?
作者: maodong    时间: 2008-2-28 11:06:00

就是收盘价。....
作者: maodong    时间: 2008-3-3 21:06:09

在交易记录中,平仓价格不是收盘价,就是图中表明的价格。
这个问题有进展吗?这个问题时不时出现,使测试结果产生重大偏差。




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