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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [原创]获取近月主力和远月主力

   

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


  共有4627人关注过本帖平板打印复制链接

主题:[原创]获取近月主力和远月主力

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


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
救助版主:我用机构版,把账户分类了两个组,用全部账户登录,第二组有了信号但没有成交  发帖心情 Post By:2012/11/23 22:13:40 [只看该作者]

sub getmaincontracts()
 market=array("sq","dq","zq","zj")
 
 file="c:\contracts.ini"
 
 set block0=createobject("stock.block")
 set block1=createobject("stock.block")
 
 for i=0 to ubound(market)
  for j=0 to marketdata.getreportcount(market(i))-1
   set myreport=marketdata.getreportdatabyindex(market(i),j)
   suffixlabel=right(myreport.label,2)
   
   if suffixlabel="00" then
    if contractlabel0<>"" and contractlabel1<>"" then     
     if contractstockname0<contractstockname1 then      
      mycontractlabel0=contractlabel0
      mycontractstockname0=lcase(mylabel&contractstockname0)
      mycontractmarket0=contractmarket0
      
      mycontractlabel1=contractlabel1
      mycontractstockname1=lcase(mylabel&contractstockname1)
      mycontractmarket1=contractmarket1      
     else
      mycontractlabel0=contractlabel1
      mycontractstockname0=lcase(mylabel&contractstockname1)
      mycontractmarket0=contractmarket1
      
      mycontractlabel1=contractlabel0
      mycontractstockname1=lcase(mylabel&contractstockname0)
      mycontractmarket1=contractmarket0   
     end if
     
     mycontract0=document.getprivateprofilestring(mylabel,"contract0","0",file)
     mycontract1=document.getprivateprofilestring(mylabel,"contract1","0",file)
     
     if myc and myc then
      document.writeprivateprofilestring mylabel,"contract0",mycontractstockname0,file
      document.writeprivateprofilestring mylabel,"contract1",mycontractstockname1,file
     else
      if mycontract0<>mycontractstockname0 then
       application.msgout mylabel&" 近月换月啦~~~" &mycontract0&" ---> "&mycontractstockname0
      end if
      
      if mycontract1<>mycontractstockname1 then
       application.msgout mylabel&" 远月换月啦~~~ "&mycontract1&" ---> "&mycontractstockname1
      end if
     end if
     
     block0.addstock mycontractmarket0,mycontractlabel0
     block1.addstock mycontractmarket1,mycontractlabel1
     
     document.setextstring mylabel+"_contract0",mycontract0
     document.setextstring mylabel+"_contract1",mycontract1
    end if
    
    c"
    c"
    c"
    contractopenint1=0
    
    if market(i)="dq" then
     mylabel=lcase(left(myreport.label,1))
    else
     mylabel=lcase(left(myreport.label,2))
    end if 
   elseif suffixlabel>="01" and suffixlabel<="12" then
    if myreport.openint=contractopenint0 then
     contractlabel0=myreport.label
     contractstockname0=right(myreport.stockname,4)
     contractmarket0=market(i)
     contractopenint0=myreport.openint
    elseif myreport.openint>=contractopenint1 then
     contractlabel1=myreport.label
     contractstockname1=right(myreport.stockname,4)
     contractmarket1=market(i)
     contractopenint1=myreport.volume
    end if 
   end if
  next
 next
 
 if contractlabel0<>"" and contractlabel1<>"" then     
  if contractstockname0<contractstockname1 then      
   mycontractlabel0=contractlabel0
   mycontractstockname0=lcase(mylabel&contractstockname0)
   mycontractmarket0=contractmarket0
   
   mycontractlabel1=contractlabel1
   mycontractstockname1=lcase(mylabel&contractstockname1)
   mycontractmarket1=contractmarket1      
  else
   mycontractlabel0=contractlabel1
   mycontractstockname0=lcase(mylabel&contractstockname1)
   mycontractmarket0=contractmarket1
   
   mycontractlabel1=contractlabel0
   mycontractstockname1=lcase(mylabel&contractstockname0)
   mycontractmarket1=contractmarket0   
  end if
  
  mycontract0=document.getprivateprofilestring(mylabel,"contract0","0",file)
  mycontract1=document.getprivateprofilestring(mylabel,"contract1","0",file)
  
  if myc and myc then
   document.writeprivateprofilestring mylabel,"contract0",mycontractstockname0,file
   document.writeprivateprofilestring mylabel,"contract1",mycontractstockname1,file
  else
   if mycontract0<>mycontractstockname0 then
    application.msgout mylabel&" 近月换月啦~~~" &mycontract0&" ---> "&mycontractstockname0
   end if
   
   if mycontract1<>mycontractstockname1 then
    application.msgout mylabel&" 远月换月啦~~~ "&mycontract1&" ---> "&mycontractstockname1
   end if
  end if
  
  block0.addstock mycontractmarket0,mycontractlabel0
  block1.addstock mycontractmarket1,mycontractlabel1
  
  document.setextstring mylabel+"_contract0",mycontract0
  document.setextstring mylabel+"_contract1",mycontract1 
 end if
 
 block0.tosave "自选","近月主力"
 block1.tosave "自选","远月主力"
end sub

 回到顶部