以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- TestReport 对象 全新的VBA策略回测对象,该对象提供一整套测试环境, 让VBA的策略开发也可以像PEL语言一样进行策略测试 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=68896) |
-- 作者:admin -- 发布时间:2014/8/18 23:58:21 -- TestReport 对象 全新的VBA策略回测对象,该对象提供一整套测试环境, 让VBA的策略开发也可以像PEL语言一样进行策略测试 TestReport 对象描述
该对象是金字塔3.3版后将提供一个全新的VBA策略回测对象,该对象提供一整套测试环境, 让VBA的策略开发也可以像PEL语言一样进行策略测试. 使用VBA直接控制测评的最大好处在于用户可以利用VBA语法直接高效控制测试流程,实现众多PEL无法完成的测试事项,并且代码可以经过少量修改就可以实盘操作. 注意:
使用评测时属性 InitCash 初始投入资金,单位(元) OpenLossPrice 开仓滑点,单位(最小变动价位) CloseLossPrice 平仓滑点,单位(最小变动价位) ReportType 测试报告类型, 0为专业测试报告;1为普通测试报告(比专业测试报告节省更多内存) ReportName 测试报告名称
使用评测时方法 StartAndInit 开始并初始化一个新的测试报告系统 AddTestStock 添加测试品种至测试报告系统 StepIt 步进测试报告,该方法通常用在一个测试循环的最后一部,告知测试系统做一些循环测试的后续工作 ShowReport 测试完毕后显示策略报告
交易系统 Buy 交易系统评测开多操作 Sell 交易系统评测平多操作 BuyShort 交易系统评测开空操作 SellShort 交易系统评测平空操作 Holding 测评模式下的持仓量,多仓返回正数空仓返回负数 Cash 得到测试模式下当前可用资金余额, 例如Cash(0)表示多头方向的余额,Cash(1)表示空头方向的余额 ANNUALRETURNRATE 得到测试模式下当前的年化收益率, 算法:净利润/交易时间。交易时间不足一年的部分,以(自然日/365)处理。 AVGENTERPRICE 当前持有品种的平均持仓成本——最近空仓以来计 ASSET 得到测试模式下当前的净自有资产, 算法:可用现金+占用保证金-融资(现金+品种市值-融资) AvgLoss 得到测试模式下当前平均亏损. 算法:平均亏损=总亏损/亏损交易次数 AVGLOSSPERIOD 得到测试模式下当前平均亏损周期,算法:平均亏损周期=亏损交易持仓周期/亏损交易次数 AVGPAYOFF 得到测试模式下当前平均盈亏.算法:平均盈亏=净利润/交易次数. AvgWin 得到测试模式下当前平均盈利,算法:平均盈利=总盈利/盈利交易次数 AVGWINPERIOD 得到测试模式下当前平均盈利周期,算法:平均盈利周期=盈利交易持仓周期/盈利交易次数 BESTPERCENT 得到测试模式下当前最大利润率,统计策略根据历史数据运行至今出现所有交易中利润率最大一次的利润率,其数值在0—1之间 BESTTRADE 得到测试模式下当前最大盈利额,统计策略根据历史数据运行至今出现所有交易中盈利最大一次的利润额 ENTERBARS 得到测试模式下当前开仓历时,返回上次开仓到当前的周期数,若之前没有开仓记录返回-1 ENTERPRICE 得到测试模式下当前上次开仓价 ENTERVOL 得到测试模式下当前上次开仓量 EXITBARS 得到测试模式下当前平仓历时,返回上次平仓到当前的周期数,若之前没有平仓记录返回-1 EXITPRICE 得到测试模式下当前上次平仓价 EXITVOL 得到测试模式下当前上次平仓量 GROSSLOSS 得到测试模式下当前总亏损额,算法:总亏损=策略亏损总额(未扣除手续费) GROSSPROFIT 得到测试模式下当前总盈利额,算法:总盈利=策略盈利总额(未扣除手续费) MAXDRAWDOWN 得到测试模式下当前最大回撤资金,算法:指资产(权益)曲线出现一个新的最高点后,此高点与其之后的最低点的差值。 MAXDRAWDOWNPCT 得到测试模式下当前最大回撤幅度,算法:指资产(权益)曲线出现一个新的最高点后,此高点与其之后的最低点的回撤幅度。 MAXSEQLOSS 得到测试模式下当前最大连亏次数,统计策略根据历史数据运行至今出现连续亏损交易的最大次数 MAXSEQWIN 得到测试模式下当前最大连盈次数,统计策略根据历史数据运行至今出现连续盈利交易的最大次数 NETPROFIT 得到测试模式下当前净利润,算法:统计策略所获取盈利或损失的总额.函数返回值为净利润值。 NUMLOSSTRADE 得到测试模式下当前亏损次数,统计策略根据历史数据运行至今出现过连亏情况的总次数。每出现一次连亏的情况,数值+1。注意每次平仓算一次交易,而开仓不算 NUMPROFIT 得到测试模式下当前交易盈亏,得到指定交易的盈亏数额,平仓一次算一次交易,开仓不算。用法:NUMPROFIT(N),取第距离现在第N次交易的盈亏数额。例如:NUMPROFIT(1)表示最近一次的盈亏数额。 NUMSEQLOSS 得到测试模式下当前连亏次数,统计策略根据历史数据运行至今出现过连亏情况的总次数。每出现一次连亏的情况,数值+1。注意每次平仓算一次交易,而开仓不算 NUMSEQWIN 得到测试模式下当前连盈次数,统计策略根据历史数据运行至今出现过连亏情况的总次数。每出现一次连亏的情况,数值+1。注意每次平仓算一次交易,而开仓不算 NUMWINTRADE 得到测试模式下当前盈利次数,统计策略根据历史数据运行至今出现过连亏情况的总次数。每出现一次连亏的情况,数值+1。注意每次平仓算一次交易,而开仓不算 OPENPROFIT 得到测试模式下当前浮动盈亏,当前浮动盈亏(当前持仓市值与持仓成本之差) PAYOFFRATE 得到测试模式下当前盈亏比,算法:盈亏比=总盈利/总亏损 PERCENTWIN 得到测试模式下当前交易胜率,统计策略根据历史数据运行至今出现盈利交易占总交易次数的比例,其数值在0—1之间 PROFITFACTOR 得到测试模式下当前盈利因子,算法:盈利因子=平均盈利/平均亏损 PROFITRISKRATIO 得到测试模式下当前收益风险比,算法:收益风险比=年化收益率/最大资产回撤幅度:即MAR比率。这是最常用的风险报酬比指标。考察让资产平均每年增值的幅度与需承受的最大资产回撤幅度的关系。 SEQLOSS 得到测试模式下当前最大连亏金额,当前位置之前最大连续亏损额,注意每次平仓算一次交易,而开仓不算 SEQWIN 得到测试模式下当前最大连盈金额,当前位置之前最大连续盈利额,注意每次平仓算一次交易,而开仓不算 SHARPRATE 得到测试模式下当前夏普率, TOTALDAYTRADE 得到测试模式下当前日内交易次数,当前位置之前总共有多少次当日的交易,注意每次平仓算一次交易,而开仓不算 TOTALTRADE 得到测试模式下当前交易次数,统计策略根据历史数据运行至今出现总共有多少次交易,注意每次平仓算一次交易,而开仓不算 TYPE 得到测试模式下当前上N次信号类型,得到当前位置之前上N次信号类型输出:0、无信号1、开多2、平多3、开空;4、平空. 用法:TYPE(N) TYPEBAR 得到测试模式下当前类信号历时,得到当前位置之前上N次信号指定类型距当前周期,用法:TYPEBAR(N,TYPE)N表示上次信号,TYPE表示信号类型 0、无信号1、开多2、平多3、开空;4、平空 例如:TYPEBAR(2,1)表示:倒数第2个开多信号历时 WORSTPERCENT 得到测试模式下当前最大亏损率,统计策略根据历史数据运行至今出现所有交易中亏损率最大一次的利润率,其数值在0—1之间 WORSTTRADE 最大亏损额,统计策略根据历史数据运行至今出现所有交易中亏损最大一次的亏损额
公共方法属性(仅对专业测试报告有效) DetailCount 交易明细数量,若出错则返回-1 GetDetailItem 得到交易名细项 ItemType 得到当前打开的测试报告类别,返回值1-34,例如: 1为总体概要 34为组合收益图 ,若出错则返回-1 ItemListCount 得到测试报告项数据量,仅当打开的是列表式报告项时有效,出错或失败返回-1 GetItemText 得到测试报告项内容,仅当打开的是列表式报告项时有效 SetItemText 设置测试报告项内容,仅当打开的是列表式报告项时有效 InsertItem 在报表下方添加新的行 事件(仅对专业测试报告有效) ItemChanged 当切换报表项时触发该事件 |
-- 作者:admin -- 发布时间:2014/8/18 23:59:02 -- 部分使用范例 范例1 \'测试完毕强平持仓 范例2 \'/////////////////////////////////////////////// |
-- 作者:admin -- 发布时间:2014/8/18 23:59:13 -- 范例3
[此贴子已经被作者于2014/9/28 20:02:01编辑过]
|
-- 作者:guotx2010 -- 发布时间:2014/8/19 8:16:19 -- 很强大,值得收藏 |
-- 作者:dwjgwsm -- 发布时间:2014/8/19 8:44:54 -- 先顶再看 |
-- 作者:自在二次元 -- 发布时间:2014/8/20 17:01:52 -- 太感谢了,得好好学习vba了 |
-- 作者:fantasynew -- 发布时间:2014/8/22 22:07:41 -- 工作人员辛苦了 |
-- 作者:solarhe2006 -- 发布时间:2017/8/18 21:28:29 -- VBA测试报告,金字塔的,请问如何设定数据测试的历史开始时间和结束时间? |
-- 作者:王锋 -- 发布时间:2017/8/18 21:54:41 -- 使用 GetHistoryDataByDate 代替 GetHistoryData 来指定加载开始和结束时间的数据 |