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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 板块同步效果和想象的不一样,请指教。

   

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


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

主题:板块同步效果和想象的不一样,请指教。

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


加好友 发短信
等级:论坛游民 帖子:274 积分:841 威望:0 精华:10 注册:2010/7/12 15:25:05
板块同步效果和想象的不一样,请指教。  发帖心情 Post By:2012/8/7 18:27:52 [只看该作者]


板块同步效果和想象的不一样,请高手帮忙看看问题出现在哪里?


'全局变量
dtss'多头系数,自己填写。测试时,可以随便给个数字
ktss'空头系数,同上


'-----------------------------------------同步平掉多余的多单
sub tongbu_pingduo()

  Set b = CreateObject("stock.block") 

    ccsl = order.Holding2()
    for i =0 to ccsl-1
      Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
              
      if BuyHolding >  0  then
         b.Open "商品多头", 1 
            mxpc =0
            For k = 0 To b.Count - 1 
              mxcode = b.GetStockCode(k)
              if code = mxcode then
                 pc = 1  
              else
                 pc = 0          
              end if
              mxpc = mxpc+pc  
            Next 
            
          if mxpc =0 then 
              Call Order.sell(1,BuyHolding,0,0,Code,Market,"",0) 
          end if
          
          if mxpc = 1 and BuyHolding>dtss then 
             Call Order.sell(1,BuyHolding-dtss,0,0,Code,Market,"",0) 
          end if
         
       end if 
    next
    application.MsgOut ccsl&"多余多单已经平掉!"
    
 end sub
 
 '-------------------------------------同步平掉多余的空单
 sub tongbu_pingkong() 

  Set b = CreateObject("stock.block") 

    ccsl = order.Holding2()
    for i =0 to ccsl-1
      Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
            
      if SellHolding >  0  then
         b.Open "商品空头", 1 
            mxpc =0
            For k = 0 To b.Count - 1 
              mxcode = b.GetStockCode(k)
              if code = mxcode then
                 pc = 1     
              else
                 pc = 0        
              end if
              mxpc = mxpc+pc  
            Next 
            
          if mxpc =0 then 
              Call Order.sellshort(1,SellHolding,0,0,Code,Market,"",0) 
          end if
          if mxpc =1 and SellHolding>ktss then 
              Call Order.sellshort(1,SellHolding-ktss,0,0,Code,Market,"",0) 
          end if
         
       end if 
    next
    application.MsgOut ccsl&"多余空单已经平掉!"
    
 end sub

 '-------------------------------------同步补足多单
 
  sub tongbu_kaiduo() 

  Set b = CreateObject("stock.block") 
      b.Open "商品多头", 1 
      For k = 0 To b.Count - 1 
          mxcode = b.GetStockCode(k)
          
          ccsl = order.Holding2()
          mxpc = 0
          for i =0 to ccsl-1
              Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
              if code = mxcode then
                 pc = 1
              else
                 pc = 0                              
              end if
              mxpc = mxpc+pc  
          Next 
            
          if mxpc =0 then 
              Call Order.buy(1,dtss,0,0,Code,Market,"",0) 
          end if
          if mxpc =1 and BuyHolding<dtss then 
              Call Order.buy(1,dtss-BuyHolding,0,0,Code,Market,"",0) 
          end if
     next
    
    application.MsgOut ccsl&"多单已补足!"
    
 end sub
 
  '-------------------------------------同步补足空单
 
  sub tongbu_kaikong() 

  Set b = CreateObject("stock.block") 
      b.Open "商品空头", 1 
      For k = 0 To b.Count - 1 
          mxcode = b.GetStockCode(k)
          
          ccsl = order.Holding2()
          mxpc = 0
          for i =0 to ccsl-1
              Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
              if code = mxcode then
                 pc = 1
              else
                 pc = 0                              
              end if
              mxpc = mxpc+pc  
          Next 
            
          if mxpc =0 then 
              Call Order.buyshort(1,ktss,0,0,Code,Market,"",0) 
          end if
          if mxpc =1 and SellHolding<ktss then 
              Call Order.buyshort(1,ktss-SellHolding,0,0,Code,Market,"",0) 
          end if         
      next
    
    application.MsgOut ccsl&"空单已补足!"
    
 end sub
 
 '------------------------------------同步

sub duichongtongbu()
       
    call tongbu_pingduo()
    call tongbu_pingkong()
    
    call tongbu_kaiduo() 
    call tongbu_kaikong()
end sub

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/8/7 19:50:35 [只看该作者]

出什么问题了?


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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
明心
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:274 积分:841 威望:0 精华:10 注册:2010/7/12 15:25:05
  发帖心情 Post By:2012/8/8 11:06:54 [只看该作者]

账户里的品种是能平掉,但是不该平的也平了。板块里有的,开不了仓。总结起来就是板块和账户没有能同步。

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


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

这个问题没法帮你解决,只能你自己通过输出日志的办法,自己调试了



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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部