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

Tasuki,

 

EOT used to allow anyone into their room as a guest on the last Friday of the month. Check out their website EOTPRO. to see if this is still true. They also have a free trial you can try, if you have never been in their trading room.

 

When I was comparing indicators, it was in the afternoon that they were different. Thats why I thought it was unusual. Try it out Tuesday, after the holiday.

 

They do have some nice indicators. I wish they would sell their indicators rather than lease. The one that identifies Trend or Chop would be nice to see someone program in Trades Laboratory. In my mind, it would be very easy since it appears to be based on price alone.

 

Would you mind telling me where you obtained the BidAskPressure02A?

 

Thanks

 

Olive

 

Olive, thanks for the info on EOT. I'll check it out next week.

 

That BAP02a was one of the versions that was put on the Traders Lab thread. At least I think that's where I got it. Or was it the Tradestation forum? I can't recall. I can send you the code if you like, just send me a PM here on Traders Lab.

Share this post


Link to post
Share on other sites
I know very little about programnning but can tell you that the Volume Splitter by EOT works as well on TS as it does on Ninja.

 

 

I have done research in the past on bid/ask type indicators and allmost all providers admited to me they did not work as well with tradestaion as they did with Ninja, esignal, ect.

 

Market Delta does not even offer a tradestaion version for this reason.

 

Steve

Share this post


Link to post
Share on other sites
I have done research in the past on bid/ask type indicators and allmost all providers admited to me they did not work as well with tradestaion as they did with Ninja, esignal, ect.

 

Market Delta does not even offer a tradestaion version for this reason.

 

Steve

 

Steve, why do you think this is? What is TS doing to its data?

Share this post


Link to post
Share on other sites
Steve, why do you think this is? What is TS doing to its data?

 

I'm not sure about the market delta reasoning, but regarding the question of transaction at bid or ask issue...

 

TS bid/ask values are snapshotted (maybe 100ms, but I'm don't remember for sure), so there is no sure way to know whether a transaction occurred at the bid or the ask. So... the part that says: if Close = CurrentBid, you're comparing a realtime value (Close) with a value that might be 100ms or more old (CurrentBid).

 

There are several topics on TS forums about that. That being said... 100ms might be sufficient that it might be correct most of the time. I'm not sure. During my search for data/brokerage recently, I found that snapshotting bid/ask/DOM is common.

 

I ran into volume splitter somewhere a few weeks ago and coded up a ninja trader version of what I thought might be the same thing (It was very similar to my attempt at another indicator which was about the frequency of orders at bid/ask which I had seen discussed somewhere). I didn't mess around with it a lot and I didn't smooth it at all, but did divide by the logarithm of the value in order to bring it together, otherwise one of the plots goes way far away and squishes the other values.

 

It actually plots 4 different values: <5, <50, <100, <10000

 

If someone can tell me how best to make it useful (smooth or not, sum or not, show both long/short, cumulative or window or for day, or...), I could finish it up and post it. Glancing at it for a few minutes, I didn't immediately see something useful, but I know that's not long enough to make any judgment.

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;  

Share this post


Link to post
Share on other sites

Just for fun I ran what I have to see if anyone wants to comment on it. There are two indicators: one is a cumulative volume splitter that is:

Orange 1 - 4

Green 5 - 49

Purple 50 - 99

Red 100+

 

And the other is a Volume Frequency that measures how quickly contracts are moving compared to time. I did this because I saw some discussions regarding this somewhere.

 

These two screenshots are from the past hour or so on ES. It's a 987 volume bar chart.

VolumeDirBins.thumb.png.596c437f02562efc519d38206e59afb9.png

VolumeDirBins2.thumb.png.cd7ddd2091a337daba3182d477dfaa75.png

Share this post


Link to post
Share on other sites

I'm actually a bit freaked out by your post! I was just talking with another trader today about how helpful it would be to be able to display how many contracts were moving compared to time.

 

It looked like you're using ninja, but could you at least explain the coding logic used so I might replicate it for Tradestation?

Share this post


Link to post
Share on other sites

Sorry to freak you out :)

 

Yes, I'm using Ninja. And I'll tell you the logic on one condition: if you find it useful, you'll tell me about it :)

 

The tradestation frequency one is a little tricky. Tradestation does not give you fine grained time at all. You have to use a dll to get system time. It also won't work historically of course--only live. There is a dll for system time you can get--search the forums for it. And there's the limitation on whether a transaction was at bid or ask--it probably works most of the time, I'm not sure how often its a problem.

 

I don't think I tried to do the frequency on tradestation. I got rid of tradestation a month or two ago--these types of serious limitations get rather frustrating.

 

As for the logic, it's:

 

volume / (log( currentTime - lastAskTime ) + 1)

 

Ah this is why sometimes it doesn't plot--if we get two simultaneous ones, the log goes to infinity--that happened once in the screenshot.

 

lastAskTime would be lastBidTime if this tick was at bid. Track them separately.

 

I took the log of time diff because otherwise it can have some enormous spikes I think, and so squish everything down.

 

The plot in screenshot has two histograms--one up and one down: bid and ask, one negated so it displays below 0. Also that plot adds up the frequency over a bar--then each bar it starts over at 0. The yellow line is the 7 ema of the difference between the two, again by tick, not bar.

 

Here's the code if you want to decipher, but everyone has to promise not to judge me by this code as it was just slapped together and messed around with as I experimented with different things... so it's ugly.

 

If someone determines refinements that will make it especially useful, I can implement them and clean it up.

 

 

		protected override void OnMarketData(MarketDataEventArgs e) 
	{
		long now = DateTime.Now.Ticks;
		if (e.MarketDataType == MarketDataType.Ask) {
			lastAsk = e.Price;
			lastAskTime = now;
		}
		else if (e.MarketDataType == MarketDataType.Bid) {
			lastBid = e.Price;
			lastBidTime = now;
		}
		else if (lastAsk != 0 && lastBid != 0 && e.MarketDataType == MarketDataType.Last && e.Volume >= minVol) {
			// TODO: for in between bid and ask?
			if (e.Price >= lastAsk && e.Price > lastBid) {
				double dur = Math.Log((double)now - lastAskTime+1) + 1;
				double newFreq = (double)e.Volume/dur;
				double oldFreq = askFreq;
//					askFreq = (newFreq - askFreq)*mult + askFreq;
				askFreq = (newFreq)*mult + askFreq;
				if (Math.Abs(askFreq - oldFreq) < oldFreq/1000) {
					Print("Ask no change: "+e.Volume+", "+(now-lastAskTime)+", "+dur+", "+newFreq+", "+oldFreq+", "+askFreq);
				}
				lastAskTime = now;
			} else if (e.Price <= lastBid && e.Price < lastAsk) {
				double dur = Math.Log((double)now - lastBidTime+1) + 1;
				double newFreq = (double)e.Volume/dur;
				double oldFreq = bidFreq;
//					bidFreq = (newFreq - bidFreq)*mult + bidFreq;
				bidFreq = (newFreq)*mult + bidFreq;
				if (Math.Abs(bidFreq - oldFreq) < oldFreq/1000) {
					Print("Bid no change: "+e.Volume+", "+(now-lastBidTime)+", "+newFreq+", "+oldFreq+", "+bidFreq);
				}
				lastBidTime = now;
			} else {
				Print("Was inside bid/ask: "+e.Price);
			}
		}
	}

       /// <summary>
       /// Called on each bar update event (incoming tick)
       /// </summary>
       protected override void OnBarUpdate()
       {
		if (FirstTickOfBar) {
			bidFreq = 0;
			askFreq = 0;
			diffEma = diffEmaBar;
			diffEmaBar = 0.0;
		} else {
			double diff = askFreq - bidFreq;
			if (diffEma == 0.0) {
				diffEmaBar = diff;
			} else {
				diffEmaBar = (2.0/(1.0+7.0))*(diff - diffEma)+diffEma;
			}
			Plot0.Set(diffEmaBar);
			Plot1.Set(-bidFreq);
			Plot2.Set(askFreq);
		}
       }

Share this post


Link to post
Share on other sites
Sorry to freak you out :)

 

Yes, I'm using Ninja. And I'll tell you the logic on one condition: if you find it useful, you'll tell me about it :)

 

The tradestation frequency one is a little tricky. Tradestation does not give you fine grained time at all. You have to use a dll to get system time. It also won't work historically of course--only live. There is a dll for system time you can get--search the forums for it. And there's the limitation on whether a transaction was at bid or ask--it probably works most of the time, I'm not sure how often its a problem.

 

I don't think I tried to do the frequency on tradestation. I got rid of tradestation a month or two ago--these types of serious limitations get rather frustrating.

 

As for the logic, it's:

 

volume / (log( currentTime - lastAskTime ) + 1)

 

Ah this is why sometimes it doesn't plot--if we get two simultaneous ones, the log goes to infinity--that happened once in the screenshot.

 

lastAskTime would be lastBidTime if this tick was at bid. Track them separately.

 

I took the log of time diff because otherwise it can have some enormous spikes I think, and so squish everything down.

 

The plot in screenshot has two histograms--one up and one down: bid and ask, one negated so it displays below 0. Also that plot adds up the frequency over a bar--then each bar it starts over at 0. The yellow line is the 7 ema of the difference between the two, again by tick, not bar.

 

Here's the code if you want to decipher, but everyone has to promise not to judge me by this code as it was just slapped together and messed around with as I experimented with different things... so it's ugly.

 

If someone determines refinements that will make it especially useful, I can implement them and clean it up.

 

 

		protected override void OnMarketData(MarketDataEventArgs e) 
	{
		long now = DateTime.Now.Ticks;
		if (e.MarketDataType == MarketDataType.Ask) {
			lastAsk = e.Price;
			lastAskTime = now;
		}
		else if (e.MarketDataType == MarketDataType.Bid) {
			lastBid = e.Price;
			lastBidTime = now;
		}
		else if (lastAsk != 0 && lastBid != 0 && e.MarketDataType == MarketDataType.Last && e.Volume >= minVol) {
			// TODO: for in between bid and ask?
			if (e.Price >= lastAsk && e.Price > lastBid) {
				double dur = Math.Log((double)now - lastAskTime+1) + 1;
				double newFreq = (double)e.Volume/dur;
				double oldFreq = askFreq;
//					askFreq = (newFreq - askFreq)*mult + askFreq;
				askFreq = (newFreq)*mult + askFreq;
				if (Math.Abs(askFreq - oldFreq) < oldFreq/1000) {
					Print("Ask no change: "+e.Volume+", "+(now-lastAskTime)+", "+dur+", "+newFreq+", "+oldFreq+", "+askFreq);
				}
				lastAskTime = now;
			} else if (e.Price <= lastBid && e.Price < lastAsk) {
				double dur = Math.Log((double)now - lastBidTime+1) + 1;
				double newFreq = (double)e.Volume/dur;
				double oldFreq = bidFreq;
//					bidFreq = (newFreq - bidFreq)*mult + bidFreq;
				bidFreq = (newFreq)*mult + bidFreq;
				if (Math.Abs(bidFreq - oldFreq) < oldFreq/1000) {
					Print("Bid no change: "+e.Volume+", "+(now-lastBidTime)+", "+newFreq+", "+oldFreq+", "+bidFreq);
				}
				lastBidTime = now;
			} else {
				Print("Was inside bid/ask: "+e.Price);
			}
		}
	}

       /// <summary>
       /// Called on each bar update event (incoming tick)
       /// </summary>
       protected override void OnBarUpdate()
       {
		if (FirstTickOfBar) {
			bidFreq = 0;
			askFreq = 0;
			diffEma = diffEmaBar;
			diffEmaBar = 0.0;
		} else {
			double diff = askFreq - bidFreq;
			if (diffEma == 0.0) {
				diffEmaBar = diff;
			} else {
				diffEmaBar = (2.0/(1.0+7.0))*(diff - diffEma)+diffEma;
			}
			Plot0.Set(diffEmaBar);
			Plot1.Set(-bidFreq);
			Plot2.Set(askFreq);
		}
       }

 

 

thank you taotree for the code

 

can i ask you please to export it from your ninjatrader to zip file

 

because i have problem to copy and past it in my editor

 

thanks alot

Share this post


Link to post
Share on other sites

Right, I didn't export whole thing--he was asking for it for Tradestation. Attached is the zip file with both indicators.

 

Like I said, these have not been refined at all. They are a start of an investigation, not the result of it. Suggestions welcome.

2VolumeInds.zip

Share this post


Link to post
Share on other sites
These two screenshots are from the past hour or so on ES. It's a 987 volume bar chart.

 

You might want to try a black (or almost black) blackground for higher contrast. I think it would be easier to see all those lines.

Share this post


Link to post
Share on other sites

Nice TT you would probablly enjoy UrmaBlumes threads particularly the trade intensity one. Similar concept.

 

Leaving aside tradestations limitations I think there are issues with how some exchanges report bid and ask changes. I reckon they might be sampled, can't tell you why just a feeling.

 

I have noticed some discrepancies in multicharts as well that I dont think can be accounted for satisfatcorily by the above.

 

Don't have the inclination to investigate further right now.

Share this post


Link to post
Share on other sites
Right, I didn't export whole thing--he was asking for it for Tradestation. Attached is the zip file with both indicators.

 

Like I said, these have not been refined at all. They are a start of an investigation, not the result of it. Suggestions welcome.

 

Thank you for posting the code, nice work.

 

Chris

Share this post


Link to post
Share on other sites

Thanks for the code. At first glance I would think that if the bigger players are short for the day, then I would enter all of my setups to the short side. I do not think I would want to fight them. I will investigate it a lot further, but I think it will filter out some of my bad trades. Thanks again for the code.

Share this post


Link to post
Share on other sites

I'm taking the week-long free trial with EOT this week, looking at their vol splitter (see first post in this thread). So far, it looks like a smoothed version of the Blowfish #4 indicator (the one before the last one BF posted).

 

I asked the folks in the EOT room about this, and they of course wouldn't tell me what the code actually is (they lease it for $233/month), but they did say that the unsmoothed vol splitter they use has a smoothing factor of 1 and the version they use on most of their charts has a smoothing value of 6. Not sure how that helps us, unless BF wants to smooth his version. BF?

Share this post


Link to post
Share on other sites

Tasuki - Just curious how important the increase of big buyers and sellers (the dots on the line of the EOT indicator) is in getting in on good moves? Obviously we've recreated half of the indicator pretty well, but the other half is the dots the indicate when and how much big buying and selling is coming in intrabar.

 

How important is it and how does that plot intrabar? Do dots only occur at the close of the bar?

Share this post


Link to post
Share on other sites
Tasuki - Just curious how important the increase of big buyers and sellers (the dots on the line of the EOT indicator) is in getting in on good moves? Obviously we've recreated half of the indicator pretty well, but the other half is the dots the indicate when and how much big buying and selling is coming in intrabar.

 

How important is it and how does that plot intrabar? Do dots only occur at the close of the bar?

 

daedalus,

Today was just the first day of my weeklong trial. I should have a better answer by the end of the week, but my first impression is that I think that it is very important. Check back with me on friday. I'm taking snapshots (SnagIt) of their charts during the day. I'll post some of them here towards the end of the week and maybe we can answer that question together.

Tasuki

Share this post


Link to post
Share on other sites
Welcome to the forum bgtrader. I know a couple of traders who use this information. One of their key observations is that it requires a particular net absolute order flow before an intra day trend can develop. Compare the values on days market drift with those that trend. Pay particular attention to what sort of 'open interest' is required for a market to have a sustained break out of the opening range. Sadly this indicator will only run real time as it requires best bid/best ask information.

 

So here you go. Cumulative intraday order flow that accounts for net long or net short positions and large trader filter. I wonder how long before this shows up somewhere as a commercial offering? :)

 


inputs: 
UpColor(darkgreen), 
DownColor(red), 
DeltaBar(1), 
LargeBlockFilter(100),
ResetDeltaEachBar(0); 

variables: 
MyVol(0), 
color(yellow), 
intrabarpersist MyCurrentBar(0), 
intrabarpersist VolumeAtBid(0), 
intrabarpersist VolumeAtAsk(0), 
intrabarpersist BAVolRatio(0), 
intrabarpersist VolTmp(0), 
intrabarpersist Delta (0), 
intrabarpersist DeltaH (0), 
intrabarpersist DeltaL (0), 
intrabarpersist DeltaO (0); 

if LastBarOnChart then begin 
  	MyVol = Iff(BarType < 2, Ticks, Volume); 
if CurrentBar > MyCurrentBar then begin 
	VolumeAtBid = 0; 
	VolumeAtAsk = 0; 
	BAVolRatio = 0; 
	VolTmp = 0; 
	MyCurrentBar = CurrentBar; 
	if ResetDeltaEachbar = 1 then Delta =0;
	DeltaO = Delta; 
	DeltaH = Delta; 
	DeltaL = Delta; 
end; 
if absvalue(MyVol-VolTmp) <= LargeBlockFilter then begin 
	if Close <= InsideBid then
		Delta  = Delta - MyVol + VolTmp
	else if Close >= InsideAsk then 
		Delta = Delta + MyVol - VolTmp ;  
	VolTmp = MyVol ;
end; 
end ; 


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


if Delta <= 0 then color = DownColor else color = UpColor; 

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

 

Blowfish, do happen to remember if this was your third or fourth program of the volume splitter. Thanks in advance and for all your contributions to the forum.

Share this post


Link to post
Share on other sites

Hi there,

 

There are only a couple of studies. I think there was only one version of the first an oscillator type indicator, the second underwent a few fixes and improvements. The one you quoted was the second. To get the most up to date version of that one grab the last piece of code you can find on the thread.

 

Probably a good argument to use the indicator forum and update the study at the top of the thread!

Share this post


Link to post
Share on other sites

Hi,

 

Can someone post some screenshots of the EOT volume splitter with known dates. Only in one video they say what the day is, I want to take a look at some samples of specific days, so I can compare.

 

thx.

Share this post


Link to post
Share on other sites

EOT Volume splitter does not provide historical plotting. At first believed that it plotted historical. It doe not. The indicator plots 3 values. It will plot small, med and large traders. The Small and medium can be turned off. I have assumed that it plotted historicall because i always had smallandmed turned off. When I turned them on I noticed no plot on them, but the large plotted. I further investigated it when I noticed they also have a ba pressure indicator. I overlayed the large with the ba pressure and whta i got was that the large traders was exactly the same as the ba pressure historically, but then in realtimethe plotted differently i then started another chart and sure enough it followed the ba pressure until it started realtime. So to clear up any confusion the historical plotting on the large traders is presented as the ba pressure and it will only plot acurately in realtime, on NT which is used in the room it does not even approx. historical and plots only in realtime.

Share this post


Link to post
Share on other sites
Hi,

 

Can someone post some screenshots of the EOT volume splitter with known dates. Only in one video they say what the day is, I want to take a look at some samples of specific days, so I can compare.

 

thx.

 

I will be posting screenshots on friday or on the weekend, after my one-week trial runs out with EOT.

Tasuki

Share this post


Link to post
Share on other sites
I will be posting screenshots on friday or on the weekend, after my one-week trial runs out with EOT.

Tasuki

 

I'm not sure how many screenshots you folks would like to see. I've got dozens from my weeklong trial with EOTPro.

I'll start with a comparison of two five minute charts of the ES, one showing the EOT's vol splitter (which started this thread), and comparing it to the Blowfish Vol Splitter #4 (this thread, permalink $162, page 16).

 

 

The first chart is a Snagit capture of EOT's live chart from this past Tuesday (June 2) at about 9:40 AM, California time. The EOTVolumeSplitter only shows the actions of the big (>100 lot) traders.

The second chart is a Snagit capture of my Tradestation chart from the same time. I've put the Blowfish Vol Splitter #4 on the chart three times, one for big trades (in blue, over price), one for medium size trades (magenta, subgraph 2) and one for small traders (yellow, subgraph 2).

 

The EOT vol splitter does seem to have some advantages. Despite the fact that it is smoothed (the smoothing factor, I was told, was "6" on this chart), it seem to lead the market sometimes. It also gives occasional divergences that often work out (but not always, as I observed).

 

However, the Blowfish Vol splitter also has useful features. As I point out in the text on the chart, the indicator doesn't seem to like double bottoms. While price is making a double bottom, the blue (big trade) version of the indicator keeps going down until the double bottom has completed. As it is completing, the indicator frequently seems to consolidate with small range bars, then break out of its consolidation with a strong bar up (for bullish moves). This seems to signal a reversal in trend in the price.

 

One may also notice that, as price was generally going down on the righthand half of the chart, the big traders were generally going south as well, while the small and medium sized traders were still buying as the price went down.

 

Anyway, I hope this is helpful to someone. I've got more charts I could post, but these were my two best.

 

Tasuki

5aa70ee036c18_0940AMEOT5minpaint.png.9dc64c3a0bc71d2a59878b36a7f485d7.png

5aa70ee03fd92_0940AMTS5minpaint.thumb.png.90c55b8129899bde30e13ba260c7c6ef.png

Share this post


Link to post
Share on other sites
I'm not sure how many screenshots you folks would like to see. ...

Tasuki

 

 

 

The more the merrier.

 

I wish you had posted them during the week;

when people's memory on the day's action was still fresh on their mind, people could relate to the signals better.

Share this post


Link to post
Share on other sites

Hey guys,

 

Great thread. There is a similar one on the Ninja forum as well that got re-started after the "dumb money" videos were posted. It wasn't long ago I found out about EOT and started researching them as well. So far they seem like good guys.

 

But I have to ask... you are spending a lot of time on this, a surprising amount of time in fact... if this indicator is so good, why don't you just buy it? I mean it is pretty cheap I think, one good trade a month and you'll more than pay for it...

 

Still with that being said, I would like the source simply because 1) I want to tinker with it in hopes of improving it, and 2) I also dislike having to lease them vs. being able to buy them out right.

 

However, at the end of the day, there is a lot of work going on here and I would think your time is more valuable -- just buy (lease) them... ?

 

Mike

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.