[R-SIG-Finance] problem with reqMktData

Enrico Schumann e@ @ending from enrico@chum@nn@net
Thu Oct 18 13:33:08 CEST 2018


On Do, 18 Okt 2018, Stephen Choularton writes:

> Hi
>
> I can use this code to get historic data:
>
> library("IBrokers")
>
> sym1 <- 'ZS'
> mkt1 <- 'ECBOT'
> sym2 <- 'ZC'
> mkt2 <- 'ECBOT'
>
> contract1 <- twsContract(0,sym1, "CONTFUT",
> mkt1,"","","0.0","USD","","","",NULL,NULL,"0")
>
> reqHistoricalData(tws, contract1, endDateTime =
> format(Sys.Date(), "%Y%m%d 24:00:00"), duration = "3
> M")
>
> but I can't get the code below to work
>
> reqMktData(tws, contract1)
>
> nor if I put a maturity in and use the same call like this
>
> contract1 <- twsContract(0,sym1, "CONTFUT",
> mkt1,"","20181114","0.0","USD","","","",NULL,NULL,"0")
>
> or
>
> contract1 <- twsContract(0,sym1, "CONTFUT",
> mkt1,"","201811","0.0","USD","","","",NULL,NULL,"0")
>
> although TWS specified this contract matures on 14 Nov.
>
> All I get is:
>
> TWS Message: 2 1 300 Can't find EId with tickerId:1
> TWS Message: 2 1 321 Error validating request:-'bN' :
> cause - Please enter a valid security type
>
> I have tried all sorts of alternates on the date but
> can't make it work and I tried this which I found on
> the web which was claimed to work:
>
>     contract =
> twsFuture(symbol="ES",exch="GLOBEX",primary="GLOBEX",currency="USD",expiry="20171215")
>     ESHistorical = reqHistoricalData(tws, contract)
>     ESRealTime = reqMktData(tws, contract)
>
> but got a different error message:
>
> TWS Message: 2 1 300 Can't find EId with tickerId:1
> TWS Message: 2 1 200 No security definition has been found for the request
>
> Can anyone tell me where I have gone wrong with my own definition?
>
>
> ----------------------------------------------------------------------------------------------------------------------------------- 
>
> Stephen Choularton PhD, FIoD
>

I don't think you can request market data for
continuous contracts. As the IB docs say:

,----
| Continuous futures are available from the API with TWS
| v971 and higher. Continuous futures cannot be used with
| real time data or to place orders, but only for
| historical data.
`----

If I understand you correctly, you want data for
the soybeans Nov-18 future?

,----
| library("IBrokers")
| tws <- twsConnect()
| contract1 <- twsContract(
|     local = "ZS   NOV 18",
|     sectype = "FUT", 
|     exch = "ECBOT",
|     currency = "USD",
|     include_expired = "1",
|     conId = "", symbol = "",
|     primary = "", expiry = "", 
|     strike = "", right = "",
|     multiplier = "", combo_legs_desc = "", 
|     comboleg = "", secIdType = "", secId = "")
| reqMktData(tws, contract1)
`----

See the description for the contract specification here:
https://github.com/enricoschumann/IButils#finding-the-contract-specification


-- 
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net



More information about the R-SIG-Finance mailing list