IBrokers - Как отправить 100000 в IBrokers:::.placeOrder?

Я использую IBrokers для открытия ордеров по AUD-USD на IDEALPRO

Вот синтаксис, который хорошо работает для меня, чтобы ПРОДАТЬ 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)

Затем я пытаюсь разместить заказ на 100 000 с помощью этого вызова API:

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

Заказ не удается.

Я вижу это в своем журнале:

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

Простой обходной путь — разместить 2 заказа на 50000.

Я ищу подсказки о других обходных путях.

Я подозреваю, что ошибка в том, что IBrokers отправляет в API 1e+05 вместо 100000.


person user3676943    schedule 22.12.2014    source источник
comment
Я только что нашел ответ через Google «отключить научную нотацию в R». Ответ таков: я вставляю эту строку синтаксиса перед вызовом options("scipen"=4). Я отвечу правильно, как только SO позволит мне.   -  person user3676943    schedule 22.12.2014
comment
Попробуйте передать строку вместо числа. то есть "100000" вместо 100000   -  person GSee    schedule 22.12.2014