以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- [求助]vba策略夜盘开仓与指标不一致,白天正常 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=78316) |
-- 作者:cyq220657 -- 发布时间:2015/5/6 13:56:06 -- [求助]vba策略夜盘开仓与指标不一致,白天正常 白天用VBA策略是能正常的实盘开仓,到了夜盘就不正确,不知道什么原因,求解决! 代码如下:
sub xingezc(PN,PZ,mycode,mymarket,A,B,D,CTY,CTY1) \'cl策略编号,A,B,D策略优化参数,cty策略周期,CTY1,CTY2读取多分钟,PN品种编号 pz持仓量 dim H10,L10,H20,L20,AB,OVOL,myclose,sss \' H10,L10中线,H20上轨,L20下轨,d周期原始成交量 ,ovel上期原始成交量,根K线的收盘价变量 SET Histroy = marketdata.GetHistoryData( mycode,mymarket,CTY,0,CTY1) \'得到周期K线 myclose=Histroy.Close(Histroy.Count-2) \'得到上根K线的收盘价 OVOL=Histroy.Volume(Histroy.Count-2)\'原始成交量 \'得到上根K线的收盘价 H10=Histroy.Close(Histroy.Count-(2+A)) L10=H10 \'平仓线 \'多方向开仓线 for a =(2+1) to (b+3) arr(a)=Histroy.High(Histroy.Count-A) if arr(a)>H20 then H20=arr(a) end if next \'空方向开仓线 L20=Histroy.LOW(Histroy.Count-(2+1)) for a =(2+1) to (b+3) arr(a)=Histroy.LOW(Histroy.Count-A) if arr(a)<L20 then L20=arr(a) end if next AB=Histroy.Volume(Histroy.Count-(2+D))\'d周期原始成交量 sss=pz xinge=pz \'初始化持仓手数 \'开多 IF myclose>H20 AND myclose>H10 AND OVOL>AB AND sss=0 THEN sss=1 \' 平多 ELSEIF myclose<h10 AND sss>0 THEN sss=0 \' 开空 elseif myclose<L20 AND myclose<L10 AND OVOL>AB AND sss=0 THEN sss=-1 \' 平空 ELSEIF MYCLSOE>H10 AND sss<0 THEN sss=0 END IF xinge=sss end sub xinge 是全局变量
|
-- 作者:cyq220657 -- 发布时间:2015/5/6 14:10:19 -- ELSEIF MYCLSOE>H10 AND sss<0 THEN 不是这句 原因 这个已改了 |
-- 作者:cyq220657 -- 发布时间:2015/5/28 10:12:24 -- 当金字塔开盘获取数据时 VBA对应的数组与数据匹对不上,所以一开始 vba获取的K线 数据是错误的 要过一两分钟就对的上了 |
-- 作者:yukizzc -- 发布时间:2015/5/28 10:46:34 -- 你在另一处发帖回复过您了,把k线的时间还有价格这种数据都输出记录下。 看是取到的k序列不对呢,还是数据不对。 |
-- 作者:cyq220657 -- 发布时间:2015/5/28 11:12:25 -- K线是对的 |
-- 作者:cyq220657 -- 发布时间:2015/5/28 11:15:41 -- 看到K数据变动的 就开盘是数据变一哈 等一会儿数据又变回来了 |
-- 作者:yukizzc -- 发布时间:2015/5/28 15:39:37 -- 会不会是白天数据本地没有所以引用时候变成了前一天的k呢,你输出时候这样去输出把time记录下来。之前也用如下代码在夜盘时候进行了输出,价格还有时间记录也都正常。 myclose=Histroy.Close(Histroy.Count-2) \'得到上根K线的收盘价 |
-- 作者:cyq220657 -- 发布时间:2015/5/28 15:49:46 -- 我也不知道怎么的 早上开盘也是一样的 反正开盘会出错 休盘都不会 后面的数据一切正常 在开盘前面一两分钟数据只要不用 我的程序就正常了 |
-- 作者:王锋 -- 发布时间:2015/5/28 17:54:30 -- 建议你还是多用Application.msgout函数多调试一下吧,这种逻辑问题,唯有调试手段才能解决问题的 |