NexusFi: Find Your Edge


Home Menu

 





Sierra Chart Reconstructed Time & Sales


Discussion in Sierra Chart

Updated
      Top Posters
    1. looks_one samsupertrader with 5 posts (0 thanks)
    2. looks_two whats1thingnow with 2 posts (0 thanks)
    3. looks_3 ludvig with 1 posts (3 thanks)
    4. looks_4 stevedua with 1 posts (0 thanks)
    1. trending_up 8,139 views
    2. thumb_up 3 thanks given
    3. group 9 followers
    1. forum 10 posts
    2. attach_file 3 attachments




 
Search this Thread

Sierra Chart Reconstructed Time & Sales

  #1 (permalink)
 samsupertrader 
Australia
 
Experience: Advanced
Platform: Sierra Chart
Broker: CTS/AMP
Trading: NQ, CL, HSI
Posts: 37 since Oct 2014
Thanks Given: 6
Thanks Received: 31

Hi there,

Does anyone know if there is a vendor which has an aggregated/reconstructed time & sales for SC? There are plenty of options for Ninja and other platforms do it but I have not been able to find a vendor for Sierra.

In particular I am keen on an indicator which allows you to plot the T&S prints on your chart.

Here is a picture of what I mean. The top platform is one called Advanced Time & Sales, and the bottom is Sierra Chart. The circles on the chart are the plots of the trades so you get a visual representation of where the market orders are stacking up, and or drying out.

I've reached out to a few developers to try and get a custom study done but no one seems to know how to do the reconstruction method. Jigsaw does it, Discotrading (NT indicator developer), Advanced Time & Sales etc. They are all ones I have used over the years but I won't move away from SC because of how stable it is. They all seem to use the same method because they all pretty much get the same results when put side by side.

I have a reconstructed T&S ribbon for SC but it does not print on the candle. The guy I got it off was not able to get back in touch with the original developer so not sure how this is reconstructed.

Cheers.

Attached Thumbnails
Click image for larger version

Name:	Reconstructed T&S Example.png
Views:	1108
Size:	1.15 MB
ID:	244259  
Started this thread Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Better Renko Gaps
The Elite Circle
REcommedations for programming help
Sierra Chart
MC PL editor upgrade
MultiCharts
Exit Strategy
NinjaTrader
ZombieSqueeze
Platforms and Indicators
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Just another trading journal: PA, Wyckoff & Trends
34 thanks
Tao te Trade: way of the WLD
24 thanks
Bigger Wins or Fewer Losses?
19 thanks
GFIs1 1 DAX trade per day journal
16 thanks
Vinny E-Mini & Algobox Review TRADE ROOM
13 thanks
  #2 (permalink)
ludvig
russia kaliningrad
 
Posts: 19 since Jan 2011
Thanks Given: 0
Thanks Received: 21

Sorry, it is coded about 4 yaes ago, the only main idea how to calculate expected volume from matching events, is true.
To work correct, this code should be recompiled with modern ACSIL names and members.

 
Code
#include "C:\SierraChart\ACS_Source\sierrachart.h"

SCDLLName("REAL ORDERS")

#define REAL_ORDERS(sc)\
if(MyBidVolume[sc.Index] >= volume1Threshold.IntValue && MyBidVolume[sc.Index] < volume2Threshold.IntValue)\
Bid1Volume[sc.Index] = sc.Close[sc.Index];\
else if(MyBidVolume[sc.Index] >= volume2Threshold.IntValue && MyBidVolume[sc.Index] < volume3Threshold.IntValue)\
Bid2Volume[sc.Index] = sc.Close[sc.Index];\
else if(MyBidVolume[sc.Index] >= volume3Threshold.IntValue)\
Bid3Volume[sc.Index] = sc.Close[sc.Index];\
else if(MyAskVolume[sc.Index] >= volume1Threshold.IntValue && MyAskVolume[sc.Index] < volume2Threshold.IntValue)\
Ask1Volume[sc.Index] = sc.Close[sc.Index];\
else if(MyAskVolume[sc.Index] >= volume2Threshold.IntValue && MyAskVolume[sc.Index] < volume3Threshold.IntValue)\
Ask2Volume[sc.Index] = sc.Close[sc.Index]; \
else if(MyAskVolume[sc.Index] >= volume3Threshold.IntValue)\
Ask3Volume[sc.Index] = sc.Close[sc.Index];\
Bid1Volume.DataColor[sc.Index] = RGB(255,0,0);\
Bid2Volume.DataColor[sc.Index] = RGB(255,0,0);\
Bid3Volume.DataColor[sc.Index] = RGB(255,0,0);\
Ask1Volume.DataColor[sc.Index] = RGB(0,255,0);\
Ask2Volume.DataColor[sc.Index] = RGB(0,255,0);\
Ask3Volume.DataColor[sc.Index] = RGB(0,255,0);\


SCSFExport scsf_TimeAndSalesTrueOrders(SCStudyGraphRef sc)
{
	int i = 0;      
  SCSubgraphRef Bid1Volume = sc.Subgraph[i++];
  SCSubgraphRef Ask1Volume = sc.Subgraph[i++];
  SCSubgraphRef Bid2Volume = sc.Subgraph[i++];
  SCSubgraphRef Ask2Volume = sc.Subgraph[i++];
  SCSubgraphRef Bid3Volume = sc.Subgraph[i++];
  SCSubgraphRef Ask3Volume = sc.Subgraph[i++];		
  SCSubgraphRef MyAskVolume = sc.Subgraph[i++];
  SCSubgraphRef MyBidVolume = sc.Subgraph[i++];
  
  int j = 0;
  SCInputRef volume1Threshold = sc.Input[j++];
  SCInputRef volume2Threshold = sc.Input[j++];
  SCInputRef volume3Threshold = sc.Input[j++];
  
  SCInputRef ticks1Threshold = sc.Input[j++];
  SCInputRef ticks2Threshold = sc.Input[j++];
  SCInputRef ticks3Threshold = sc.Input[j++];
  
	int& barStartIndex = sc.PersistVars->i1;
	int& intermediateIndex = sc.PersistVars->i2;
	
	if (sc.SetDefaults)
	{
		sc.DrawZeros = 0;  
    sc.GraphRegion = 0; 
    sc.ValueFormat =VALUEFORMAT_INHERITED; 
    
		sc.GraphName = "";
		sc.StudyDescription = "";

		sc.FreeDLL = 1;
		sc.AutoLoop = 1;
			
		
		Bid1Volume.Name = "Bid 1 Volume";
    Bid1Volume.DrawStyle = DRAWSTYLE_TRIANGLEDOWN;
    Bid1Volume.LineWidth = 3;
    Bid1Volume.PrimaryColor = RGB(128,0,128);
    
    Bid2Volume.Name = "Bid 2 Volume";
    Bid2Volume.DrawStyle = DRAWSTYLE_TRIANGLEDOWN;
    Bid2Volume.LineWidth = 5;
    Bid1Volume.PrimaryColor = RGB(128,0,128);
    
    Bid3Volume.Name = "Bid 3 Volume";
    Bid3Volume.DrawStyle = DRAWSTYLE_TRIANGLEDOWN;
    Bid3Volume.LineWidth = 7;
    Bid1Volume.PrimaryColor = RGB(128,0,128);
    
    Ask1Volume.Name = "Ask 1 Volume";
    Ask1Volume.DrawStyle = DRAWSTYLE_TRIANGLEUP;
    Ask1Volume.LineWidth = 3;
    Ask1Volume.PrimaryColor = RGB(0,128,128);
    
    Ask2Volume.Name = "Ask 2 Volume";
    Ask2Volume.DrawStyle = DRAWSTYLE_TRIANGLEUP;
    Ask2Volume.LineWidth = 5;
    Ask1Volume.PrimaryColor = RGB(0,128,128);
    
    Ask3Volume.Name = "Ask 3 Volume";
    Ask3Volume.DrawStyle = DRAWSTYLE_TRIANGLEUP;
    Ask3Volume.LineWidth = 7;
    Ask1Volume.PrimaryColor = RGB(0,128,128);
    
    volume1Threshold.Name = "Volume 1 Threshold";
		volume1Threshold.SetInt(20);
		
		volume2Threshold.Name = "Volume 2 Threshold";
		volume2Threshold.SetInt(50);
		
		volume3Threshold.Name = "Volume 3 Threshold";
		volume3Threshold.SetInt(200); 
		 
		return;
	}
     
    SCTimeAndSalesArray TimeSales;
    sc.GetTimeAndSales(TimeSales);
    
    if (TimeSales.GetArraySize() == 0)
        return;
    if(sc.Index == 0)
    {
     	barStartIndex = 0;
     	intermediateIndex = 0;
    }	 
     	  
   	if(sc.GetBarHasClosedStatus(sc.Index) == BHCS_BAR_HAS_CLOSED)
   		{
  			barStartIndex = TimeSales[TimeSales.GetArraySize() - 1].Sequence ;
  		}
  	
  	
	  	if(TimeSales[TimeSales.GetArraySize() - 1].Sequence >= barStartIndex && barStartIndex > intermediateIndex)
			{
				for (int TSIndex = TimeSales.GetArraySize() - 1; TSIndex >= TimeSales.GetArraySize() - 1 - (TimeSales[TimeSales.GetArraySize() - 1].Sequence - barStartIndex + 1); --TSIndex)
				{
					
					if(TimeSales[TSIndex].Level == SC_TS_BIDASKVALUES)
						{
							MyAskVolume[sc.Index] = 0;
							MyBidVolume[sc.Index] = 0;
							continue;
						}
					if(TimeSales[TSIndex].Level == SC_TS_ASK)
						{	
				  		MyAskVolume[sc.Index] += TimeSales[TSIndex].Volume;
				  		REAL_ORDERS(sc);
				  	}	
				  else if(TimeSales[TSIndex].Level == SC_TS_BID)
						{	
				  		MyBidVolume[sc.Index] += TimeSales[TSIndex].Volume;
				  		REAL_ORDERS(sc);
				  	}	
	  		}
		  }
		  else if(TimeSales[TimeSales.GetArraySize() - 1].Sequence >= barStartIndex && barStartIndex <= intermediateIndex) 
			{
				for (int TSIndex = TimeSales.GetArraySize() - 1; TSIndex >= TimeSales.GetArraySize() - 1 - (TimeSales[TimeSales.GetArraySize() - 1].Sequence - intermediateIndex + 1); --TSIndex)
				{
					if(TimeSales[TSIndex].Level == SC_TS_BIDASKVALUES)
						{
							MyAskVolume[sc.Index] = 0;
							MyBidVolume[sc.Index] = 0;
							continue;
						}
					if(TimeSales[TSIndex].Level == SC_TS_ASK)
						{	
				  		MyAskVolume[sc.Index] += TimeSales[TSIndex].Volume;
				  		REAL_ORDERS(sc);
				  	}	
				  else if(TimeSales[TSIndex].Level == SC_TS_BID)
						{	
				  		MyBidVolume[sc.Index] += TimeSales[TSIndex].Volume;
				  		REAL_ORDERS(sc);
				  	}	
	  		}
		  }
		  
		intermediateIndex = TimeSales[TimeSales.GetArraySize() - 1].Sequence;
}

Reply With Quote
  #3 (permalink)
 samsupertrader 
Australia
 
Experience: Advanced
Platform: Sierra Chart
Broker: CTS/AMP
Trading: NQ, CL, HSI
Posts: 37 since Oct 2014
Thanks Given: 6
Thanks Received: 31


Many thanks for this. I will let you know how I get along with it.

Started this thread Reply With Quote
  #4 (permalink)
 samsupertrader 
Australia
 
Experience: Advanced
Platform: Sierra Chart
Broker: CTS/AMP
Trading: NQ, CL, HSI
Posts: 37 since Oct 2014
Thanks Given: 6
Thanks Received: 31

I found a company called Beacon Commodity Trading https://www.beaconcommoditytrading.com who have an excellent trade reconstruction product. They are in the process of updating their website but you can get this indicator and some others on there now.

They have their own trade reconstruction Algo which is 99% consistent with other providers I have tested against (several stand alone platforms and Ninja add ons). It also has a T&S ribbon which shows where the trade takes place on the chart, and then there is an option to leave a shape on the chart for future reference. You can chose the size and shape and there are 5 size bands you can select from.

For trades that go through multiple levels the shape and the ribbon match to the level it finished at, so this is something that is unique compared to anything I have seen.

They have just released the first version of the indicator with a series of releases planned with improvements such as how the drawings are handled.

Anyway I have trialled it and as is it is suitable for what I need, and I think it is a first for Sierra Chart.

Attached Thumbnails
Click image for larger version

Name:	BCT T&S Reconstruction.png
Views:	786
Size:	136.3 KB
ID:	245423  
Started this thread Reply With Quote
  #5 (permalink)
whats1thingnow
Whistler, BC
 
Posts: 34 since Dec 2015
Thanks Given: 25
Thanks Received: 9

check this thread out:
https://www.sierrachart.com/SupportBoard.php?ThreadID=23587 >> https://www.sierrachart.com/index.php?page=doc/ChartSettings.html


sierra support says Reconstructed Tape is 100% accurate

Reply With Quote
  #6 (permalink)
 samsupertrader 
Australia
 
Experience: Advanced
Platform: Sierra Chart
Broker: CTS/AMP
Trading: NQ, CL, HSI
Posts: 37 since Oct 2014
Thanks Given: 6
Thanks Received: 31


whats1thingnow View Post

This is true but only for trades that are executed per price level. So for trades that are filled over multiple price levels they are reported as multiple trades which is not very useful if you are trying to establish the trade initiator/aggressor. This is not a limitation of SC rather this is the way that CME tag their trades.

For example 50 bid 5 lots, 49 bid 10 lots, 48 bid 15 lots. A 17 lot sell market order hits this gets reported as 3 order, 5,15,2 rather than 17 lots.

https://www.sierrachart.com/SupportBoard.php?ThreadID=31207

Started this thread Reply With Quote
  #7 (permalink)
whats1thingnow
Whistler, BC
 
Posts: 34 since Dec 2015
Thanks Given: 25
Thanks Received: 9


samsupertrader View Post
This is true but only for trades that are executed per price level. So for trades that are filled over multiple price levels they are reported as multiple trades which is not very useful if you are trying to establish the trade initiator/aggressor. This is not a limitation of SC rather this is the way that CME tag their trades.

For example 50 bid 5 lots, 49 bid 10 lots, 48 bid 15 lots. A 17 lot sell market order hits this gets reported as 3 order, 5,15,2 rather than 17 lots.

https://www.sierrachart.com/SupportBoard.php?ThreadID=31207

hummmm

good to know...

the product you mentioned can show it as a 17 lot sell order then i guess?

Reply With Quote
  #8 (permalink)
 samsupertrader 
Australia
 
Experience: Advanced
Platform: Sierra Chart
Broker: CTS/AMP
Trading: NQ, CL, HSI
Posts: 37 since Oct 2014
Thanks Given: 6
Thanks Received: 31


whats1thingnow View Post
hummmm

good to know...

the product you mentioned can show it as a 17 lot sell order then i guess?

Yes that is correct.

Here is a picture which helps explain it. On the T&S window you will see the raw feed, and then the reconstructed summary trade highlighted, and then the BCT Reconstructed trade. The trade is 25 sell market order which the summary trade would report as 20 & 5 as price went through two levels (6950.50, 6950.25), and the raw feed a heap of smaller trades. BCT captures it as the 25 sell market order which is useful if you believe understanding where large aggressive/initiator orders are taking place. It then records it on the chart so you can remember where these trades happened which is also useful.

In addition the indicator works on other non CME products such as EUREX and HKFE etc. so long as you have complete non filtered level 2 data. I occasionally look at HSI on the HKFE and it works well on that.

Attached Thumbnails
Click image for larger version

Name:	Raw, Summary and Reconstructed Trades.png
Views:	946
Size:	176.2 KB
ID:	246239  
Started this thread Reply With Quote
  #9 (permalink)
 4mat 
Tagbilaran
 
Experience: Intermediate
Platform: NT
Trading: ES
Posts: 1 since Sep 2016
Thanks Given: 0
Thanks Received: 0


samsupertrader View Post
I found a company called Beacon Commodity Trading https://www.beaconcommoditytrading.com who have an excellent trade reconstruction product. They are in the process of updating their website but you can get this indicator and some others on there now.

They have their own trade reconstruction Algo which is 99% consistent with other providers I have tested against (several stand alone platforms and Ninja add ons). It also has a T&S ribbon which shows where the trade takes place on the chart, and then there is an option to leave a shape on the chart for future reference. You can chose the size and shape and there are 5 size bands you can select from.

For trades that go through multiple levels the shape and the ribbon match to the level it finished at, so this is something that is unique compared to anything I have seen.

They have just released the first version of the indicator with a series of releases planned with improvements such as how the drawings are handled.

Anyway I have trialled it and as is it is suitable for what I need, and I think it is a first for Sierra Chart.

I am very interested in this indicator.
When I visit the website, I only see a logo banner. How did you get the trail for the indicator?

The big trade indicator with reconstructed tape is the only thing that is holding me from switching to SC.

4maT

Reply With Quote
  #10 (permalink)
 
stevedua's Avatar
 stevedua 
Luxembourg
 
Experience: Intermediate
Platform: Ninjatrader, Metatrader
Trading: CL, ES, GC, ZL, ZN, 6E, 6B, 6C
Posts: 5 since Jun 2017
Thanks Given: 0
Thanks Received: 0


Any news about a reconstructed tape for Sierra Charts?

Thanks

Reply With Quote




Last Updated on October 5, 2020


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
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.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts