Using OnMarketData() on Historical data with a recording engine - NinjaTrader Programming | futures io social day trading
futures io futures trading


Using OnMarketData() on Historical data with a recording engine
Updated: Views / Replies:28,305 / 115
Created: by gomi Attachments:23

Welcome to futures io.

(If you already have an account, login at the top of the page)

futures io is the largest futures trading community on the planet, with over 90,000 members. At futures io, our goal has always been and always will be to create a friendly, positive, forward-thinking community where members can openly share and discuss everything the world of trading has to offer. The community is one of the friendliest you will find on any subject, with members going out of their way to help others. Some of the primary differences between futures io and other trading sites revolve around the standards of our community. Those standards include a code of conduct for our members, as well as extremely high standards that govern which partners we do business with, and which products or services we recommend to our members.

At futures io, our focus is on quality education. No hype, gimmicks, or secret sauce. The truth is: trading is hard. To succeed, you need to surround yourself with the right support system, educational content, and trading mentors Ė all of which you can find on futures io, utilizing our social trading environment.

With futures io, you can find honest trading reviews on brokers, trading rooms, indicator packages, trading strategies, and much more. Our trading review process is highly moderated to ensure that only genuine users are allowed, so you donít need to worry about fake reviews.

We are fundamentally different than most other trading sites:
  • We are here to help. Just let us know what you need.
  • We work extremely hard to keep things positive in our community.
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts.
  • We firmly believe in and encourage sharing. The holy grail is within you, we can help you find it.
  • We expect our members to participate and become a part of the community. Help yourself by helping others.

You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

Reply
 23  
 
Thread Tools Search this Thread
 

Using OnMarketData() on Historical data with a recording engine

  #11 (permalink)
Elite Member
Sydney, NS
 
Futures Experience: Intermediate
Platform: Ninja
Broker/Data: Zen-Fire
Favorite Futures: TF,S,GC
 
cclsys's Avatar
 
Posts: 607 since Nov 2009
Thanks: 248 given, 379 received

Gomi or anyone else. I have tried to apply the Recorder to EdsVolPriceBars but it won't accept the GomOnMarketUpdate so I am stumped. It runs as is (without it inserted) but doesn't record.

The relevant line (I think) is:

"
protected override void OnMarketData(MarketDataEventArgs e)

"

I have tried putting in:
"
protected override void GomOnMarketData(MarketDataEventArgs e)
"
to no avail.

Any suggestions?

Of old the skilled first made themselves invincible to await the enemy's vincibility.
Invincibility lies in oneself. Vincibility lies in the enemy.
Thus the skilled can make themselves invincible.
They cannot cause the enemy's vincibility.
Thus it is said: 'Victory can be known; it cannot be made.'
Attached Files
Register to download File Type: zip EDSVolPriceAsh.zip (13.6 KB, 42 views)
Reply With Quote
The following user says Thank You to cclsys for this post:
 
  #12 (permalink)
Elite Member
Paris
 
Futures Experience: None
Platform: NinjaTrader
 
Posts: 1,173 since Oct 2009
Thanks: 227 given, 4,089 received

Method signature is different : it's

protected virtual void GomOnMarketData(TickTypeEnum tickType,double price,int volume,bool firstTickOfBar)

ticktypeenum is
{ BelowBid,AtBid,BetweenBidAsk,AtAsk,AboveAsk,Unknown}

Reply With Quote
 
  #13 (permalink)
Elite Member
Sydney, NS
 
Futures Experience: Intermediate
Platform: Ninja
Broker/Data: Zen-Fire
Favorite Futures: TF,S,GC
 
cclsys's Avatar
 
Posts: 607 since Nov 2009
Thanks: 248 given, 379 received


Thanks.

(wow. what a fast response!)

But what do I do with TickTypeEnum. Where does it go?

Of old the skilled first made themselves invincible to await the enemy's vincibility.
Invincibility lies in oneself. Vincibility lies in the enemy.
Thus the skilled can make themselves invincible.
They cannot cause the enemy's vincibility.
Thus it is said: 'Victory can be known; it cannot be made.'
Reply With Quote
 
  #14 (permalink)
Elite Member
Paris
 
Futures Experience: None
Platform: NinjaTrader
 
Posts: 1,173 since Oct 2009
Thanks: 227 given, 4,089 received

you have to do your bid/ask stuff with it.

example :

 
Code
int delta=0;
            
if ((tickType==TickTypeEnum.BelowBid)||(tickType==TickTypeEnum.AtBid))
     delta =-volume;
else if ((tickType==TickTypeEnum.AboveAsk)||(tickType==TickTypeEnum.AtAsk))
      delta=volume;

Reply With Quote
 
  #15 (permalink)
Elite Member
Sydney, NS
 
Futures Experience: Intermediate
Platform: Ninja
Broker/Data: Zen-Fire
Favorite Futures: TF,S,GC
 
cclsys's Avatar
 
Posts: 607 since Nov 2009
Thanks: 248 given, 379 received

Thanks, Gomi. I'll see if I can work that sort of thing into the existing code, but I think it's going to be beyond my paygrade since his code is for a different enum altogether and I doubt I'll be able to transliterate it all.

Have had a real hard time with the recording engine in general with your indies. Sometimes it seems to work and others it doesn't but I haven't been sharp enough to notice what the difference in my settings is between one and t'other. I hate losing the plots if/when I make a change to a chart.

Of old the skilled first made themselves invincible to await the enemy's vincibility.
Invincibility lies in oneself. Vincibility lies in the enemy.
Thus the skilled can make themselves invincible.
They cannot cause the enemy's vincibility.
Thus it is said: 'Victory can be known; it cannot be made.'
Reply With Quote
 
  #16 (permalink)
Trading Apprentice
Portland, Oregon
 
Futures Experience: Beginner
Platform: Ninjatrader
 
Posts: 27 since Jan 2010
Thanks: 3 given, 2 received

Is there an indicator that can be run on historical data which simply dumps every tick into a text file? Basically looking for a way to extract the market data outside of Ninja's proprietary logging format. If so, what's the granularity/resolution of the timestamps on the ticks? Are the ticks raw of aggregated?

Reply With Quote
 
  #17 (permalink)
Elite Member
Paris
 
Futures Experience: None
Platform: NinjaTrader
 
Posts: 1,173 since Oct 2009
Thanks: 227 given, 4,089 received

You must be sure you have "Recording OK".
And remember Gompackage1.1 is very more robust to "changes to the chart"



cclsys View Post
Thanks, Gomi. I'll see if I can work that sort of thing into the existing code, but I think it's going to be beyond my paygrade since his code is for a different enum altogether and I doubt I'll be able to transliterate it all.

Have had a real hard time with the recording engine in general with your indies. Sometimes it seems to work and others it doesn't but I haven't been sharp enough to notice what the difference in my settings is between one and t'other. I hate losing the plots if/when I make a change to a chart.


Reply With Quote
 
  #18 (permalink)
Elite Member
Sydney, NS
 
Futures Experience: Intermediate
Platform: Ninja
Broker/Data: Zen-Fire
Favorite Futures: TF,S,GC
 
cclsys's Avatar
 
Posts: 607 since Nov 2009
Thanks: 248 given, 379 received

Gomi, thanks for reply. Just want to make something clear: your work on those indies was exceptional. The fact that I can't play with certain aspects might be personally frustrating, but I do not expect you to be able to provide customer service for them! That said, if anyone else wants to get EDS pricevolume bars 'Gomified' (i.e. recordable), feel free! Definitely beyond my pay grade programming-wise.

As to the recording, Gomi, I have package 1.1 but it seems to elude me the recording business. It's no big deal. Because I am running 32 bit OS it seems that using these indies for more than a few (2-3) hours is not advisable anyway because of memory/processing problems so I have reluctantly phased out of loading them and am back to more simple CalconClose indies which are less stress on the system (but which also seem to start overtaxing NT after 4-6 hours). One day when I grow up and have 24 GIG ram.....

Of old the skilled first made themselves invincible to await the enemy's vincibility.
Invincibility lies in oneself. Vincibility lies in the enemy.
Thus the skilled can make themselves invincible.
They cannot cause the enemy's vincibility.
Thus it is said: 'Victory can be known; it cannot be made.'
Reply With Quote
 
  #19 (permalink)
Site Administrator
Manta, Ecuador
 
Futures Experience: Advanced
Platform: My own custom solution
Favorite Futures: E-mini ES S&P 500
 
Big Mike's Avatar
 
Posts: 46,238 since Jun 2009
Thanks: 29,350 given, 83,218 received

I'm just now having some time to start working with this.

I have a question.

We can use this for backtesting yes? So for instance, if I normally want to do a MarketIfTouch scenario and had to use OnMarketData(), I can now use your method, and provided the recorded data is present on my system, I can recreate the proper events even during a backtest, yes?

If so, I need to setup another VM and start recording a bunch of instruments using GomRecorder... so that in a year I can use this

Mike

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.

Reply With Quote
 
  #20 (permalink)
Elite Member
uk
 
Futures Experience: Intermediate
Platform: ninja
Broker/Data: amp
Favorite Futures: ES
 
Posts: 164 since Aug 2009
Thanks: 102 given, 80 received


Hi Gom. I've seen a few screenshots of people using 'gomvolumeladder'. I cant seem to find it though. Is it in the ninjatrader thread you linked to in your OP somewhere? thanks

Reply With Quote

Reply



futures io > > > > > Using OnMarketData() on Historical data with a recording engine

Thread Tools Search this Thread
Search this Thread:

Advanced Search



Upcoming Webinars and Events (4:30PM ET unless noted)

Linda Bradford Raschke: Reading The Tape

Elite only

Adam Grimes: TBA

Elite only

NinjaTrader: TBA

January

Ran Aroussi: TBA

Elite only
     

Similar Threads
Thread Thread Starter Forum Replies Last Post
NT Providing Bad Price & Volume Data in OnMarketData!!! RJay NinjaTrader Programming 18 June 5th, 2017 10:53 AM
Historical CL Tick Data and Minute Data Big Mike The Elite Circle 112 July 26th, 2014 07:07 PM
BuySellVolumeTotalG39 Lost data recording ability JohnPS The Elite Circle 2 April 26th, 2011 12:30 AM
Historical Tick Data togier Reviews of Brokers and Data Feeds 2 December 3rd, 2010 05:09 PM
Anyone not receive pre-market data while recording with NinajTrader via IQFeed today? richw Reviews of Brokers and Data Feeds 1 May 10th, 2010 08:48 PM


All times are GMT -4. The time now is 02:38 AM.

Copyright © 2017 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts
Page generated 2017-12-12 in 0.12 seconds with 20 queries on phoenix via your IP 54.90.207.75