R IBrokers (Interactive Brokers API)

2019-06-11 04:53发布

问题:

Anyone has any idea how to use algoStrategy and algoParams in IBrokers package? I tried creating a list for algoParams but in vain.

For example:

library(IBrokers)

twsOrder(reqIds(twsconn), 
         "BUY", 
         "10", 
         "MKT", 
         transmit = TRUE, 
         algoStrategy = "VWAP",
         algoParams = list(maxPctVol = "0.2", startTime = "13:00:00 HKT", 
                           endTime = "13:30:00 HKT", allowPastEndTime = 0, 
                           noTakeLiq = 0, speedUp = 0, monetaryValue = ""))

My orders turn out to be Market Orders. Thus, I assume my input into algoStrategy and algoParams have been ignored. I will be grateful if anyone here can give a helping hand. Thank you!

回答1:

The function placeOrder in IBrokers isn't implementing algoStrategy and algoParams. If you check the code of the function :

 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
             )

The end of the function has to be modified :

  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("")
  )

And the parameters should be similar to : algoParams=c("6","maxPctVol","0.2","startTime","08:50:00 GMT","endTime","allowPastEndTime","1","noTakeLiq","1","monetaryValue","100000") where the first character is the number of parameters that are being passed to the algo strategy.