下面是这个策略的回测报告 红字的部分说明回测时有在同一天同时进出场的情况 可是这个策略是使用开盘价进场,日内出场的EOD系统。 2011-1-5开盘时,2011-1-4的仓位还没有出场,所以 2011-1-5开盘时是没有钱的,无法进行交易。 请问如何在回测时过滤掉类似2011-1-5的这种不可能的 交易 Ticker Trade Date Price Ex. date Ex. Price 002118 Long 2011-1-4 32.05 2011-1-5 33.6525 000630 Long 2011-1-5 34.1 2011-1-7 33.2509 002479 Long 2011-1-10 39.47 2011-1-12 38.4872 601299 Long 2011-1-13 7.94 2011-1-14 8.337 600069 Long 2011-1-14 7.38 2011-1-17 7.749 600869 Long 2011-1-17 32.3 2011-1-18 30.9942 002171 Long 2011-1-19 26.79 2011-1-20 30 600637 Long 2011-1-21 12.01 2011-1-24 11.711 002171 Long 2011-1-25 28.24 2011-1-26 29.652 601002 Long 2011-1-26 19.9 2011-1-27 21.48 601002 Long 2011-1-31 24.45 2011-2-1 27 000755 Long 2011-2-1 11.75 2011-2-9 12.3375 600283 Long 2011-2-9 17.57 2011-2-10 19 格式编辑起来太不方便了
使用的正是次日的开盘价进场,不同的是出场使用的是当日收盘价。我认为这里不存在未来数据的问题。 这里的问题是,我在持仓股票A时,股票B发出了进场信号。这时我手中没有钱,只有股票A,可是在做回测时,amibroker没有考虑到这个问题,直接给我买了股票B。我想看一下能否编程或在哪里设置一下解决这个问题。
绝大多数策略其实都用不到 low-level 这么底层的控制方法。 实在要用low-level,最好先把下面这两个基本部分彻底搞懂了,要不很难搞明白怎么回事 Back-testing your trading ideas http://www.amibroker.com/guide/h_backtest.html Portfolio-level backtesting (楼主在#10楼的问题,这里有详细的解释....) http://www.amibroker.com/guide/h_portfolio.html good luck!