请教老师们,我在大QMT下的VBA组合模型,仿造系统中“不使用扩展数据的组合模型”改写,除加入下单函数PASSORDER()下其它基本未变。经模拟测试,组合模型买卖条件符合要求,均能进入大QMT的买卖面板中,但针对组合模型中符合条件的单股下单用PASSORDER()函数时,无论模拟还是实盘,均不能正常工作,是否我的PASSORDER()参数给得有问题,如何纠正,才能让其正常下单?代码如下:
ORDERTYPE:=1123;
ACCOUNTID:=ACCOUNT();//…………填写对应下单账号ACCOUNT()
VOLUME:=0.4;
//计算单债条件
x:=stkindi($ZZZ, '择时单债新平滑', 0, 3);
hs300c := callstock('sh000300', vtclose, 3, 0);
//卖出
for stock in $ZZZ do
begin
stockInfo := getStockInfo(stock,0);
//持仓个股出现卖点,则卖出
//非持仓个股出现买点,则放入买入备选
if stockInfo.buy = 1 and not(isStockInHolding(stock)) then begin
groupPossibleBuy(stock);
if currHolding < maxHolding then begin
groupBuy(stock);
ORDERCODE:=STRRIGHT(stock,6);//…………取得当前下单代码
P买:=PASSORDER(23,ORDERTYPE,ACCOUNTID,ORDERCODE,5,-1,VOLUME);
weight := getWeight(stock);
currHolding := currHolding + 1;
dc[stock] := hs300c;
end
end
if stockInfo.sell = 1 and isStockInHolding(stock) then begin
stockHolding := getHoldingInfo(stock);
succ := groupsell(stock);
if succ then begin
ORDERCODE:=STRRIGHT(stock,6);//…………取得当前下单代码
P卖:=PASSORDER(24,ORDERTYPE,ACCOUNTID,ORDERCODE,5,-1,1);
weight := getWeight(stock);
currHolding := currHolding - 1;
thisProfit := (stockInfo.price - stockHolding.buyPrice) / stockHolding.buyPrice * weight;
profit := profit + thisProfit;
thishsprofit := (hs300c - dc[stock]) / dc[stock] * weight;
hs300 := hs300 + thishsprofit;
end
end
end