Testreport中PEL引用出错! [金字塔]
-
咨询内容:
在Testreport中尝试使用Pel指标引用,但是测试结果中间漏掉了数据,换品种,换代码(样板代码)都是一样的结果,请问是为什么?
一、引用指标代码(al1)
m2:ma(close,20);
mr:cross(close,m2);mc:cross(m2,close);
buy(mr and holding=0,100%,market);sell(mc and holding>0,0,thisclose);
二、Testreport代码
sub ReportTest()
'//////设置测试参数
Testreport.StartAndInitTestreport.InitCash=100*10000Testreport.ReportType=0MarketData.HistoryDataMode=0Testreport.OpenLossPrice=1Testreport.CloseLossPrice=1Testreport.ODDLOTSMode=1Testreport.CLOSEPOSMODE=1
'//////数据准备
set F1=MarketData.STKINDI("300059","SZ","al1",0,5)Set His0=Marketdata.GetHistoryData("300059","SZ",5)call Testreport.AddTestStock(His0,"300059","SZ",0)
Dim Data0Set Data0=CreateObject("Stock.Array")
Dim Vlvl=0
'/////K线循环
for i=0 to His0.Count-1
if i<=His0.Count-2 then vl=int(Testreport.Cash(0)/(100*His0.open(i+1))) else vl=int(Testreport.Cash(0)/(100*His0.close(i))) end if if F1.GetBufData("MR",i) then if Testreport.Holding=0 then Testreport.Buy vl*100,His0.Open(i+1) end if end if if F1.GetBufData("MC",i) then if Testreport.Holding>0 then Testreport.sell 0,His0.close(i) end if end if if i=His0.Count-1 then if Testreport.Holding>0 then Testreport.sell 0,His0.close(i) end if end if Application.MsgOut Testreport.ASSET Testreport.StepIt i
next
set His0=nothing
Testreport.ShowReport MarketData.DestroyHistoryData
end sub
Sub APPLICATION_VBAStart()
Application.ClearMsgReportTest
End Sub
三、测试明细
此主题相关图片如下:snap1.jpg来源: CXH99.COM
-
金字塔客服:
补充:不引用Pel指标就没有出错!
-
用户回复:
工具-选项-维护
内存保留数量,这里设置大一些比如10000然后再试下看呢
-
网友回复:
这种情况一般是你引用的品种的周期缺失历史数据导致的。
你可以做一些调试工作,将引用的指标线单独打印出来,看一下引用结果
-
网友回复:
试了,后面的日期有了,但测试结果明显不对!
Application.MsgOut F1.GetBufDateData(i) & "|" &Testreport.ASSET & "|" & F1.GetBufData("MR",i) & "-" & F1.GetBufData("MC",i)
我加了这么一行代码,显示指标的历史数据到2014年5月16日就没有了。。
不过应该也不是历史数据缺失,因为直接用Pel测试是好的,奇怪了,什么设置有问题呢?
此主题相关图片如下:snap2.jpg
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容