3
我使用IBrokers上打开IDEALPROIBrokers - 我如何向IBrokers :::。placeOrder发送100000?
这里澳元对美元的订单是语法,我能很好地卖出90000:
# 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)
接下来,我尝试把订购100,000此API调用:
IBrokers:::.placeOrder(twsobj, myaud, twsOrder(myorderid,"SELL", 100000, "MKT"))
订单失败。
我看到在我的日志:
java.lang.NumberFormatException: For input string: "1e+05"
一个简单的解决方法是将2个订单50000
我在寻找其他的解决方法的线索。
我怀疑这个错误是IBrokers正在发送1E + 05的API,而不是100000
我刚刚发现通过谷歌“R中禁用科学记数法”的答案。答案是,我在调用'options(“scipen”= 4)之前插入了这一行语法'一旦SO允许我,我会正确回答。 – user3676943
尝试传递一个字符串而不是数字。即“100000”而不是“100000” – GSee