2014-12-22 3 views
3

Я использую IBrokers открыть заказы на AUD-USD на IDEALPROIBrokers - Как я отправляю 100000 в IBrokers :::. PlaceOrder?

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

Далее, я пытаюсь сделать заказ на 100000 с этот вызов 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.

+0

Я только что нашел ответ через «отключить экспоненциальном в R» Google. Ответ заключается в том, что я вставляю эту строку синтаксиса, прежде чем сделать вызов «options» («scipen» = 4) «Я правильно отвечу, как только SO позволит мне. – user3676943

+0

Попробуйте передать строку вместо числа. то есть '' 100000 "' вместо '100000' – GSee

ответ

1
# 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) 
Смежные вопросы