Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
cyq220657 发表于: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 是全局变量
2楼
cyq220657 发表于:2015/5/6 14:10:19

 ELSEIF MYCLSOE>H10 AND sss<0 THEN

不是这句 原因 这个已改了

3楼
cyq220657 发表于:2015/5/28 10:12:24
当金字塔开盘获取数据时 VBA对应的数组与数据匹对不上,所以一开始 vba获取的K线        数据是错误的 要过一两分钟就对的上了
4楼
yukizzc 发表于:2015/5/28 10:46:34

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

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

5楼
cyq220657 发表于:2015/5/28 11:12:25
K线是对的 
6楼
cyq220657 发表于:2015/5/28 11:15:41
看到K数据变动的  就开盘是数据变一哈 等一会儿数据又变回来了
7楼
yukizzc 发表于: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)

8楼
cyq220657 发表于:2015/5/28 15:49:46

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

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

9楼
王锋 发表于:2015/5/28 17:54:30

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

共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03516 s, 2 queries.