写了个查询对价分批下单的程序,就是通过预警信号触发分批开仓程序,调试时一有预警信号程序就挂起来了!
AcID = "12345678" '执行账户
PMony = 100000 '每手保证金10万
Sub MARKETDATA_AlarmPleaceOrder(Name, ReOrder, OrderType, Action, Volume, Price, Code, Market, Account)
dim unVolume,doVolume '等待下单手数,每次分批开单手数
dim ReportData
dim KKSS '可开手数
unVolume = 100 '计划开仓手数
Select Case ReOrder
Case 3'平空
while unVolume > 0 '先平空
set ReportData = marketdata.GetReportData(Code, Market)
doVolume = Fun.Min(unVolume,ReportData.SellVolume1)
call order.SellShort(0,doVolume,ReportData.SellPrice1+0.2,0,Code,Market,AcID,0)
unVolume= unVolume - doVolume
wend
Case 0'开多
KKSS = Order.Account2(19,AcID)/PMony '可开手数=可用资金/每手保证金
while KKSS < unVolume '查询可用资金是否足够,如果资金不够则继续查询,直到确认前面的平仓已经成交为止
KKSS = Order.Account2(19,AcID)/PMony
wend
while unVolume > 0
set ReportData = marketdata.GetReportData(Code, Market)
doVolume = Fun.Min(unVolume,ReportData.SellVolume1)
call order.Buy(0,doVolume,ReportData.SellPrice1+0.2,0,Code,Market,AcID,0)
unVolume= unVolume - doVolume
wend
end Select
End Sub
当调用以下几个方法时
marketdata.GetReportData
Order.HoldingInfoByCode2
Order.Account2(19)
是调用时去向服务器请求数据的?还是金字塔事先接收好,在本地读取的?