板块同步效果和想象的不一样,请高手帮忙看看问题出现在哪里?
'全局变量
dtss'多头系数,自己填写。测试时,可以随便给个数字
ktss'空头系数,同上
'-----------------------------------------同步平掉多余的多单
sub tongbu_pingduo()
Set b = CreateObject("stock.block")
ccsl = order.Holding2()
for i =0 to ccsl-1
Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
if BuyHolding > 0 then
b.Open "商品多头", 1
mxpc =0
For k = 0 To b.Count - 1
mxcode = b.GetStockCode(k)
if code = mxcode then
pc = 1
else
pc = 0
end if
mxpc = mxpc+pc
Next
if mxpc =0 then
Call Order.sell(1,BuyHolding,0,0,Code,Market,"",0)
end if
if mxpc = 1 and BuyHolding>dtss then
Call Order.sell(1,BuyHolding-dtss,0,0,Code,Market,"",0)
end if
end if
next
application.MsgOut ccsl&"多余多单已经平掉!"
end sub
'-------------------------------------同步平掉多余的空单
sub tongbu_pingkong()
Set b = CreateObject("stock.block")
ccsl = order.Holding2()
for i =0 to ccsl-1
Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
if SellHolding > 0 then
b.Open "商品空头", 1
mxpc =0
For k = 0 To b.Count - 1
mxcode = b.GetStockCode(k)
if code = mxcode then
pc = 1
else
pc = 0
end if
mxpc = mxpc+pc
Next
if mxpc =0 then
Call Order.sellshort(1,SellHolding,0,0,Code,Market,"",0)
end if
if mxpc =1 and SellHolding>ktss then
Call Order.sellshort(1,SellHolding-ktss,0,0,Code,Market,"",0)
end if
end if
next
application.MsgOut ccsl&"多余空单已经平掉!"
end sub
'-------------------------------------同步补足多单
sub tongbu_kaiduo()
Set b = CreateObject("stock.block")
b.Open "商品多头", 1
For k = 0 To b.Count - 1
mxcode = b.GetStockCode(k)
ccsl = order.Holding2()
mxpc = 0
for i =0 to ccsl-1
Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
if code = mxcode then
pc = 1
else
pc = 0
end if
mxpc = mxpc+pc
Next
if mxpc =0 then
Call Order.buy(1,dtss,0,0,Code,Market,"",0)
end if
if mxpc =1 and BuyHolding<dtss then
Call Order.buy(1,dtss-BuyHolding,0,0,Code,Market,"",0)
end if
next
application.MsgOut ccsl&"多单已补足!"
end sub
'-------------------------------------同步补足空单
sub tongbu_kaikong()
Set b = CreateObject("stock.block")
b.Open "商品空头", 1
For k = 0 To b.Count - 1
mxcode = b.GetStockCode(k)
ccsl = order.Holding2()
mxpc = 0
for i =0 to ccsl-1
Call Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,Code,Market)
if code = mxcode then
pc = 1
else
pc = 0
end if
mxpc = mxpc+pc
Next
if mxpc =0 then
Call Order.buyshort(1,ktss,0,0,Code,Market,"",0)
end if
if mxpc =1 and SellHolding<ktss then
Call Order.buyshort(1,ktss-SellHolding,0,0,Code,Market,"",0)
end if
next
application.MsgOut ccsl&"空单已补足!"
end sub
'------------------------------------同步
sub duichongtongbu()
call tongbu_pingduo()
call tongbu_pingkong()
call tongbu_kaiduo()
call tongbu_kaikong()
end sub