請問金字塔客服如何將這段策略放到VBA里面用 [金字塔]
- 咨詢內(nèi)容:
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 subsub 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 subsub test2()
end sub
- 金字塔客服:
http://www.weistock.com/WeisoftHelp/vbarumenjiaocheng.htm
看下這金字塔的vba如何進入編輯界面
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容