How to use volume in your trading - Traders Hideout | futures io social day trading
futures io futures trading


How to use volume in your trading
Updated: Views / Replies:173,444 / 677
Created: by cunparis Attachments:203

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
 203  
 
Thread Tools Search this Thread
 

How to use volume in your trading

  #371 (permalink)
Trade with the flow
Paris, France
 
Futures Experience: Advanced
Platform: Market Delta & Ninjatrader
Favorite Futures: ES
 
cunparis's Avatar
 
Posts: 2,563 since Jun 2009
Thanks: 1,157 given, 2,032 received


Lynx21 View Post
Personally, I would say don't get to carried away with volume. Traders tend to fall into two camps in regards to volume, those that love it and those that think it's useless. I fall into the latter... For every buyer, there has to be a seller, volume is just the the unit of a trade taken place, it gives you no other information. If price is going down your indicators will tell you it's selling volume, if price is going up then your indicators will tell you that it's buying volume. That's pretty useless really because you have no idea on what side the trading is actually take place.

If a trade is at the ask, can we not say that the buyer conceded to the seller's price? Is this not useful information?

Reply With Quote
The following user says Thank You to cunparis for this post:
 
  #372 (permalink)
Senior Member
sea side
 
Futures Experience: None
Platform: NinjaTrader
 
Posts: 217 since Dec 2009
Thanks: 86 given, 25 received

Lynx,

But a lot of time when price on heavy volume is up (or vice verse), it's just place where big/smart money reversed, i.e. already sold their longs to those who are buying and sometimes in addition to that sold also their newly established shorts again to those who continue to buy believing market is going to go higher. Is that correct ?

Krgds,
Andrew


Lynx21 View Post
A good example would be heavy volume as price is moving it... if you start trying to buy a break on this, you leave yourself in a position of a strong possiblity of being stuck long in the market by buying the top of the move. Never be the first to buy, and never be the first to sell


Reply With Quote
 
  #373 (permalink)
Elite Member
Portland Oregon, United States
 
Futures Experience: Beginner
Platform: Ninjatrader®
Broker/Data: CQG, Kinetick
Favorite Futures: Gameplay Klownbine® Trading of Globex
 
Zondor's Avatar
 
Posts: 1,327 since Jul 2009
Thanks: 1,246 given, 2,635 received

Converting Level II Bid Offer Indicators to work in NT7


I was getting irksome runtime errors when trying to convert some NT6.5 Level II volume indicators to work with NT7. Here is the solution.

First of all, I cannot recommend highly enough the use of "try catch final' error trapping during development. Diagnostic Print statements can eventually be commented out, but the error traps WITH ERROR RECOVERY should be left in the production version unless someone can show me that they cause a performance penalty. Error trapping was a big help to me in solving this problem.

Typically we will put the Level 2 data from OnMarketDepth events into a list. But this will not work the same in NT7 as in NT6.5.
  • In NT6.5, the rows.insert method seems to implicitly add a row to the list if needed to accommodate the item that is being inserted.
  • In NT7, this is not the case. It seems that you must explicitly create enough row objects to hold anything that you would want to insert. Inserts will fail if e.position is less than rows. count. An index out of range error will be generated. If it is not trapped and handled, the indicator will crash.

The necessary number of rows can be created by a routine that calls the rows.Add method within OnMarketDepth, This should either run only once upon program startup, or should test to make sure there are no more than the required number of rows before it adds any more. You don't want the row.Count to inflate with a bunch of empty rows. It's a lot easier to add them than to remove them.

Meanwhile in OnMarketDepth and graphics plot routines that use Level II data, it is a very wise idea to trap and handle errors using try{ catch{} and to put a return statement in the catch, better to miss a few ticks of data than to crash the indicator.


Last edited by Zondor; January 15th, 2010 at 01:37 PM.
Reply With Quote
The following 3 users say Thank You to Zondor for this post:
 
  #374 (permalink)
Elite Member
SE-Asia
 
Futures Experience: Intermediate
Platform: NinjaTrader
Broker/Data: Amp
Favorite Futures: ES
 
Posts: 141 since Jun 2009
Thanks: 57 given, 114 received


Zondor View Post
was getting irksome runtime errors when trying to convert some NT6.5 Level II volume indicators to work with NT7. Here is the solution.

First of all, I cannot recommend highly enough the use of "try catch final' error trapping during development. Diagnostic Print statements can eventually be commented out, but the error traps WITH ERROR RECOVERY should be left in the production version unless someone can show me that they cause a performance penalty. Error trapping was a big help to me in solving this problem.

Typically we will put the Level 2 data from OnMarketDepth events into a list. But this will not work the same in NT7 as in NT6.5.

I
  • n NT6.5, the rows.insert method seems to implicitly add a row to the list if needed to accommodate the item that is being added.
  • In NT7, this is not the case. It seems that you must explicitly create enough row objects to hold anything that you would want to insert. Inserts will fail if e.position is less than rows. count. An index out of range error will be generated. If it is not trapped and handled, the indicator will crash.

The necessary number of rows can be created by a routine that calls the rows.Add method within OnMarketDepth, This should either run only once upon program startup, or should test to make sure there are no more than the required number of rows before it adds any more. You don't want the row.Count to inflate with a bunch of empty rows. It's a lot easier to add them than to remove them.

Meanwhile in OnMarketDepth and graphics plot routines that use Level II data, it is a very wise idea to trap and handle errors using try{ catch{} and to put a return statement in the catch, better to miss a few ticks of data than to crash the indicator.

That explain the bend knees of my system, can you post a simple strip down example of what you point in here.

Reply With Quote
 
  #375 (permalink)
Elite Member
Portland Oregon, United States
 
Futures Experience: Beginner
Platform: Ninjatrader®
Broker/Data: CQG, Kinetick
Favorite Futures: Gameplay Klownbine® Trading of Globex
 
Zondor's Avatar
 
Posts: 1,327 since Jul 2009
Thanks: 1,246 given, 2,635 received

OnMarketDepth() event handler for NT7

I will post this soon. Needs to be refined a little.

Reply With Quote
 
  #376 (permalink)
Elite Member
Portland Oregon, United States
 
Futures Experience: Beginner
Platform: Ninjatrader®
Broker/Data: CQG, Kinetick
Favorite Futures: Gameplay Klownbine® Trading of Globex
 
Zondor's Avatar
 
Posts: 1,327 since Jul 2009
Thanks: 1,246 given, 2,635 received

OnMarketDepth() Event Handler for NT7

This seems to work pretty good. Try it and let me know how it works for you!

I recommend that you also add error traps to the other major modules of your program, including OnBarUpdate() and any custom Plot() methods you have added. If any methods other than OnMarketDepth ask for anything from the lists before the rows have been inserted in OnMarketDepth() there will be a runtime error. To avoid this you can insert the following code into any method that is having that problem. Then the needed rows will be inserted right there, instead of waiting for OnMarketDepth() to do it. By the time OnMarketDepth() triggers, enough rows will already exist so that no more will be created.


#if NT7
if(rows.Count<5) // Keep that number, 5, low so we won't do this routine more than once.
//The only way there can be more than 5 of these rows if the insertion routine below has already run.
//Create as many rows as you will need for your Level II data.
//I don't know if you can get more than 20 rows of Level 2 data so 22 rows should be enough.
{ int idx =0;
for (idx = 0; idx < 22/2; idx++)
{ //insert placeholder objects of type LadderRowrows into the list at positions [idx]
askRows.Insert(idx, new LadderRow((int)0,(int) 0, ""));
bidRows.Insert(idx, new LadderRow((int)0,(int) 0, ""));
}
}
}
#endif


Change "DOM Bands" in the Print statements to the name of YOUR program. Here goes!

//=============================================================================================
//These Lists need to have been declared as variables in the variables region:
//private List<LadderRow> askRows = new List<LadderRow>();
//private List<LadderRow> bidRows = new List<LadderRow>();


protected override void OnMarketDepth(MarketDepthEventArgs e)
{
// try, catch will handle any runtime errors, preventing the program from crashing
try{ // this { is the start of the area that is being monitored for errors
// there may be runtime errors when this starts up in NT7
{

List<LadderRow> rows = null;

// Checks to see if the Market Data is of the Ask type
if (e.MarketDataType == MarketDataType.Ask)
rows = askRows;

// Checks to see if the Market Data is of the Bid type
else if (e.MarketDataType == MarketDataType.Bid)
rows = bidRows;

if (rows == null)
return;

#if NT7 // This switch will prevent the bracketed code from being compiled in NT6.5.
// In NT7, MUST explcitly create list rows before inserting into them, to prevent runtime error
{ // Could also have used the Add method but this is more fun.
if(rows.Count<5) //Create as many rows as you will need for your Level II data. I don't think you can get more than 20 rows of Level 2 data, so 22 rows should be enough.
{ int idx =0;
for (idx = 0; idx < 22/2; idx++)
{ //insert placeholder objects of type LadderRowrows into the list
askRows.Insert(idx, new LadderRow((int)0,(int) 0, ""));
bidRows.Insert(idx, new LadderRow((int)0,(int) 0, ""));
}
}
}
#endif
// In NT7, insertion will fail if there is not already an empty row to insert into


// Checks to see if the action taken by the Ask data was an insertion into the ladder
if (e.Operation == Operation.Insert)
{
rows.Insert(e.Position, new LadderRow((int)e.Price,(int) e.Volume, e.MarketMaker));
Print("Rowcount, DOM_Bands7 = "+rows.Count);
}
/* Checks to see if the action taken by the Ask data was a removal of itself from the ladder
Note: Due to the multi threaded architecture of the NT core, race conditions could occur
-> check if e.Position is within valid range */
else if (e.Operation == Operation.Remove && e.Position < rows.Count)
rows.RemoveAt(e.Position);

/* Checks to see if the action taken by the Ask data was to update of data already on the ladder
Note: Due to the multi threaded architecture of the NT core, race conditions could occur
-> check if e.Position is within valid range */
else if (e.Operation == Operation.Update && e.Position < rows.Count)
{
rows[e.Position].MarketMaker = e.MarketMaker;
rows[e.Position].Price = e.Price;
rows[e.Position].Volume =(int) e.Volume;
}

// Calling ChartControl.Refresh() will cause the Level II data to update real-time. Adding
// this delay routine will prevent CPU utilization from going through the roof. Setting a
// really high value will effectly delay the update until the next tick arrives which could
// be a really long time is the market is really slow. This may or may not matter to some.




}
} //This is the end of the region that is being monitored for runtime errors
catch (Exception ex){
// Following is what we do if there is an error, sure beats crashing the indicator
Print("Trapped exception in DOM_Bands.OnMarketDepth(): " + ex.Message);
return; //prevents the indicator from crashing
}
}
private class LadderRow //for futures there is no Market Maker, but we can still use this to populate the lists
{
public string MarketMaker; // relevant for stocks only
public double Price;
public int Volume;

public LadderRow(double myPrice, int myVolume, string myMarketMaker)
{
MarketMaker = myMarketMaker;
Price = myPrice;
Volume = myVolume;
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==


Last edited by Zondor; January 16th, 2010 at 09:54 AM.
Reply With Quote
The following 3 users say Thank You to Zondor for this post:
 
  #377 (permalink)
 R.I.P. 1960-2010 
 
Futures Experience: Advanced
Platform: NinjaTrader7
Broker/Data: Mirus RCG/Zen-Fire
Favorite Futures: CL & 6e, looking at ES, ZB and AU again.
 
ZTR's Avatar
 
Posts: 2,099 since Nov 2009
Thanks: 1,104 given, 1,390 received

Supply and Demand vs Volume


Lynx21 View Post
Personally, I would say don't get to carried away with volume. Traders tend to fall into two camps in regards to volume, those that love it and those that think it's useless.

What about Supply and Demand, not just traded volume? Several time in the last weeks I saw reversals based on the DOM_Bands Indicator. When the DOM got very heavy [30,000 total] the market traded in a range (I'm showing a tick chart, which I now shun). But it does illustrate the point: when large Supply = large Demand, or Supply>>Demand, or Supply<<Demand it can mean something to later price action.

There were times when there was what I call a Throw-Over or Throw-Under: The book is really biased in one direction and Dom_Bands show the delta line crossing the bid or ask cumulative total line. This week they were reversals. (Once Zondor make his modification to DOM_bands this data will be saved with the GomRecorder and I'll show examples after they happen again.)

When the delta rides one of the other lines then moves toward the other with a defined slope it means the available Supply or demand is being consumed resulting in traded volume and a price trend. Twice on the chart you can see this happen as the price moves from 1136 to 1138 around 11:27 am PST & after a sell off, the next up trend from 1136 to 1138 at 12:05 to 12:22 pm. Chart have fractal relationships so this happens on all time frames.

Attached Thumbnails
How to use volume in your trading-es-03-10-1_7_2010-233-tick-1235.jpg  
Reply With Quote
The following 2 users say Thank You to ZTR for this post:
 
  #378 (permalink)
Elite Member
Portland Oregon, United States
 
Futures Experience: Beginner
Platform: Ninjatrader®
Broker/Data: CQG, Kinetick
Favorite Futures: Gameplay Klownbine® Trading of Globex
 
Zondor's Avatar
 
Posts: 1,327 since Jul 2009
Thanks: 1,246 given, 2,635 received

Are we using inaccurate bid ask volume data?

For those of us using bid ask volumes and cumulative delta, be aware that the accuracy of the data that we are relying on is questionable.

See this thread at Traders Laboratory (I believe that free registration is required to get in).

Zenfire and DTN Feed Different? - Page 4

FulcrumTrader is claiming that the data from DTNIQ matches that from the CME, but that Zenfire doesn't. Esignal, IB, Tradestation, and TT are also mentioned in other posts as not being accurate.

Anyone care to comment on this?

Reply With Quote
 
  #379 (permalink)
Trade with the flow
Paris, France
 
Futures Experience: Advanced
Platform: Market Delta & Ninjatrader
Favorite Futures: ES
 
cunparis's Avatar
 
Posts: 2,563 since Jun 2009
Thanks: 1,157 given, 2,032 received


Zondor View Post
FulcrumTrader is claiming that the data from DTNIQ matches that from the CME, but that Zenfire doesn't. Esignal, IB, Tradestation, and TT are also mentioned in other posts as not being accurate.

I read that too. But I already have Ninja & Tradestation and I hesitate to add Investor RT & IQFeed.

I wonder how bad is the difference?

in any case, I think that's not the biggest issue with Ninja.. the biggest issue is that you have to record it real time. My NT crashed on Friday and I had to restart it. I missed data during that time. That sucks cause with Zenfire you have no way to get it back. with IQFeed & Investor RT you can get 30 days history on the bid/ask.

Ninja really needs to improve on this. I heard for NT 7.0 the bid ask isn't usable, I don't remember the details but it's disappointing. This is actually one of the only reasons I keep tradestation..

Reply With Quote
 
  #380 (permalink)
 R.I.P. 1960-2010 
 
Futures Experience: Advanced
Platform: NinjaTrader7
Broker/Data: Mirus RCG/Zen-Fire
Favorite Futures: CL & 6e, looking at ES, ZB and AU again.
 
ZTR's Avatar
 
Posts: 2,099 since Nov 2009
Thanks: 1,104 given, 1,390 received


I posted about ZenFire a while back

Reply With Quote

Reply



futures io > > > How to use volume in your trading

Thread Tools Search this Thread
Search this Thread:

Advanced Search



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

Jigsaw Trading: TBA

Elite only

FuturesTrader71: TBA

Elite only

NinjaTrader: TBA

Jan 18

RandBots: TBA

Jan 23

GFF Brokers & CME Group: Futures & Bitcoin

Elite only

Adam Grimes: TBA

Elite only

Ran Aroussi: TBA

Elite only
     

Similar Threads
Thread Thread Starter Forum Replies Last Post
Cumulative Delta Volume Trading Big Mike The Elite Circle 980 December 10th, 2017 07:17 AM
volume trading indicator tony2604 Traders Hideout 10 March 17th, 2011 03:34 PM
Volume trading - fictive scenario trendisyourfriend The Elite Circle 6 December 16th, 2010 05:16 PM
Price & Volume Trading Journal ZTR Trading Journals 117 February 21st, 2010 04:02 AM
Multi Volume/Time Frame Trading wh The Elite Circle 7 September 15th, 2009 05:55 PM


All times are GMT -4. The time now is 09:05 PM.

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-14 in 0.18 seconds with 20 queries on phoenix via your IP 54.221.73.186