2014-10-30 91 views
0

我使用的包裹: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) 

有時候上面的腳本工作好。通常雖然失敗。當它失敗時,它似乎連接好。

然後我看到這在我的交易平臺控制檯:

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。

另一個問題可能是我從PowerPoint中複製出來的一些代碼文本。一些代碼字符可能已經損壞。

+2

你能回答你自己的問題,而不是編輯問題的答案嗎? (我不記得你目前的聲望級別是否禁止你這麼做)。 – 2014-10-30 21:31:38

回答

0

主要問題是orderid。

我需要小心如何生成orderid。

另外,我可能已經從一個有示例的powerpoint preso中挖掘出糟糕的角色。

我發表了一些代碼,它在這個線程的評論中起作用。

+0

該代碼應該發佈在此答案中,而不是在問題中。這不是一個論壇。 – Jamal 2014-10-31 23:57:02