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

    • SMMT Summit Therapeutics stock watch for breakout at https://stockconsultant.com/?SMMT  
    • MRO Marathon Oil stock trending higher, watch for a top of range breakout at https://stockconsultant.com/?MRO
    • Date: 19th July 2024.   Global Stocks Tumble as Risk Appetite Plummets!   US ECONOMY The NASDAQ declines for a third straight day and fell to its lowest level for July. Netflix Quarterly Earnings Report unable to support US indices. The Dow Jones loses momentum after 6 straight bullish days. The US Dollar Index attempts to regain losses from earlier in the week and trades 0.65% higher than yesterdays The British Pound comes under pressure from the decline in Retail Sales. However, the New Zealand Dollar continues to be the worst performing currency. GBPUSD   The British Pound against the US Dollar is losing momentum for two reasons. The first is that the exchange rate is largely being driven by the Dollar which has risen in value across the board. The US Dollar Index is attempting to regain loses from earlier in the week and trades 0.65% higher than yesterdays open. This is partially due to the lower price but also the lower investor sentiment as stocks falls over the past 3 trading days.     The second reason is the poor economic data from the UK which is likely to pressure the Bank of England to adjust interest rates at the next meeting. According to economists a 25-basis point cut at the next meeting is not yet certain. However, a cut will take place either on the 1st of August or September 19th unless something drastic changes. The poor data includes the number of new unemployed individuals which has considerably risen over the past 2 months. This morning, the UK government also confirmed Retail Sales has fallen 1.2% which is double the decline previously expected.   For the US, weekly employment data was released yesterday: the number of Unemployment claims rose by 243,000, exceeding both the forecast of 229,000 and the previous figure of 223,000. Additionally, the total number of citizens receiving government assistance increased from 1.847 million to 1.867 million, raising the likelihood of interest rate adjustments in September. According to most analysts, the rate cut for September is fully priced in at around 103.20 for as long as other central banks also adjust.   The US Federal Reserve’s Beige Book, published this week, indicates that economic activity is growing at a moderate pace, but businesses expect a slowdown over the next six months due to the US election campaign and consumers struggling with prices. However, the lower risk appetite is triggering higher demand for the Dollar over the past 48 hours. It’s vital investors continue to monitor the US Dollar Index while analysing the GBPUSD.   The price of the exchange is now trading below the 75-Period EMA and below the 50.00 on the RSI. This indicates low sentiment towards the Pound and bearish control for the time being. Fibonacci retracement levels indicate a sell signal will arise at the 1.29290 price whereas the breakout level indicates 1.29261. however, if the price rises above 1.29400 or the trendline, short-term sell signals become unlikely.   USA100   The price of the NASDAQ has now fallen for 3 consecutive days but did see less downward momentum compared to Wednesday’s collapse. The index has now fully corrected the gains for the first 2 weeks of the month and is trading close to the previous support level. However, as previously mentioned, due to the higher economic risk, investors will most likely need strong earnings data to be tempted to purchase the discount unless the price becomes even more favourable.     The price of Bond Yields has risen during this morning’s Asian session and the VIX is also trading slightly higher. The VIX this week has already added almost 10% which indicates a significant decline in risk appetite. In addition to this, the poor data from the rest of the world’s leading economies can also damage sentiment towards stocks. Currently the biggest indication for short term upward price movement is the lower price and potential upcoming earnings data.   Netflix has released their earnings report overnight. The company’s earnings read 2.40% higher than expectations at $4.88 and revenue was 3 million higher than expectations. However, the stock is yet to see any major volatility or support. Currently the stock trades 0.18% lower.     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 on how markets work. Click HERE to register for FREE!   Click HERE to READ more Market news.   Michalis Efthymiou Market Analyst 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.
    • FOXF Fox Factory stock watch for an upside gap breakout at https://stockconsultant.com/?FOXF
    • ROKU stock nice rally off the 53 support area, watch for a bottom breakout above 66.51 at https://stockconsultant.com/?ROKU  
×
×
  • Create New...

Important Information

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