我使用的包是:IBrokers。当我请求历史数据时,它对我很有用。此外,对reqAccountUpdates()的调用运行良好。
我对这个脚本有问题:
# 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()会返回一个不够高的id。然后,我会使用它和placeOrder()将失败。所以,我调用reqIds(),然后使用Sys.time()给我一个id,这个ID比我使用的最后一个ID要大。
另一个问题可能是我从PowerPoint中复制的一些代码文本。一些代码字符可能已经损坏。
发布于 2014-10-31 23:34:47
主要问题是秩序。
我需要小心我是如何生成有序的。
另外,我可能从一个有例子的powerpoint中读到了一些不好的角色。
我发布了一些代码,这些代码可以在这个线程中的注释中使用。
丹
https://stackoverflow.com/questions/26644845
复制相似问题