sub marketdata_reportnotify(reportdata)
dim multiplier
dim mintick
dim shortpercent
dim longpercent
dim buyhoding
dim buytodayhoding
dim sellhoding
dim selltodayhoding
dim buycost
dim sellcost
dim pnl
dim usemargin
dim orderid1
dim consign1
dim filled1
dim remaining1
dim ordertype1
dim lmtprice1
dim orderid2
dim consign2
dim filled2
dim remaining2
dim ordertype2
dim lmtprice2
dim orderid3
dim consign3
dim filled3
dim remaining3
dim ordertype3
dim lmtprice3
dim orderid4
dim consign4
dim filled4
dim remaining4
dim ordertype4
dim lmtprice4
lots=1
account="888888"
code=reportdata.label
market=reportdata.marketname
t0=code&"_trend0"
t1=code&"_trend1"
mybarpos=code&"_barpos"
set md=marketdata.getminutedata(code,market)
barpos=md.count-1
if barpos<=document.getextdata(mybarpos) then
exit sub
end if
call document.setextdata(mybarpos,barpos)
call document.setextdata(t1,document.getextdata(t0))
if md.newprice(barpos)>md.newprice(barpos-1) then
call document.setextdata(t0,1)
end if
if md.newprice(barpos)<md.newprice(barpos-1) then
call document.setextdata(t0,-1)
end if
entrylongcond=document.getextdata(t0)=1 and document.getextdata(t1)=1 and md.newprice(barpos)>md.newprice(barpos-1)
entryshortcond=document.getextdata(t0)=-1 and document.getextdata(t1)=-1 and md.newprice(barpos)<md.newprice(barpos-1)
\' sleeptime=2
\'
\' actiontime=code&"_actiontime"
\'
\' if document.getextstring(actiontime)="" then
\' actiondiff=sleeptime
\' else
\' actiondiff=datediff("s",document.getextstring(actiontime),now)
\' end if
\'
\' if actiondiff<sleeptime then
\' exit sub
\' end if
call order.contract(code,market,multiplier,mintick,shortpercent,longpercent)
call order.holdinginfobycode2(code,market,buyholding,buycost,buytodayholding,sellholding,sellcost,selltodayholding,pnl,usemargin,account)
call getpendingorder(orderid1,consign1,filled1,remaining1,0,ordertype1,lmtprice1,account,0,code,market)
call getpendingorder(orderid2,consign2,filled2,remaining2,1,ordertype2,lmtprice2,account,2,code,market)
call getpendingorder(orderid3,consign3,filled3,remaining3,1,ordertype3,lmtprice3,account,0,code,market)
call getpendingorder(orderid4,consign4,filled4,remaining4,0,ordertype4,lmtprice4,account,2,code,market)
\'application.MsgOut("lmtprice1="&lmtprice1)
application.MsgOut("lmtprice2="&lmtprice2)
\'application.MsgOut("lmtprice3="&lmtprice3)
application.MsgOut("lmtprice4="&lmtprice4)
a=orderid2>0 and md.askprice(barpos)<lmtprice2
b=orderid4>0 and md.bidprice(barpos)>lmtprice4
application.MsgOut("多头追价:"&a )
application.MsgOut("空头追价:"&b )
order.orderqueue=0
offset=3*mintick
\'多头条件成立时,将卖平和卖开未成交单撤单
if entrylongcond then
call order.cancelorder(orderid2)
call order.cancelorder(orderid3)
\'call document.setextstring(actiontime,now)
end if
\'空头条件成立时,将买开和买平未成交单撤单
if entryshortcond then
call order.cancelorder(orderid1)
call order.cancelorder(orderid4)
\'call document.setextstring(actiontime,now)
end if
\'多头开仓
if buyholding=0 then
if entrylongcond then
if orderid1=0 then
call order.buy(0,lots,md.bidprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
end if
\'多头平仓
if buyholding>0 then
if entryshortcond then
if orderid2=0 then
\'多头止盈
call order.sell(0,buyholding,md.askprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
\'多头追价
if orderid2>0 and md.askprice(barpos)<lmtprice2 then
order.orderqueue=1
call order.cancelorder(orderid2)
call order.sell(0,buyholding,md.askprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
\'多头止损
if buycost-md.bidprice(barpos)>=offset then
order.orderqueue=1
call order.cancelorder(orderid2)
call order.sell(0,buyholding,md.bidprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
\'空头开仓
if sellholding=0 then
if entryshortcond then
if orderid3=0 then
call order.buyshort(0,lots,md.askprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
end if
\'空头平仓
if sellholding>0 then
if entrylongcond then
if orderid4=0 then
\'空头止盈
call order.sellshort(0,sellholding,md.bidprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
\'空头追价
if orderid4>0 and md.bidprice(barpos)>lmtprice4 then
order.orderqueue=1
call order.cancelorder(orderid4)
call order.sellshort(0,sellholding,md.bidprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
\'空头止损
if md.askprice(barpos)-sellcost>=offset then
order.orderqueue=1
call order.cancelorder(orderid4)
call order.sellshort(0,sellholding,md.askprice(barpos),0,code,market,account,0)
\'call document.setextstring(actiontime,now)
end if
end if
end sub
sub getpendingorder(myorderid,myconsign,myfilled,myremaining,myaction,myordertype,mylmtprice,myaccount,mykaiping,mycode,mymarket)
dim orderid
dim consign
dim filled
dim remaining
dim action
dim ordertype
dim lmtprice
dim account
dim kaiping
dim code
dim market
for i=0 to order.ordernum2-1
call order.orderinfo2(i,orderid,consign,filled,remaining,action,ordertype,lmtprice,account,kaiping,code,market)
if code=mycode and market=mymarket and action=myaction and kaiping=mykaiping and account=myaccount then
myorderid=orderid
myconsign=consign
myfilled=filled
myremaining=remaining
myordertype=ordertype
mylmtprice=lmtprice
exit for
else
myorderid=0
myconsign=0
myfilled=0
myremaining=0
myordertype=0
mylmtprice=0
end if
next
end sub
sub test2()
end sub