Using OnMarketData() on Historical data with a recording engine
Just wanted to say if you need to be able to call OnMarketData() on historical charts, you can use the GomRecorderIndicator like a base indicator you derive your indicator from.
This base indicator includes a recording/replay engine that acts like a virtual tick data source on historical data.
Then you only have to use GomInitialize, GomOnMarketData and GomOnBarUpdate instead of NT standard ones and you have an indicator that receives historical (and real time) tick info.
It was originally developped with GomCD indicator to access historical Cumulative Delta. I finally managed to make a package out of it ; it contains a very quickly converted version of VolumeProfile that shows how you can get a historical Volume Profile.
Due to time constraints, please do not PM me if your question can be resolved or answered on the forum.
Need help? 1) Stop changing things. No new indicators, charts, or methods. Be consistent with what is in front of you first. 2) Start a journal and post to it daily with the trades you made to show your strengths and weaknesses. 3) Set goals for yourself to reach daily. Make them about how you trade, not how much money you make. 4) Accept responsibility for your actions. Stop looking elsewhere to explain away poor performance. 5) Where to start as a trader? Watch this webinar and read this thread for hundreds of questions and answers. 6) Help using the forum? Watch this video to learn general tips on using the site.
If you want to support our community, become an Elite Member.
Gomi: are you saying you can use some of your code in other indicators so that they too can record? If so, could you please provide a snippet example so I can understand. Or are you saying that if you run Gom Recorder in a workspace that all other indicators can access the file somehow? (Please excuse my confusion.)
Also: is there anywhere where your indicators are explained, i.e. what are they saying? Or is it just something you figure out intuitively by using them regularly. For example: I do not really understand 'delta volume' yet. Clearly I can do some study using Google etc. but perhaps you could point me to a thread where you discussed this in the context of your indicators, or perhaps you know of a good basic source for me to start with. Now that I have your tools, I want to spend some time getting into market profile type stuff. In fact, the reason I stumbled on this forum a short while ago was because of the thread about 'using volume in trading' which is what interests me most right now.
Yes. Basically you only have to derive your indicator from GomRecorderIndicator and use GomInitialize, GomOnMarketData and GomOnBarUpdate and you're done. That's how I converted NT's VolumeProfile into GomVolumeProfile
You can check GomVWAP, it's very basic
All indicators derived from GomRecorder share the same files. You have to set write=true on the one that will have writing privileges, and all the others can read from the file
All the stuff have more or less to do with the delta calculation. You can check fulcrumtrader on google for info on using cumulative delta, and of course market delta for ladder stuff.
The following 3 users say Thank You to gomi for this post:
A quick question on the difference between the two onMarket methods. What is the functional difference between the two - does the first one have +/- value indicated only where as the second method has the tick timestamp? - I guess I am trying to understand the functional difference?
With the withtime method, you get the time of the tick with the other data .
The recorder bars are reconstructed using the close time of the bar, so the recorder engine sends all the ticks that have time stamp < time. So for ninja, all ticks arrive at time. You can use the withtime method if you need more detailed tick time information.
I am sure that I am missing something basic, but I have tried converting a indicator I use today, and it seems to function fine (it calculates, displays on charts as expected), but I get no data file created. I see "Recording Binary OK" but no file is created in the GOMFOLDER path specified in my environment settings (personal env).
What else needs to be done or looked at to evaluate?
(BTW - I implemented indicator using the GomRecorderIndicator as you describe with the associated changes to the methods).