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
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
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
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
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
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
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
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