IBrokers 中的 placeOrder 函数没有实现 algoStrategy 和 algoParams。如果您检查函数的代码:
order <- c(order,
"", # DEPRECATED FIELD
Order$discretionaryAmt,
Order$goodAfterTime,
Order$goodTillDate,
Order$faGroup,
Order$faMethod,
Order$faPercentage,
Order$faProfile,
Order$shortSaleSlot,
Order$designatedLocation,
Order$ocaType,
Order$rule80A,
Order$settlingFirm,
Order$allOrNone,
Order$minQty,
Order$percentOffset,
Order$eTradeOnly,
Order$firmQuoteOnly,
Order$nbboPriceCap,
Order$auctionStrategy,
Order$startingPrice,
Order$stockRefPrice,
Order$delta,
Order$stockRangeLower,
Order$stockRangeUpper,
Order$overridePercentageConstraints,
Order$volatility,
Order$volatilityType,
Order$deltaNeutralOrderType,
Order$deltaNeutralAuxPrice,
Order$continuousUpdate,
Order$referencePriceType,
Order$trailStopPrice,
Order$scaleInitLevelSize,
Order$scaleSubsLevelSize,
Order$scalePriceIncrement,
Order$clearingAccount,
Order$clearingIntent,
Order$notHeld,
"0", # Order$underComp .. not yet supported by IBrokers
"", # Order$algoStrategy .. not yet supported by IBrokers
Order$whatIf
)
必须修改函数的结尾:
order <- c(order,
Order$clearingAccount,
Order$clearingIntent,
Order$notHeld,
"0", #underComp # FALSE #NEW but not using it
Order$algoStrategy,
Order$algoParams,
Order$whatIf, # "0",
"" # miscOptionsStr("")
)
参数应该类似于 :
algoParams=c("6","maxPctVol","0.2","startTime","08:50:00 GMT","endTime","allowPastEndTime","1","noTakeLiq","1","monetaryValue","100000")
其中第一个字符是传递给算法策略的参数数量。