IBrokers – ¿Cómo envío 100000 a IBrokers :::. PlaceOrder?

Estoy usando IBrokers para abrir pedidos para AUD-USD en IDEALPRO

Aquí hay una syntax que me funciona bien para VENDER 90,000:

# myscript.r .libPaths("rpackages") library(IBrokers) myconid = 3 twsobj = twsConnect(myconid) myaud = twsCurrency("AUD",currency="USD",exch="IDEALPRO",primary="",strike="0.0",right="",local="",multiplier="",include_expired="0",conId=myconid) Sys.sleep(2) myorderid = as.integer(reqIds(twsobj)) print(myorderid) Sys.sleep(2) myorderid = as.integer(difftime(Sys.time(), "2014-10-30", units = "secs")) Sys.sleep(2) IBrokers:::.placeOrder(twsobj, myaud, twsOrder(myorderid,"SELL", 90000, "MKT")) Sys.sleep(4) twsDisconnect(twsobj) 

A continuación, trato de hacer un pedido de 100,000 con esta llamada a la API:

 IBrokers:::.placeOrder(twsobj, myaud, twsOrder(myorderid,"SELL", 100000, "MKT")) 

La orden falla.

Veo esto en mi registro:

 java.lang.NumberFormatException: For input string: "1e+05" 

Una solución simple es realizar 2 pedidos por 50000.

Estoy buscando pistas sobre otras soluciones.

Sospecho que el error es que IBrokers está enviando 1e + 05 a la API en lugar de 100000.

 # myscript.r .libPaths("rpackages") library(IBrokers) myconid = 3 twsobj = twsConnect(myconid) myaud = twsCurrency("AUD",currency="USD",exch="IDEALPRO",primary="",strike="0.0",right="",local="",multiplier="",include_expired="0",conId=myconid) Sys.sleep(2) myorderid = as.integer(reqIds(twsobj)) print(myorderid) Sys.sleep(2) myorderid = as.integer(difftime(Sys.time(), "2014-10-30", units = "secs")) Sys.sleep(2) # my workaround: options("scipen"=4) IBrokers:::.placeOrder(twsobj, myaud, twsOrder(myorderid,"SELL", 190000, "MKT")) Sys.sleep(4) twsDisconnect(twsobj) 
Intereting Posts