[R-SIG-Finance] ibrokers - callback - example from Jeff Ryan's slides

Jeff Ryan jeff.a.ryan at gmail.com
Sat Dec 4 16:43:33 CET 2010


Sorry I don't have the time to walk you through this, but for starters you can just remove the second connection from the mix. 

The general placement of the logic should be correct though. 

Jeff

Jeffrey Ryan    |    Founder    |    jeffrey.ryan at lemnica.com

www.lemnica.com

On Dec 4, 2010, at 4:07 AM, Stephen Choularton <stephen at organicfoodmarkets.com.au> wrote:

> I'm trying to make this work (its based on an example from Jeff Ryan's slides):
> 
> library(IBrokers)
> 
> 
> myCALLBACK <-
> function(twsCon, eWrapper, timestamp, file, playback = 1, ...) {
>    twsOC <- twsConnect(2) # our order connection
>    ocWrapper <- eWrapper(TRUE)
>    traded <- FALSE
>    while (TRUE) {
>        cons <- socketSelect(list(con, twsOC[[1]]), FALSE, 0.01)
>        if(cons[1]) { #data
>            curMsg <- readBin(con, character(), 1)
>            if (!is.null(timestamp)) {
>                processMsg(curMsg, con, eWrapper, format(Sys..time(), timestamp), file, ...)
>            } else {
>                processMsg(curMsg, con, eWrapper, timestamp, file, ...)
>            }
>        } else if(cons[2]) {
>            curMsg <- readBin(twsOC[[1]], character(), 1)
>            if (!is.null(timestamp)) {
>                processMsg(curMsg, twsOC[[1]], ocWrapper, format(Sys..time(), timestamp), file, ...)
>            } else {
>                processMsg(curMsg, twsOC[[1]], ocWrapper, timestamp, file, ...)
>            }
>        } # TRADE LOGIC HERE
>        curBID <- as.numeric(eWrapper$.Data$data[[1]][3])
>        if(!traded && !is.na(curBID) && curBID > 141.00) {
> 
>            print("this is the order line")
>            # IBrokers:::.placeOrder(twsOC, twsEquity("CBA","ASX","AUD"), twsOrder(1053, "BUY", "0", "MKT"))
>            traded <- TRUE
>        }
>    }
> }
> 
> con = twsConnect(1)
> 
> 
> 
> reqMktData(con, twsEquity("GOOG"), CALLBACK=myCALLBACK)
> 
> but I get:
> 
> Error in socketSelect(list(con, twsOC[[1]]), FALSE, 0.01) :
>  invalid connection
> 
> Does anyone know what I am doing wrong? Or does anyone have a working example?
> 
> my  sessionInfo() is
> R version 2.11.1 (2010-05-31)
> i386-pc-mingw32
> 
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> 
> other attached packages:
> [1] IBrokers_0.2-9 xts_0.7-5      zoo_1.6-4
> 
> loaded via a namespace (and not attached):
> [1] grid_2.11.1    lattice_0.18-8
> 
> 
> 
> -- 
> Stephen Choularton Ph.D., FIoD
> 
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.



More information about the R-SIG-Finance mailing list