MATLAB Answers

'Unable to read beyond the end of the stream.' with ibtws

33 views (last 30 days)
Bartlomiej Winter
Bartlomiej Winter on 30 Jun 2019
Edited: Annie Leonhart on 30 Mar 2020
Hi all,
I recently purchased the trading toolbox and I've been following the tutorial on how to obtain historical market data but I always get his error message
'Unable to read beyond the end of the stream.' Hope someone can help.
Here is my code
ib = ibtws('',7497);
ibContract = ib.Handle.createContract;
ibContract.symbol = 'MSFT';
ibContract.secType = 'STK';
ibContract.exchange = 'SMART';
ibContract.currency = 'USD';
bdc = 13;
startDate = daysadd(today,-20,bdc);
endDate = daysadd(today-1,-1,bdc);

  1 Comment

Sandro Hantke
Sandro Hantke on 4 Jan 2020
Hello, have you already solved the problem? I have the same problem and no solution to it. greetings

Sign in to comment.

Answers (1)

Annie Leonhart
Annie Leonhart on 4 Jan 2020
You need to be subscribed to realtime data on IB.
You need these subscriptions on IBKR:
CBOE Realtime: $1/m
US Equity and Options Add-On Streaming Bundle: $4.50/m
US Securities Snapshot and Futures Value Bundle: $10/m

  9 Comments

Show 6 older comments
Allen Lee
Allen Lee on 30 Mar 2020
it just wont stop unless i force stop it,
i tried to change the bar size to 8 hours, so that it will fetch less data.
but still, the code wont stop
Annie Leonhart
Annie Leonhart on 30 Mar 2020
ib = ibtws('',7496);
ibForex = ib.Handle.createContract;
ibForex.symbol = 'CL';
ibForex.secType = 'FUT';
ibForex.primaryexchange = 'NYMEX';
ibForex.exchange = 'NYMEX';
ibForex.LastTradeDateOrContractMonth ='202004';
startdate = floor(now)-1;
enddate = floor(now);
barsize = '1 min';
ticktype = 'BID';
d = history(ib, ibForex, startdate, enddate, ticktype, barsize)
Try this.
If this doesn't work, you should download and use the IB Gateway and turn the log on. Then when you run it, you can see what it's doing and I can better see what's going on :)
Allen Lee
Allen Lee on 30 Mar 2020
ib = ibtws('',7496);
ibForex = ib.Handle.createContract;
ibForex.symbol = 'CL';
ibForex.secType = 'FUT';
ibForex.primaryexchange = 'NYMEX';
ibForex.exchange = 'NYMEX';
ibForex.LastTradeDateOrContractMonth ='20200421';
startdate = floor(now)-1;
enddate = floor(now);
barsize = '1 min';
ticktype = 'BID';
d = history(ib, ibForex, startdate, enddate,ticktype, barsize)
i tried this and it finally worked. thanks

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by