MarketProfileLive

MarketProfileLive

Market profile indicator for the ProRealTime trading platform, designed to analyze and display the distribution of trading activity over the current day. It calculates the market profile by examining the price levels at which trading activity occurs and highlights areas of high and low activity. This script employs several key features:

  1. Dynamic Range Calculation: It calculates the highest and lowest price levels within a specified period, adjusting dynamically as new data comes in.
  2. Volume Analysis: The script assesses the volume of trades at different price levels, identifying areas with significant trading activity. This feature uses an array to track the number of touches (i.e., instances where the price hits a specific level) to determine the most traded price levels (MaxTouch1 and MaxTouch2).
  3. Standard Deviation and Center Line (CL): It computes the standard deviation of prices to determine the volatility around the mean price level, along with the center line, to outline the Value Area High (VAH) and Value Area Low (VAL).
  4. Visualization Enhancements: The script uses rectangles and text annotations to visually represent the market profile, including the opening (O) and closing (C) prices, VAH, and VAL. It also highlights the highest and lowest prices reached within the session and marks specific periods of interest, such as the Asian session or periods of imbalance.
  5. Customizability: Parameters such as the period for calculations, ATR (Average True Range) for volatility assessment, and specific session times are customizable, allowing traders to adapt the indicator to their specific needs.

This indicator is particularly useful for traders who rely on volume profile analysis to make informed decisions, offering insights into where and how much trading activity is occurring at different price levels. It helps identify key support and resistance levels, areas of consolidation, and potential price movement directions based on historical trading activity.

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. Ciccarelli Franco • 02/20/2024 #

    Sembra molto interessante e volevo dei chiarimenti se possibile :Le righe commentate vanno lasciate cosi come sono? Potresti inoltre spigare le funzioni delle varie linee?
    Grazie

  2. KumoNoJuzza • 02/20/2024 #

    Thank you @philippe59139 !! We finally have the VAL / VAH to play with.
    Could you attach the screenshot in higher resolution ? Merci 🙂

  3. yanntorp • 340 days ago #

    Merci @pilippe59139 pour le travail que vous partagez. Vos programmes sont vraiment au top.

  4. Razz • 300 days ago #

    Bonjour
    Je pense que votre indicateur est très bon. Serait-il possible d’afficher la heatmap sur le côté droit ?
    Merci de partager cet indicateur avec nous.

    • philippe59139 • 300 days ago #

      if marketEtHeamap=1 then

      drawtext(“#touch#”,barindex+10,checkprice,SansSerif,Standard,10) coloured(110,110,110)
      drawtext(“████”,barindex+10,checkprice) coloured(r,0,0,alpha)
      if step>5 then

      endif
      drawrectangle(barindex[cont]-touch/(dist),checkprice-step/2,barindex[cont],checkprice+step/2)coloured(0,r,130,alpha)bordercolor(200,r,0,10)
      endif

      if touch<=1 then
      drawrectangle(barindex+5,checkprice-step/2,barindex[cont],checkprice+step/2)coloured(110,110,110,alpha)bordercolor(200,r,0,10)
      endif

      checkprice=checkprice+step //increase price check for next round
      ind=ind+1 //increase array index
      wend

      DrawText("#cont#",Barindex[cont+1]+10,hh+atr,Dialog,Bold,30) coloured(0,0,0,250)

      DRAWsegment(barindex, MaxTouch2, Barindex[cont], MaxTouch2) coloured(r,0,150,250)style(line,3)
      DRAWsegment(barindex, VAH, Barindex[cont], VAH) coloured(0,130,0,250)style(line,3)

      DRAWsegment(barindex, VAL, Barindex[cont], VAL) coloured(250,0,0,250)style(line,3)

      next
      next
      endif

      O=dopen(0)
      c=dclose(0)

      drawrectangle(Barindex[cont+1], o,Barindex[cont]+1, close) coloured(255,55,150,250) bordercolor(210,210,210,50)
      drawtext("O ➤—",Barindex[cont]+x,o*pipsize,Dialog,Standard,10) coloured(0,0,210,250)
      drawtext("C ➤—",Barindex[cont]+x,c*pipsize,Dialog,Standard,10) coloured(0,0,210)
      drawtext("VAH",Barindex[cont]+x, VAH*pipsize,Dialog,Standard,10) coloured(0,0,210,250)
      drawtext("VAL",Barindex[cont]+x, VAL*pipsize,Dialog,Standard,10) coloured(0,0,210,250)
      //drawtext("VAL",coordX+45, val) anchor(MIDDLE ,xshift,value)coloured(r,0,0)
      if IsLastBarUpdate then

      For j = 1 To nb do
      for i = 1 To StopLookback-1 do

      IF High[StopLookback*(j-1)+i]=hh[(j-1)*StopLookback] Then

      //hh=High[StopLookback*(j-1)+i]
      HighestI = BarIndex[StopLookback*(j-1)+i]
      //DRAWTEXT(hh[(j-1)*StopLookback]-x, HighestI, hh[(j-1)*StopLookback]+20, Dialog, Standard, 12) COLOURED(0,255,0)
      //DRAWARROWDOWN(HighestI-x,hh[(j-1)*StopLookback]+5) COLOURED(0,255,00)
      endif
      IF Low[StopLookback*(j-1)+i]=ll[(j-1)*StopLookback] Then
      //ll=Low[StopLookback*(j-1)+i]
      LowestI = BarIndex[StopLookback*(j-1)+i]
      //DRAWTEXT(ll[(j-1)*StopLookback]-x, LowestI, ll[(j-1)*StopLookback]-20, Dialog, Standard, 12) COLOURED(200,0,0)
      //DRAWARROWUP(LowestI-x,ll[(j-1)*StopLookback]-5) COLOURED(255,0,00)
      endif

      next
      next
      endif
      drawrectangle(barindex[cont],hh,barindex+4,ll)coloured(0,r,130,1)bordercolor(200,r,0,alpha)
      drawtext("████",barindex+10,MaxTouch2) coloured(r,0,150,250)
      drawtext("████",barindex+10,VAH) coloured(0,130,0,250)
      drawtext("████",barindex+10,VAL) coloured(250,0,0,250)

    • philippe59139 • 300 days ago #

      voici pour toi RAZZ il te faut simplement ajouter les drawtext

      https://www.prorealcode.com/topic/marketprofileliveserait-il-possible-dafficher-la-heatmap-sur-le-cote-droit/

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar

+3 more likes

Related users ' posts
Nicolas That's right, in ProScreener we can't have a lookback more than 254 days. There is nothing w...
cjdevasia Hi, Nicolas,     please guide me how can i scan following conditions in pro real time  S...
Nicolas For everyone benefit, I prefer to answer coding request in the forum. Please open a new topi...
Nicolas Thanks for contributing to the "ichimoku section" of the prorealtime code library Don't he...
sourberry Thank you , this is a great indicator works beautifully. Could you kindly modify to scr...
pp_playaflamenca Excuse me,... reading your code about spanB: [ SenkouSpanBFutureW = (Highest[SenkouSpanPerio...
Nicolas
8 years ago
Better Volume
Better Volume
39
Indicators
Keyeming Hello Nicolas; not sure to undersntad line 167, and in the video I d'ont remember that the a...
Nicolas I don't know, this code is 6 years old and I made a 1:1 translation of the provided code by ...
Alai-n https://emini-watch.com/free-stuff/volume-indicator/
Nicolas
9 years ago
Nicolas You will find the VWAP code from PRT here: https://www.prorealcode.com/topic/is-there-any-wo...
keks Thanks for sharing this wonderful code. Is there a way to draw a horizontal line to plot pre...
taklause Hello, just one question, can it be that this indicator does not work on ProRealTime v12? T...
Nicolas
9 years ago
Up on Big Volume
Up on Big Volume
0
Screeners
Nicolas
9 years ago
Nicolas
9 years ago
Nicolas
9 years ago
Nicolas Just replace the last line with this : RETURN dm as "Volume Weighted MACD", masignal as "Si...
thomas2004ch I happen to read this article. I would say the formel 'd = maslow - mafast' could be inverse...
Nicolas You are right! but still the picture is looking good. The formula is inverted! dunno why :) ...

Top