- 精华
- 0
- 在线时间
- 130 小时
- UID
- 244161
- 积分
- 54
- 帖子
- 31
- 阅读权限
- 30
- 注册时间
- 2016-12-5
- 最后登录
- 2023-1-25
- 精华
- 0
- UID
- 244161
- 积分
- 54
- 帖子
- 31
- 主题
- 19
- 阅读权限
- 30
- 注册时间
- 2016-12-5
- 最后登录
- 2023-1-25
|
本帖最后由 leonshi 于 2019-2-24 22:19 编辑
报一个bug,回测时,在没有交易指令发出的前提下,MarketPosition被重置为0。根据我自己的调查,这个bug与均线有关。
1. 先贴上我的实验公式:- Vars
- String tradeLogFile; //交易日志
- Numeric ma;
- Begin
- tradeLogFile = "D:\\tblog\\trade_testissue01_" + Symbol + "_" + Text(CurrentDate) + ".log";
-
- ma = AverageFC(Close[1], 19);
-
- if(CurrentBar == 0) {
- Buy(1, Open);
- }
-
- FileAppend(tradeLogFile, "---bar " + Text(CurrentBar) + " MarketPosition:" + Text(MarketPosition));
- End
复制代码 2. 再贴上公式打印的部分log:
---bar 0 MarketPosition:1
---bar 1 MarketPosition:1
---bar 2 MarketPosition:1
---bar 3 MarketPosition:1
---bar 4 MarketPosition:1
---bar 5 MarketPosition:1
---bar 6 MarketPosition:1
---bar 7 MarketPosition:1
---bar 8 MarketPosition:1
---bar 9 MarketPosition:1
---bar 10 MarketPosition:1
---bar 11 MarketPosition:1
---bar 12 MarketPosition:1
---bar 13 MarketPosition:1
---bar 14 MarketPosition:1
---bar 15 MarketPosition:1
---bar 16 MarketPosition:1
---bar 17 MarketPosition:1
---bar 18 MarketPosition:0
---bar 19 MarketPosition:0
3. 我对该bug的分析:
从日志可见,第19个bar,也就是均线求值的bar个数,MarketPosition被重置为0.
如果不执行均线求值,则MarketPosition表现正常,不会被重置。
第19个bar之前和之后都可以建仓和平仓。可一旦到达第19个bar仍在持仓,则MarketPoistion自动重置,同时,该图表的投资组合性能测试报告会生成失败,里面不会有任何交易,所有数据都是0.
使用average方法替代AverageFC,仍有此问题。
以下是我的tb版本信息:程序文件:TradeBlazer.exe
软件名称:交易开拓者平台
版本: 5.5.4.6
更新: 2018-12-28
文件名:BarEx.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:BaseCtrl.dll
版本: 5.5.0.0
更新: 2018-07-03
文件名:DataFeed.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:Desktop.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:ice35.dll
版本: 3.5.1
更新: 2017-05-09
文件名:iceutil35.dll
版本: 3.5.1
更新: 2017-05-09
文件名:KeyFilter.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:libcurl.dll
版本: 7.30.0
更新: 2014-07-01
文件名:libeay32.dll
版本: 1.0.1e
更新: 2014-07-01
文件名:LowQuote.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:Master.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:mfc110.dll
版本: 11.0.60610.1
更新: 2014-07-01
文件名:MsgManage.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:msvcp110.dll
版本: 11.00.51106.1
更新: 2014-07-01
文件名:msvcr110.dll
版本: 11.00.51106.1
更新: 2014-07-01
文件名:NewChart.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:OptionQuote.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:RichCtrl.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:SciLexer.dll
版本: 3.3.9
更新: 2014-07-01
文件名:ScriptRunner.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:SectChart.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:ssleay32.dll
版本: 1.0.1e
更新: 2014-07-01
文件名:SysFuncs.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:TBCompiler.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:TBFormula.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:TBParser.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:TradeMaster.dll
版本: 5.5.4.6
更新: 2018-12-28
文件名:TradingBox.dll
版本: 5.5.4.6
更新: 2018-12-28
如果确认这是bug,望早日修复此bug,以及请提供替代写法。
谢谢!
|
|