softwarespartan / IB4m

Interactive Brokers API for Matlab
GNU General Public License v2.0
62 stars 21 forks source link

No method 'reqMktData' #83

Closed purchagent closed 4 years ago

purchagent commented 4 years ago

this is the error message I am receiving when trying to get real-time data without any delay: session.eClientSocket.reqMktData(reqId,contract,genericTickList,false,false,[]); No method 'reqMktData' with matching signature found for class 'com.ib.client.EClientSocket'.

here is the contract info used: contract = com.ib.client.Contract(); contract.symbol('ES') contract.exchange('GLOBEX'); contract.currency('USD'); contract.secType('FUT'); contract.lastTradeDateOrContractMonth('201912')

my input for the tick type was: genericTickList = [233]; Is this the correct tick type?

I decompiled eClientSocket but did not see a method for reqMktData maybe is called through this line? public class EClientSocket extends EClient implements EClientMsgSink

thanks

Despair2000 commented 4 years ago

The method is there. This error message you usually get when you have not specified the expected number of arguments. My first guess would be that your ticklish argument is wrong. Try replacing it with just ''.

purchagent commented 4 years ago

contract = com.ib.client.Contract(); %contract.symbol('ES') contract.exchange('GLOBEX'); contract.currency('USD'); contract.secType('FUT'); %contract.expiry = ('201912'); %contract.expiry = "201912"; contract.LocalSymbol = "ESZ9"; No public field LocalSymbol exists for class com.ib.client.Contract.

This is the error message this morning when trying to get the prices Not sure why it found the contract yesterday but not today I tried inputting the arguments for the contract multiple ways but still received the same error This is interactive's page for the contract types: https://interactivebrokers.github.io/tws-api/basic_contracts.html

softwarespartan commented 4 years ago

I think contract.LocalSymbol = "ESZ9" is not syntactically correct. For IB4m (i.e. Java), probably something like:

contract.localSymbol("ESZ9")

BTW, in the IB API docs, be sure to select the "Java" tab for code snippets.