Я пользуюсь пакетом: IBrokers
. Это хорошо работает для меня, когда я запрашиваю исторические данные. Также звонок reqAccountUpdates()
работает хорошо.R Пакет IBrokers placeOrder() не работает
У меня возникли проблемы с этим сценарием:
# myscript.r
.libPaths("rpackages")
library(IBrokers)
tws2 = twsConnect(2)
print('Attempting BUY')
mytkr = twsFuture("ES","GLOBEX","201412")
myorderid = sample(1001:3001, 1)
IBrokers:::.placeOrder(tws2, mytkr, twsOrder(myorderid, "BUY", "1", "MKT"))
twsDisconnect(tws2)
Иногда выше скрипт работает нормально. Обычно это терпит неудачу. Когда он терпит неудачу, он, кажется, подключается нормально.
Тогда я вижу это в моей TWS консоли:
03:47:45:581 JTS-EServerSocket-290: [2:47:71:1:0:0:0:ERR] Message type -1. Socket I/O error -
03:47:45:581 JTS-EServerSocket-290: Anticipated error
jextend.d: Socket I/O error -
at jextend.sc.b(sc.java:364)
at jextend.ch.sb(ch.java:1534)
at jextend.ch.run(ch.java:1390)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at jextend.xh.d(xh.java:45)
at jextend.sc.c(sc.java:579)
at jextend.sc.r(sc.java:227)
at jextend.af.a(af.java:232)
at jextend.sc.f(sc.java:650)
at jextend.pd.a(pd.java:822)
at jextend.sc.b(sc.java:358)
... 3 more
03:47:45:583 JTS-EServerSocket-290: [2:47:71:1:0:0:0:ERR] Socket connection for client{2} has closed.
03:47:45:583 JTS-EWriter14-291: [2:47:71:1:0:0:0:ERR] Unable write to socket client{2} -
03:47:45:584 JTS-EServerSocketNotifier-288: Terminating
Можете ли вы предложить какие-либо идеи о том, как вы могли бы бороться с этой проблемой?
одна часть информации:
Я думаю, что вызов reqIds()
может быть необходимым. Иногда reqIds()
вернул идентификатор, который был недостаточно высоким. Тогда я буду использовать его, и placeOrder()
потерпит неудачу. Итак, я звоню reqIds()
, но затем используйте Sys.time()
, чтобы дать мне идентификатор, который больше, чем последний идентификатор, который я использовал.
Другой проблемой может быть некоторый код-код, который я скопировал из PowerPoint. Некоторые из кодовых символов могут быть повреждены.
Можете ли вы ответить на свой вопрос, а не редактировать ответ на вопрос? (Я не помню, если ваш текущий уровень репутации запрещает вам делать это). –