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

    • BLND Blend Labs stock breakout, from Stocks to Watch at https://stockconsultant.com/?BLND
    • Date: 6th December 2024. How Will NFP Impact The Trading Markets? The Euro increased in value against most currencies on Thursday, but investors remained cautious over the ECB President’s comments. According to economists, the ECB is almost certain to cut interest rates next week. President Lagarde advises the Eurozone is likely to witness lower economic growth than previously expected. Analysts changed expectations for the US Unemployment Rate to rise to 4.2%. Most experts now expect the US rate of unemployment to remain unchanged. Poor US employment data can increase the potential for a December rate cut and further fuel the bullish trend in the stock market. EURUSD – Will The Fed Cut Interest Rates? The EURUSD rose in value on Thursday ignoring resistance levels but now moves closer to a stronger resistance point. This key level can be seen at 1.05969, but in order for the EURUSD to find bearish momentum at this level investors will be hoping for poor employment data. Economists expect the NFP Employment Change to read 215,000 and for the Unemployment Rate to remain at 4.1%. Analysts also continue to expect the growth in salaries to continue. If these three releases indicate a resilient and strong employment sector, the chances of a Federal Reserve rate cut fade. However, if the data is poorer, the US Dollar can potentially decline as a rate cut this month becomes more certain. Regarding the Euro, market participants are turning their attention to macroeconomic data from the Eurozone. Retail sales declined by 0.5% MoM, slightly worse than the expected ˗0.4%. Additionally, Germany’s industrial orders for October decreased by 1.5%, following a 4.2% rise in the previous month. This indicates weak domestic demand in both the German and broader European economies, potentially prompting the European Central Bank (ECB) to consider further interest rate cuts. A recent Reuters poll of leading economists suggests the ECB may lower borrowing costs by ˗25 basis points next week and by at least ˗100 basis points over the next year. Supporting this outlook, ECB President Christine Lagarde stated yesterday that economic growth in the Eurozone could be weaker than expected in the coming months, with risks of further deterioration likely to dominate in the medium term. The US Dollar Index is the best performing currency index so far today, but is not seeing significant gains. The Euro Index remains unchanged. The worst performing currency of the day is the Australian Dollar and the Japanese Yen. NASDAQ – How Will NFP Affect The NASDAQ? The NASDAQ retraced after gaining in value for 5 consecutive days and rising to an all-time high. So far in 2024, the NASDAQ has almost risen 30% but the short to medium term price action will depend on the upcoming employment data and next week’s consumer and producer inflation. Employment data for last week was released yesterday, showing that initial jobless claims rose by 224,000, surpassing both the forecast of 215,000 and the previous figure of 215,000. However, the total number of individuals receiving state assistance decreased from 1.896 million to 1.871 million, defying expectations of an increase to 1.910 million. Commenting on the situation, Federal Reserve Chair Jerome Powell noted that the US economy is performing better than anticipated, with declining risks of labor market deterioration. In this context, Powell suggested that the Federal Reserve could adopt a more cautious stance on monetary policy, aiming to achieve a neutral position for interest rates. 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 FX and CFDs 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.
    • WGS GeneDx stock, strong open, watch for a top of range breakout at https://stockconsultant.com/?WGS
    • UIS Unisys stock, nice top of range breakout at https://stockconsultant.com/?UIS
    • BX Blackstone stock, nice trend, pull back to 185.05 support area with bullish indicators at https://stockconsultant.com/?BX
×
×
  • Create New...

Important Information

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