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.

Recommended Posts

Hi Pino

 

I think you are searching this :

 

[LegacyColorValue = TRUE];


input:compress(1),len(30),letter1(1),txtcolr(7),opncol(6),closcol(6),lastcol(6),VAprcnt(.70),Valcol(5),
Valsize(3),Stime(Sess1StartTime),passwrd("dxlgkgk79ds8sncdk");

vars:lett("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"),t1(0),vsize(0),cpt(0),dl(0),
lcount(1),fp(0),daynum(0),d0(0),mid(0),dlo(0),pc(0),pc2(0),skp(0),labl(0),vala(0),vap(0),cp(0),t0(0),nuflag(0),
hh(0),ll(0),x(0),et(0), clet(""),curtxt(""),th(0),tl(0),tpstr("00"),tot(0),va(0),d2p(0),oldclet(""),
barhi(0),barlo(0),mintick(0),xpts(0),price(0),up(0),dn(0),oldup(0),olddn(0),flag(0),flag2(0) ;

array:pri[10000](0),tpo[10000](0),pristr[10000]("");


nuflag=0;
if t0 <= Sess1EndTime and t > Sess1EndTime and Sess2StartTime <> 0 then nuflag=1;
if d <> d0 and Sess2StartTime = Sess2EndTime then nuflag=1;
if t0=sess1endtime then nuflag=1;
if  currentbar=1  or nuflag=1   then begin
if currentbar=1 then begin
	vap=VAprcnt;
	x=currentdate;
	if x < 991001 and x > 250101 and passwrd ="bngjdfjru57er" then value98=1; 
	if x < 991231 and x > 250101 and passwrd ="dxlgkgk79ds8sncdk" then value98=1; 
	if BlockNumber <> 32474  then value98=1;	
	value97= 1/value98;
	vsize=mod(valsize+7,7);        
	if vsize < 2  then value88=5 else value88=vsize;
	mintick = 1 point * minmove * compress; 
	xpts=500*mintick;
end;
lcount=letter1;
if currentbar > 1 then begin
	if valcol <> 0 and flag2=0 then begin
		mid=0;value23=0;
		cpt=tl;cp=tl + (th-tl)/2; {center of dist.}
		for x = tl to th begin 
			if pristr[x] <> "" then begin
				pristr[x]=nutpstr(tpo[x],pristr[x],pri[x]);
				value23=value23 + tpo[x]; {total tpo count}
				if tpo[x]=mid and x <= cp then cpt=x;
				if tpo[x]=mid and x>cp and(x-cp) < AbsValue(cp-cpt) then cpt=x;
				if tpo[x] > mid then begin
					cpt=x;
					mid = tpo[x];
				end;
			end;
		end;
		va=value23 * vap;

		x=mid;up=cpt;dn=cpt;
		while x < va begin
			value19=tpo[up+1]+tpo[up+2];  value20=tpo[dn-1]+tpo[dn-2];
			if value19 >= value20 then begin
				if x+tpo[up+1] >= va then begin
					x=x+tpo[up+1]; up=up+1;
				end else begin
					x=x+value19;  up=up+2;
				end;
			end else begin
				if x+tpo[dn-1] >= va then begin
					x=x+tpo[dn-1]; dn=dn-1;
				end else begin
					x=x+value20;  dn=dn-2;
				end;				
			end;
		end;	
		if up > th then up=th; if dn < tl then dn=tl;	
		up= fp+((up-500)*mintick);
		dn=fp+((dn-500)*mintick);
		value62=fp+((cpt-500)*mintick);
		labl= text_new(d2p,t1,dl-mintick,"VA:"+mp_str32(dn)+" "+mp_str32(up));
		TEXT_SETSTYLE(labl,0,2);	
		TEXT_SETCOLOR(labl,valcol);
		vala=TL_New(d2p,t1,up,d2p,t1,dn);
		TL_SetColor(vala,valcol);
		TL_SetSize(vala,vsize);

		value60=TL_New(d2p,t1,value62+mintick/15,d2p,t1,value62-mintick/15);				
		TL_SetColor(value60,valcol);
		TL_SetSize(value60,value88);
	end;
	pc2=0;
	for value4=tl to th begin
		price=fp+((value4-500)*mintick) ;					
		if price <= pc  then pc2=value4;  
	end;
	if pc2=0 then pc2=barlo;
	curtxt=pristr[pc2];
	if RightStr(curtxt,1) <> "<" then begin
		 text_setstring(pri[pc2],curtxt+" <");
		Text_SetColor(pri[pc2],closcol);
	end;
end; 
t1=t;
d2p=d;
labl=0;vala=0;
for value1=tl to th begin
	pristr[value1]="";
	tpo[value1]=0;
end;
clet=curletstr(stime,len,letter1);
oldclet=clet;
dlo=l;
fp=o; 
tpo[500]=1;
th=500;tl=500;
flag=0;                                   
pri[500]= text_new(d,t1,o,"   >"+clet);
pristr[500]="   >"+clet;
TEXT_SETSTYLE(pri[500],0,2);	
TEXT_SETCOLOR(pri[500],opncol);
hh=o;ll=o;mid=1;tot=1;value22=currentbar;
dl=l;
if d= JulianToDate(LastCalcJDate) then flag2=1;
end; 
clet=curletstr(stime,len,letter1) ;
t0=t;d0=d;pc=c;
barhi=intportion((xpts+h-fp+(mintick/10))/mintick);
barlo=ceiling((xpts+l-fp-(mintick/10))/mintick);
if barhi > th then th=barhi;
if barlo < tl then tl=barlo;
if l < dl then dl=l;
IF datacompression=0 and  currentbar  > value22 then begin
lcount=lcount+1;
if lcount=53 then lcount=1;
clet=midstr(lett,lcount,1) ;
hh=o;ll=o;flag=flag+1; 
end;
value22=currentbar;
IF datacompression = 1 and oldclet <> clet  then begin
hh=o;ll=o;flag=flag+1;
end;

for value4=barlo to barhi begin
price=fp+((value4-500)*mintick);
curtxt=pristr[value4]; 
if curtxt = ""   then begin
	tpo[value4]=1;
	pri[value4]= text_new(d2p,t1,price,"    "+clet);
	pristr[value4]="    "+clet;
	TEXT_SETSTYLE(pri[value4],0,2);	
	TEXT_SETCOLOR(pri[value4],txtcolr);
end else begin
	if RightStr(curtxt,1) <> clet then begin
		text_setstring(pri[value4],curtxt+clet);
		pristr[value4]=curtxt+clet;
		tpo[value4]=tpo[value4]+1;
	end;
end;
end;
if h>hh then hh=h;
if l < ll then ll = l;
{------------------------------------------------------------------------------------------}
if valcol <> 0  and  lastbaronchart  then begin
mid=0;value16=0;value23=0;
cpt=tl;cp=tl + (th-tl)/2; {center of dist.}
for x = tl to th begin 
if pristr[x] <> "" then begin
	pristr[x]=nutpstr(tpo[x],pristr[x],pri[x]); 
	value23=value23 + tpo[x]; {total tpo count}
	if tpo[x]=mid and x <= cp then cpt=x;
	if tpo[x]=mid and x>cp and(x-cp) < AbsValue(cp-cpt) then cpt=x;
	if tpo[x] > mid then begin
		cpt=x;
		mid = tpo[x];
	end;
end;
end;
va=value23 * vap;
if l < dlo  then begin
dlo=l;
price=fp+((tl-501)*mintick);
if labl <> 0 then Text_SetLocation(labl,d2p,t1,price);
end;
if labl =0 then begin
price=fp+((tl-501)*mintick);
labl= text_new(d2p,t1,price,"-");
TEXT_SETSTYLE(labl,0,2);	
TEXT_SETCOLOR(labl,valcol);
end;
if va <> 0 then begin
value61=value18; 
x=mid;up=cpt;dn=cpt;
while x < va begin
value19=tpo[up+1]+tpo[up+2];  value20=tpo[dn-1]+tpo[dn-2];
if value19 >= value20 then begin
	if x+tpo[up+1] >= va then begin
		x=x+tpo[up+1]; up=up+1;
	end else begin
		x=x+value19;  up=up+2;
	end;
end else begin
	if x+tpo[dn-1] >= va then begin
		x=x+tpo[dn-1]; dn=dn-1;
	end else begin
		x=x+value20;  dn=dn-2;
	end;				
end;
end;	
if up > th then up=th; if dn < tl then dn=tl;	
value18=cpt;
oldup=up;
olddn=dn;
up= fp+((up-500)*mintick);
dn=fp+((dn-500)*mintick);
if flag=1 then value63=t;
if up > dn and flag > 1  then begin
if vala = 0 then begin
	vala=TL_New(d2p,t1,up,d2p,t1,dn);
	TL_SetColor(vala,valcol);
	TL_SetSize(vala,vsize);
	value62=fp+((value18-500)*mintick);
	value60=TL_New(d2p,t1,value62+mintick/15,d2p,t1,value62-mintick/15);
	TL_SetColor(value60,valcol);
	TL_SetSize(value60,value88);
end else begin
	if oldup <> up then TL_SetBegin(vala,d2p,t1,up);
	if olddn <> dn then TL_SetEnd(vala,d2p,t1,dn);
end;
end;
if {value61 <> value18 and} flag > 1  then begin
value62=fp+((value18-500)*mintick);
TL_SetBegin(value60,d2p,t1,value62+mintick/15);
TL_SetEnd(value60,d2p,t1,value62-mintick/15);
end;
Text_SetString(labl,"VA:"+mp_str32(dn)+" "+mp_str32(up));
end;
end;

if lastcol > 0   then begin
if value10 = 0 and currentbar=3 then begin
value10=tl_new(value50,value51,c,d,t,c);
tl_setcolor(value10,lastcol);
tl_setsize(value10,0);
TL_SetExtLeft(value10,true);
end else if currentbar > 3 and LastBarOnChart   then begin
tl_setend(value10,d,t,c);
tl_setbegin(value10,value52,value53,c);
end;
value52=value50;value53=value51;
value50=d;value51=t;
end;

plot1(l-mintick,"dummy");

 

P.S.

 

Juve or Toro ?

Share this post


Link to post
Share on other sites

Thank you Shrike for your reply, but I think this code is referring to Market Profile...while I am looking for Volume Profile... :-(

Do you have any idea where I can find it?

 

I need something like this:

 

Ps: Juve...! :-D Are you italian?

5aa70fd14c4f7_dec12vpChartofGLOBEX@ESH9.png.9a530dd24b84353e46766360713a1dbf.png

Share this post


Link to post
Share on other sites
Thank you Shrike for your reply, but I think this code is referring to Market Profile...while I am looking for Volume Profile... :-(

Do you have any idea where I can find it?

 

I need something like this:

 

Ps: Juve...! :-D Are you italian?

 

 

can you describe the difference?

Share this post


Link to post
Share on other sites
Thank you Shrike for your reply, but I think this code is referring to Market Profile...while I am looking for Volume Profile... :-(

Do you have any idea where I can find it?

 

I need something like this:

 

Ps: Juve...! :-D Are you italian?

 

Hi pino

 

take a look at the formula , it produces the same thing that you posted :\:helloooo:

 

yes i'm italian and i come from the city where you have stolen the game last sunday

:boxing:

Share this post


Link to post
Share on other sites

Thank to Tams too for his reply.

 

Well, correct me if I'm wrong, but I know that there is an important difference: MP shows the POC (Point of Control), while VP shows the PVP (Peak Volume Price), that sometimes it is not the same value.

In VP the PVP is not necessarely the peak with the major persistence of volume, but it is the average of the prices times total volume.

 

So, I don't need to know how many times a specific price occurs (as indicated in MP), but I need to know how much volume occurs at every price level, because it is possible that price "X" occurs 10000 times (so that MP shows a peak at X price level) while peak of volume occures at "Y" price level (so that VP shows a peak at Y price level).

 

Sorry for my bad english, but I hope you understood me. ;-)

 

So Shrike, you are from Genova, right?

Share this post


Link to post
Share on other sites

Hi guys, I have 2 questions for you EasyLanguage guru that can be very helpful for a lot of readers. :-D

 

1)

Is it possible to plot the whole content of an array?

E.g, if I had a dinamic array declaration like PinonirvanaArray[999](0), where each element number (from 0 to 999) correspond to price, and each element value correspond to volume recorded for each price, could it be possible to plot all these values together on a chart?

 

2)

Is is possible to plot on a chart an indicator with different axis? I mean, is it possible to plot on a 5 minute chart an indicator that shows prices on Y axis and for example seconds on X axis?

As alternative, coming back to my aim to write down a Volume Profile code, on X axis I could plot volume for each price.

 

Thank you all...

:missy:

Edited by pinonirvana

Share this post


Link to post
Share on other sites
Hi guys, I have 2 questions for you EasyLanguage guru that can be very helpful for a lot of readers. :-D

 

1)

Is it possible to plot the whole content of an array?

E.g, if I had a dinamic array declaration like PinonirvanaArray[999](0), where each element number (from 0 to 999) correspond to price, and each element value correspond to volume recorded for each price, could it be possible to plot all these values together on a chart?

 

yes, it is possible.

 

 

2)

Is is possible to plot on a chart an indicator with different axis? I mean, is it possible to plot on a 5 minute chart an indicator that shows prices on Y axis and for example seconds on X axis?

As alternative, coming back to my aim to write down a Volume Profile code, on X axis I could plot volume for each price.

 

Thank you all...

:missy:

 

yes with MultiCharts.

not sure with TradeStation.

Share this post


Link to post
Share on other sites

not sure why you say Price is Purple... The Purple lines must be either Volume at Time or Volume from another timeframe. Price is clearly shown on the Right Axis.

 

Could you post a link to the source of this image please.

 

Thanks

bakrob99

Share this post


Link to post
Share on other sites
says

"show the price distribution in magenta and volume distribution in cyan"

 

I believe that what he means by this is that the Magenta shows the TPO count or the That Price Occurred which means the amount of time the market spent in this price zone. Normally based on a 30 minute period.

 

The Cyan will reflect the volume at the price in all periods.

 

Both are volume measurements.

 

Why anyone would pay for this is beyond me. TradeStation (and most other platforms) have the volume distribution contained in their DOM and that uses much feweer resources than trying to update this. Notice that there is no axis to reference how much volume is in either the magenta or cyan bars.

Share this post


Link to post
Share on other sites

This one interested me because it wasn't based on 30 min etc but the entire session. I haven't had time yet but will work with.

Not actual volume - percentage of by price.

Price is percentage as well by number of trades at instead of volume.

Why would anyone pay for anything instead of learning to code?

Just kidding.

I am chart only so that is why I would use - I don't open the matrix.

 

Anyway, posted pic in reply to ability to plot in axis of choice.

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.


  • Similar Content

    • By Quantower
      The main goal of this thread is to show what Power Trades is and how it works in different markets. We will show some patterns on the ES and NQ futures, as well as discuss possible improvements to this functionality.
      What is Power Trades?
      Ok, first we will consider what the Power Trades is and how it finds zones.
      Power Trades shows the zones with the execution of a large number of orders in a very short time, which will affect the price change with a high probability.
      Here are a few examples of how it looks like


      How it finds zones?
      There is a continuous process of placing, changing and executing orders in the market. All this affects the price change and the expectations of traders regarding the future price.
      When a large order appears at a certain level, the price is more likely to come to this order and it will be executed because the market is always looking for levels with liquidity. This already applies to the order flow and the mechanics of orders matching, so we will omit the principles on which the orders are matched.
      It is only important to understand that "abnormal events" occur in the market at certain times. Execution of a significant volume of orders in a very short time is one of such events.
      The Power Trades Scanner has several important settings that directly affect the results:

      Total Volume — the minimum value of the volume that should be traded during the specified time interval
      Time Interval, sec — the time over which the Total Volume should be traded
      Basis Volume Interval, sec — this parameter shows how much % took the traded volume in the total volume for the specified time.
      Zone Height, ticks — this parameter will show only those zones where the height is less than or equal to the specified value (in ticks).
      Level2 level count — the number of levels that are involved in the calculation of Imbalance and the Level 2 Ratio column in the table of results.
      Filter by Delta,% — the parameter will show zones that have a delta value greater than or equal to that specified in the setting. The value must be specified by the module, so the table will show both positive and negative delta values. We recommend paying attention to the zones with the delta above 50% (taking into account the specifics of each trading instrument).
      For example, let's set the Total Volume of 2000 contracts and Time Interval in 3 seconds on the E-mini SP500 futures. This means that the scan will be based on the available history and will show on the chart only those zones that have such a volume for the specified time.

      Additionally, it is worth to set a delta value to filter out the zones with one-side trades. The more delta value, the high probability that the price will reverse.

      So, as a starting point about this scanner, I think this information will be enough
    • By makuchaku
      Hi everyone,
      This is my maiden analysis using volume profile - so please don't hesitate to share your feedback.
      As per the attached analysis, I think that SPY is primed for a short - for many reasons
      - Multiple strong rejection of long positions exist at Resistance R1 and R2 : seems like sellers defending their positions
      - Very strong short volume seen at R2 : further signifying sellers who are ready at that level
      However, once the price reaches Support S1, there seems to be a strong buying sentiment which has rejected previous shorts. You can see trading ranges & pullbacks to S1 where buyers and sellers seem to agree on a price range, often leading to a buyer dominance.
      What do you think?

    • By TraderJoe
      Hey All,
      does anyone sell Volume Profile Indicator for NT8.
       
      Regards
  • Topics

  • Posts

    • Date: 22nd January 2025.   Netflix Earnings Surge Driving the NASDAQ to Monthly Highs!   The NASDAQ increases in value for a fourth consecutive day, gaining momentum after Netflix stocks rise more than 15%. Earnings reports are gaining speed for the technology sector, but why has Netflix stocks seen such a high and sudden rise in demand? Netflix Stocks Increase 15% Supporting the NASDAQ! Netflix stocks have been one of the best-performing stocks within the NASDAQ, rising more than 79% in 12 months. However, even for Netflix, a 15% rise in less than 24 hours is considered substantial. The quarterly earnings report was made public by Netflix after the market closed on Tuesday. The earnings report confirmed the following: Netflix beat their earnings per share expectations - $4.27 reported vs $4.21 expectations. Netflix’s revenue surpasses the previous quarter - $10.25 billion this quarter vs $9.82 billion in the previous quarter. The online streaming company confirms projects to expand into live sport and event streaming will proceed. In addition to this, the company’s forward guidance for 2025 remains positive. Netflix is the 10th most influential company for the NASDAQ meaning the positive earnings data and bullish price movement supports the overall price of the NASDAQ. In addition to this, the positive earnings improve the sentiment towards the entire US technology sector. Investors will now turn their attention to the quarterly earnings report for Intuitive Surgical. Intuitive Surgical stocks on Tuesday rose 1.94%. How is the Economy And Politics Affecting the NASDAQ?     The US stock market is witnessing an upward correction after struggling in the last weeks of 2024. The bullish price movement is a result of a sharp decline in bond yields, the new US administration and earnings season. Investors remain relieved that bond yields have fallen back down from the 5.00% level. If bond yields continue to decline further, particularly below 4.50%, the move would be deemed as positive for the US stock market. President Trump took office on Monday and so far the pro-US rhetoric from the President, Vice President and Secretary of State continues to support the stock market. So far, the main concern is how upcoming tariffs can negatively affect inflation and growth. However, some economists advise tariffs will become the “norm” and may have a lesser effect compared to 2018. However, this is something traders will continue to evaluate and monitor. The VIX this morning fell 0.83% lower and trades more than 5.70% lower over a 7-days. The lower VIX indicates a higher risk appetite towards the stock market. If the VIX continues to decline a strong buy indication may materialize. On the most influential stocks for the NASDAQ, 82% rose in value on Tuesday. However, Apple stocks, the most impactful stock, fell 3.19% due to poor sell data. If Apple stocks continue to decline, the NASDAQ’s upward trend may come under strain. In the meantime, investors over the next week will continue to monitor upcoming earnings reports. NASDAQ - Technical Analysis The price of the index is trading significantly higher than all Moving Averages on a 2-hour timeframe and relatively high on oscillators. These factors indicate that buyers are controlling the order book. However, price action also confirms the latest impulse wave measures 3.43% which is normally the point at which the index retraces. This is something that investors may also consider. The retracement potentially also may be triggered by Netflix buyers quickly selling to cash in profit after the sudden 15% bullish surge. If a retracement does indeed form, price action and the 75-period EMA indicates that the pullback may drop as low as $21,391.30.     Key Takeaways: The NASDAQ increases in value for a fourth consecutive day, but price action signals a possible retracement before continuing its bullish trend. Netflix stocks increase more than 15% due to strong earnings data. Netflix beat earnings and revenue expectations by 1.39% and confirmed projects to add live sports streaming to its platforms. The VIX trades more than 5.70% lower over a 7-days and US Bond Yields remain at recent lows. On the most influential stocks for the NASDAQ, 82% rose in value on Tuesday. Always trade with strict risk management. Your capital is the single most important aspect of your trading business.   Please note that times displayed based on local time zone and are from time of writing this report.   Click HERE to access the full HFM Economic calendar.   Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding of how markets work. Click HERE to register for FREE!   Click HERE to READ more Market news. Michalis Efthymiou HFMarkets Disclaimer: This material is provided as a general marketing communication for information purposes only and does not constitute an independent investment research. Nothing in this communication contains, or should be considered as containing, an investment advice or an investment recommendation or a solicitation for the purpose of buying or selling of any financial instrument. All information provided is gathered from reputable sources and any information containing an indication of past performance is not a guarantee or reliable indicator of future performance. Users acknowledge that any investment in Leveraged Products is characterized by a certain degree of uncertainty and that any investment of this nature involves a high level of risk for which the users are solely responsible and liable. We assume no liability for any loss arising from any investment made based on the information provided in this communication. This communication must not be reproduced or further distributed without our prior written permission.
    • DASH DoorDash stock, watch for a top of range breakout at https://stockconsultant.com/?DASH
    • SYF Synchrony Financial stock with a top of range breakout at https://stockconsultant.com/?SYF
    • RKLB Rocket Labstock, big rally off support and breakout at https://stockconsultant.com/?RKLB
    • RDW Redwire stock, what a launch off the 14.16 support area at https://stockconsultant.com/?RDW
×
×
  • Create New...

Important Information

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