欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]vba策略夜盘开仓与指标不一致,白天正常

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3189人关注过本帖树形打印复制链接

主题:[求助]vba策略夜盘开仓与指标不一致,白天正常

帅哥哟,离线,有人找我吗?
cyq220657
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
[求助]vba策略夜盘开仓与指标不一致,白天正常  发帖心情 Post By:2015/5/6 13:56:06 [只看该作者]

白天用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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
  发帖心情 Post By:2015/5/6 14:10:19 [只看该作者]

 ELSEIF MYCLSOE>H10 AND sss<0 THEN

不是这句 原因 这个已改了


 回到顶部
帅哥哟,离线,有人找我吗?
cyq220657
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
  发帖心情 Post By:2015/5/28 10:12:24 [只看该作者]

当金字塔开盘获取数据时 VBA对应的数组与数据匹对不上,所以一开始 vba获取的K线        数据是错误的 要过一两分钟就对的上了

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/5/28 10:46:34 [只看该作者]

你在另一处发帖回复过您了,把k线的时间还有价格这种数据都输出记录下。

看是取到的k序列不对呢,还是数据不对。


 回到顶部
帅哥哟,离线,有人找我吗?
cyq220657
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
  发帖心情 Post By:2015/5/28 11:12:25 [只看该作者]

K线是对的 

 回到顶部
帅哥哟,离线,有人找我吗?
cyq220657
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
  发帖心情 Post By:2015/5/28 11:15:41 [只看该作者]

看到K数据变动的  就开盘是数据变一哈 等一会儿数据又变回来了

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/5/28 15:39:37 [只看该作者]

会不会是白天数据本地没有所以引用时候变成了前一天的k呢,你输出时候这样去输出把time记录下来。之前也用如下代码在夜盘时候进行了输出,价格还有时间记录也都正常。

myclose=Histroy.Close(Histroy.Count-2)  '得到上根K线的收盘价     
     mydate=Histroy.Date(Histroy.Count-2)
    call document.debugfile("C:\OrderLog.Txt",myclose&"---"&mydate,time)


 回到顶部
帅哥哟,离线,有人找我吗?
cyq220657
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 会飞的鱼尾猫
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/1/30 10:25:08
  发帖心情 Post By:2015/5/28 15:49:46 [只看该作者]

我也不知道怎么的 早上开盘也是一样的 反正开盘会出错 休盘都不会 后面的数据一切正常 

 在开盘前面一两分钟数据只要不用 我的程序就正常了


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2015/5/28 17:54:30 [只看该作者]

建议你还是多用Application.msgout函数多调试一下吧,这种逻辑问题,唯有调试手段才能解决问题的



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部