Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

agon

Volume Splitter

Recommended Posts

I know this is being done, but do any of you here plug Zenfire feed into the TS charting app?

 

My next big push in the months ahead will be setting up proper Cumulative Delta tools into the TS charting app for several interesting projects that I have to test (for live forward testing).

 

TIA for any info! ;)

Share this post


Link to post
Share on other sites
This is what I typically use in NT.

 

That's the way to do it :). All of the stuff I have seen (including the excellent GomCD) have potential race conditions depending on what NT does internally (like assign TickTypeEnum.AtBid).

Share this post


Link to post
Share on other sites

Great thread and lot of effort willingness from every one.

 

I am interested in Volume Delta and CVD because they are unquestionable datas, then each of us can use it or ignore in his trading decisions.

I'm sure everyone here knows the exact meaning of these 2 indicators but to be more clear:

 

DELTA VOLUME: it is the difference between volume traded at bid and volume traded at ask in a definite time frame (es 1min 5min and so on)

 

CVD: The cumulative volume delta is the algebraical sum of the single delta volume values

 

I'm not a programmer so I may be wrong but in this thread beside adding other things like filters and assumptions about dumb traders (little) and big traders, the basic fault IMHO that invalidate all the reasoning is that is used the tick volume instead of the real volume ad bid and volume at ask.

 

An uptick can be made by a 1ctr or by 2000ctr that's not definitely the same thing.

 

By the way what I'm telling now is, I'm not a programmer but just a trader but in Multichart we have:

- the possibility to plot the bid and the ask historically

- the possibility to have a tick by tick "last trade" with volume

 

Also in MC prebuild indicators we have Volume up and Volume dn, that are only uptick or downtick, they don't consider the real volume at bid or volume at ask.

An uptick can be made by a 1ctr or by 2000ctr that's not definitely the same thing.

 

By the way what I'm telling now is, I'm not a programmer but just a trader but in Multichart we have:

- the possibility to plot the bid and the ask historically

- the possibility to have a tick by tick "last trade" with volume

It seems it's all we need to build a Real VD and CVD with history, exactely like that one that Trading Technologies offers with X-Study.

 

I would really apreciate an imput from all of you EL programmers

 

good trading to everyone

 

R.

Share this post


Link to post
Share on other sites
....I would really apreciate an imput from all of you EL programmers

 

good trading to everyone

 

R.

 

 

Good piece. Thanks for your thoughts. I think they are all valid.

 

I also understand you are not a programmer.

EasyLanguage is a really easy language to learn.

BUT, at the same time, it also has lots of quarks and legacy baggages.

One of those quarks is the meaning/definition of "ticks" and "volume".

I am not going to repeat what can be found in the manual,

If you have questions after looking them up (I promise it can be confusing),

I would be happy to go over it.

 

 

;-)

Share this post


Link to post
Share on other sites

Tks Tams for your reply

I've found this:

 

UPTICKS: Volume (shares) traded

on Up Ticks

 

DOWNTICKS: Volume (shares) traded

on Down Ticks

 

TICKS: Total Volume / shares

 

VOLUME: Volume (shares) traded

on Up Ticks ??????????????????????????????????????

 

So seems to be correct to use upticks and downticks ???

and wrong to use Volume????

 

Did I get a wrong information?

 

I got it at:

www.tradestation.com/support/training/downloads/Volume_Reserved_Words_Reference.pdf

 

:crap:

Share this post


Link to post
Share on other sites
Tks Tams for your reply

I've found this:

 

UPTICKS: Volume (shares) traded

on Up Ticks

 

DOWNTICKS: Volume (shares) traded

on Down Ticks

 

TICKS: Total Volume / shares

 

VOLUME: Volume (shares) traded

on Up Ticks ??????????????????????????????????????

 

So seems to be correct to use upticks and downticks ???

and wrong to use Volume????

Did I get a wrong information?

 

I got it at:

www.tradestation.com/support/training/downloads/Volume_Reserved_Words_Reference.pdf

 

:crap:

 

 

you have got the right information...

 

 

this table summarizes it all...

 

pls see post #10 of this thread.

 

 

 

.

Edited by Tams

Share this post


Link to post
Share on other sites
Great thread and lot of effort willingness from every one.

 

I am interested in Volume Delta and CVD because they are unquestionable datas, then each of us can use it or ignore in his trading decisions.

I'm sure everyone here knows the exact meaning of these 2 indicators but to be more clear:

 

DELTA VOLUME: it is the difference between volume traded at bid and volume traded at ask in a definite time frame (es 1min 5min and so on)

 

CVD: The cumulative volume delta is the algebraical sum of the single delta volume values

 

I'm not a programmer so I may be wrong but in this thread beside adding other things like filters and assumptions about dumb traders (little) and big traders, the basic fault IMHO that invalidate all the reasoning is that is used the tick volume instead of the real volume ad bid and volume at ask.

 

An uptick can be made by a 1ctr or by 2000ctr that's not definitely the same thing.

 

By the way what I'm telling now is, I'm not a programmer but just a trader but in Multichart we have:

- the possibility to plot the bid and the ask historically

- the possibility to have a tick by tick "last trade" with volume

 

Also in MC prebuild indicators we have Volume up and Volume dn, that are only uptick or downtick, they don't consider the real volume at bid or volume at ask.

An uptick can be made by a 1ctr or by 2000ctr that's not definitely the same thing.

 

By the way what I'm telling now is, I'm not a programmer but just a trader but in Multichart we have:

- the possibility to plot the bid and the ask historically

- the possibility to have a tick by tick "last trade" with volume

It seems it's all we need to build a Real VD and CVD with history, exactely like that one that Trading Technologies offers with X-Study.

 

I would really apreciate an imput from all of you EL programmers

 

good trading to everyone

 

R.

 

So far the best chart set-up I have found to properly track Cumulative Delta is Investor RT Pro with DTN.IQ feed (which has been even more sharp since their feed upgrades). I have decent historical look back for the Cumulative Delta candlesticks with Investor RT Pro, and they have the ability to overlay some indicators onto the Cumulative Delta plot if that is something your into.

 

Here is a look at a Price/CD candlestick chart from today..... Images | ChartHub.com

 

I have been following some of the other various charting services that are finally coming around to the Cumulative Delta parsed volume study, and it is great to see we have an expanding range of choices. After 6 years of trading with Cumulative Delta I am encouraged by all the recent charting service attention using the actual bid/ask traded order flow information (Ninjatrader, Sierra Charts, CQG, etc). MultiCharts looks like a great charting option too so it will be nice to have another option.

Share this post


Link to post
Share on other sites

The below information may help, a different approach / logic to see the big & small player vol

 

Below is an extract of Review Written by Dr. Alexander Elder

Book title: "Value in time: Better Trading through Effective Volume"

 

+-------------------------------------------------------------------------------+

A Revolutionary Approach, May 28, 2008

By Dr Alexander Elder

 

The author uses inexpensive off-the-shelf software to slice each trading day of a stock into one-minute segments. He finds the average one-minute volume for the day and separates the minutes into those with above or below average volume. In each group, he adds up the volume of minutes with rising prices and subtracts the volume of minutes with falling prices. This gives him two cumulative volume lines: one for the minutes with above average and the other for below average volume. He named them Large and Small Effective Volume.

 

The minutes with above average volume reflect the impact of the big money and often have predictive value. When you find a condition in which the big money starts pushing up a stock, while the small money remains negative or neutral, an upside reversal is in the cards. When the big money starts pushing the stock down while the small money is flat or buying, a downside reversal is more likely.

 

Amazon.com: Customer Reviews: Value in Time: Better Trading through Effective Volume (Wiley Trading)

 

Website: http://www.effectivevolume.eu/

 

Also Look into the Effective Vol Tradestation Indicator manual

http://www.effectivevolume.eu/content/Reports/TS_Manual.pdf

Chart Color Codes:

Blue for Large Player

Red for Small Players

Yellow for Effective Vol

 

Enjoy Minoo

Edited by minoo

Share this post


Link to post
Share on other sites
Here is a 'release' version of the second indicator that plots cumulative Delta. It actually fixes a bug that I have noticed in all indicators of this type where the delta is not calculated correctly for the first bar. This does not matter for oscillator type indicators as it will eventually calculate out however with absolute value types it permanently scews results. The scew is worse the larger the bar. This fixes is that (and is one of those gratifying moments you get from coding :))

 

//
// Plots Cumulative Delta
//
// Start at the begining of day and plot as a 'bar'
// 
inputs: 
UpColor(darkgreen), 
DownColor(red), 
MaxBlock(9999),
MinBlock(0),
ResetDeltaEachBar(0); 

variables: 
MyVol(0), 
Block(0),
color(yellow), 
firstrunthrough(true),
intrabarpersist MyCurrentBar(0), 
intrabarpersist VolTmp(0), 
intrabarpersist Delta (0), 
intrabarpersist DeltaH (0), 
intrabarpersist DeltaL (0), 
intrabarpersist DeltaO (0); 

if firstrunthrough then begin				// We need to do this in case indicator starts mid bar
  	Voltmp = Iff(BarType < 2, Ticks, Volume);
  	firstrunthrough = False;
  	end;

if LastBarOnChart then begin    	
if CurrentBar > MyCurrentBar then begin 
	VolTmp = 0; 
	MyCurrentBar = CurrentBar; 
	if ResetDeltaEachbar = 1 then Delta =0;
	DeltaO = Delta; 
	DeltaH = Delta; 
	DeltaL = Delta; 
end; 
  	MyVol = Iff(BarType < 2, Ticks, Volume);
Block = Myvol - VolTmp;
if (Block >= MinBlock) and (Block <= MaxBlock) then
	if Close <= InsideBid then
		Delta  = Delta - MyVol + VolTmp
	else if Close >= InsideAsk then 
		Delta = Delta + MyVol - VolTmp ;  
	VolTmp = MyVol ;



DeltaH = maxlist(DeltaH, Delta); 
DeltaL = minlist(DeltaL, Delta); 


if Delta <= Delta[1] then color = DownColor else color = UpColor; 

plot1(DeltaO, "DO",color); 
Plot2(DeltaH, "DH",color); 
Plot3(DeltaL, "DL",color); 
plot4(Delta, "DC",color);	 
end;  

 

Hi BlowFish,

 

Thanks for posting the above.

My EL is weak, if its not to much trouble, can you code the above to work with upticks/Downticks. I realize it will be somewhat different then bid ask data, yet I want to look at some historical data.

 

Thanks

Share this post


Link to post
Share on other sites

Someone asked me about this code and when I looked at it I noticed that it is missing the case where a transaction == mp, ie. when a transaction is at the midpoint between best bid and ask. I have read that at least one approach to that is to use whatever the direction was for the previous transaction for that case. Anyway... one would probably want to change the code to reflect that. Unless one wants to consider that if a transaction is exactly at the midpoint, then it's not directional at all and so ignoring it is what you want. Could argue either way I suppose.

 

 

 

This is what I typically use in NT.

// In vars section:
double lastAsk;
double lastBid;

// Methods
protected override void OnMarketData(MarketDataEventArgs e) 
{ 
 trackBidAsk(e);
 if (e.MarketDataType == MarketDataType.Last)
 {
   double mp = (lastBid + lastAsk) / 2;
   if (e.Price > mp)
   {
     // Transaction was at Ask, do whatever here.
   }
   else if (e.Price < mp)
   {
     // Transaction was at Bid, do whatever here.
   }
 }
}

 private void trackBidAsk(MarketDataEventArgs e)
 {
       if (e.MarketDataType == MarketDataType.Bid)
       {
	lastBid = e.Price;
}
       else if (e.MarketDataType == MarketDataType.Ask)
       {
	lastAsk = e.Price;
}
  }

Share this post


Link to post
Share on other sites
That's because a transaction at the mid-point is impossible. It's either traded at the bid or ask.

 

My understanding is that is not the case--especially since the data stream is not perfect. And I know I have seen transactions occur on prices other than the last bid or ask I received from the data feed.

Share this post


Link to post
Share on other sites

I don't know what you are trading, but on exchange traded securities it can only trade on the bid or ask. I don't see how your data feed might screw that up since a mid-point requires both bid and ask as information.

Share this post


Link to post
Share on other sites
I don't know what you are trading, but on exchange traded securities it can only trade on the bid or ask. I don't see how your data feed might screw that up since a mid-point requires both bid and ask as information.

 

There may be a difference between what is conceptually required by the market and exchange and what actually comes across the wire in the data feed. Any filtered data feed or snapshotted one (IB, Tradestation, TT, etc.) will definitely have this problem since you cannot get the actual last bid and ask--you can only get a snapshot value that may be stale data.

 

I was using zenfire which is supposedly unfiltered, but there apparently have been cases of this issue with it as well. FulcrumTrader has confirmed that zenfire does drop data sometimes, so that may be why--so maybe on a high quality feed, this would not be an issue. But... I don't know.

Share this post


Link to post
Share on other sites

Not really. You are talking about two different things here. Stale data happens. But how is a trade at the mid-point supposed to happen? You can't enter limit orders at half a tick on an exchange, can you?

Share this post


Link to post
Share on other sites
Not really. You are talking about two different things here. Stale data happens. But how is a trade at the mid-point supposed to happen? You can't enter limit orders at half a tick on an exchange, can you?

 

Are you assuming a spread of only one tick? In that case, you are correct. However, many instruments have spreads of much greater than one tick. Speaking in terms of ticks, if bid is at 0 and ask is at 2 then a trade at 1 is at the midpoint.

Share this post


Link to post
Share on other sites

I don't want to beat a dead horse, but even if the spread is 2 ticks, the "mid-point" of a 2 tick spread is still either bid or ask. If it looks as if it traded at that "mid-point" without being bid or offered, it just means that as soon as someone bid or offered, someone sweeped the market so quickly that you couldn't see it. I just want people to understand how orders are matched. There are no magic trades at mid-points on exchanges.

Share this post


Link to post
Share on other sites
I don't want to beat a dead horse, but even if the spread is 2 ticks, the "mid-point" of a 2 tick spread is still either bid or ask. If it looks as if it traded at that "mid-point" without being bid or offered, it just means that as soon as someone bid or offered, someone sweeped the market so quickly that you couldn't see it. I just want people to understand how orders are matched. There are no magic trades at mid-points on exchanges.

 

Yes. As I mentioned before, you're talking about the internals of how exchanges work, and I'm talking about the actual data that arrives at your trading platform and how to code an indicator to deal with it. As you say, the two don't always match.

Share this post


Link to post
Share on other sites

This is a very interesting point.

Can you explain better how can an order be executed before being placed on the book?

Can you detail better the entire process of the order execution?

I suppose there were 3 distinct step (for non market order):

 

1)order insertion on the book

2)cross between an arriving order

3)execution information from the Exchange

 

Can the sequence be different in your opinion? (i.e. becouse of different TCP packet delay and late reconstrucion,etc ...)

 

 

There are instances where a trade can occur between best bid and best ask. Essentially it relies on orders arriving together that can be matched before being placed on the book.

Share this post


Link to post
Share on other sites

BlowFish, I would also like to know how that works. None of the order matching rules of exchanges that I have read mention that. All I know is that block trades can be executed on Eurex without going through the book. They are basically just reported for clearing without affecting the market in the order book.

Share this post


Link to post
Share on other sites

Only EUREX (for block trades out of the book)?

 

Thanks

 

 

BlowFish, I would also like to know how that works. None of the order matching rules of exchanges that I have read mention that. All I know is that block trades can be executed on Eurex without going through the book. They are basically just reported for clearing without affecting the market in the order book.

Share this post


Link to post
Share on other sites
Not really. You are talking about two different things here. Stale data happens. But how is a trade at the mid-point supposed to happen? You can't enter limit orders at half a tick on an exchange, can you?

 

Yes really :) You are assuming that the bid ask spread is always 1 tick. It it is not. YM is 10313 bid 10317 asked right now for example. If I bid 10315 and you offer 10315 right this second it will get matched between the best bid/ask. Actually mine could be a market order and I think (not sure depends on the matching algorithm) it will not display on the book. This is a surprisingly common occurrence at the open, round news etc.

 

There has been a lot of research done on the subject using the NYSE Torc database and Nasdaq data (Nas keep more trade data than is generally available to market participants but have made it available to people doing market microstructure research). I also seem to recall one paper using Paris' EuroNext data. Most of the research is on what to do (and how accurate it is in classifying trade direction) when trades are not at best bid and best ask.

Share this post


Link to post
Share on other sites

Zenfire API provide BID/ASK on microsecond timestamp.(from their server).

The match bid/offer on microsecond basis is IMO a very low probability event.

 

 

 

Yes really :) You are assuming that the bid ask spread is always 1 tick. It it is not. YM is 10313 bid 10317 asked right now for example. If I bid 10315 and you offer 10315 right this second it will get matched between the best bid/ask. Actually mine could be a market order and I think (not sure depends on the matching algorithm) it will not display on the book. This is a surprisingly common occurrence at the open, round news etc.

 

There has been a lot of research done on the subject using the NYSE Torc database and Nasdaq data (Nas keep more trade data than is generally available to market participants but have made it available to people doing market microstructure research). I also seem to recall one paper using Paris' EuroNext data. Most of the research is on what to do (and how accurate it is in classifying trade direction) when trades are not at best bid and best ask.

Share this post


Link to post
Share on other sites

Intuitively you might think so however it is not the case. Zenfire does indeed time stamp micro seconds however that is several orders of magnitude greater accuracy than stuff can actually happen in the real world. If you actually look at Zenfire data (I did in some detail to test the ninja indicator I wrote for Uma Blume's Trade intensity thread) you will see many ticks actually come in with the same time stamp as the previous one. if you look at the charts I posted those events (multiple same time stamp ticks) show as 'ramps' or 'sawtooths" in the trade intensity indicator.

 

It is also quantitatively demonstrateable that ticks occur between bid and ask and there are many papers that show and discuss just that. In fact one of the more recent concludes that this is the primary reason for inaccuracies in delta/order flow type indicators.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.