Hi, I am writing programs to retrieve historical data for about 10000 symbols. I was told it is ok for the 500 symbol limit desktop API if the program is just to store data into the database. Currently my problem is everytime after sending six requests for total 600 symbols, I have to manually stop the program to remove those symbols from the eSignal's data manager, then restart the program to get more. I am looking for a way to automate.
What I did was the following,
1. send 100 symbol requests.
2. after receiving the data, call esignal.ReleaseSymbol(symbol), esignal.ReleaseHistory(lHandle) in onBarsReceived(Changed).
3. if without getting data for 10 minutes (as one user pointed out in another thread the program does not get historical data for some symbols promptly), call esignal.ClearSymbolCache(), esignal.ReleaseAllHistory(), esignal.ReleaseAllTimeSales()
4.Thread sleep for 5 minutes
5. repeat step 1: send another 100 symbol request
Although the program calls eSignal's release and clear calls, it seems that the data manager still keeps track of some of the symbols (not all of them, some have gotten the data and some not). I have to manually stop the program and delete these symbols from the data manager before asking for more symbols, otherwise the symbol limit error will pop up.
Restart eSignal doesn't help either. The symbols are still in the data manager.
I am pretty new to eSignal, and I was wondering if there is another way to do this.
Thanks.
Lu
What I did was the following,
1. send 100 symbol requests.
2. after receiving the data, call esignal.ReleaseSymbol(symbol), esignal.ReleaseHistory(lHandle) in onBarsReceived(Changed).
3. if without getting data for 10 minutes (as one user pointed out in another thread the program does not get historical data for some symbols promptly), call esignal.ClearSymbolCache(), esignal.ReleaseAllHistory(), esignal.ReleaseAllTimeSales()
4.Thread sleep for 5 minutes
5. repeat step 1: send another 100 symbol request
Although the program calls eSignal's release and clear calls, it seems that the data manager still keeps track of some of the symbols (not all of them, some have gotten the data and some not). I have to manually stop the program and delete these symbols from the data manager before asking for more symbols, otherwise the symbol limit error will pop up.
Restart eSignal doesn't help either. The symbols are still in the data manager.
I am pretty new to eSignal, and I was wondering if there is another way to do this.
Thanks.
Lu
Comment