Rss & SiteMap

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

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

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

1楼
z7c9 发表于: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
2楼
gz12345678gz 发表于:2012/11/23 23:28:05
这是VBA还是宏?怎么使用啊?还望明示,呵呵
3楼
solarhe2006 发表于:2012/11/25 16:42:07
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
4楼
gz12345678gz 发表于:2012/11/26 12:39:41
有人在吗?
共4 条记录, 每页显示 10 条, 页签: [1]


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