Volume Storm Trend [ChartPrime]The Volume Storm Trend (VST)  indicator is a robust tool for traders looking to analyze volume momentum and trend strength in the market. By incorporating key volume-based calculations and dynamic visualizations, VST provides clear insights into market conditions.
 Components: 
 
  Calculating the median of the source data. 
  Volume Power Calculation: The indicator calculates the "heat power" and "cold power" by applying an Exponential Moving Average (EMA) to the median of volume data arrays.
 
// ---------------------------------------------------------------------------------------------------------------------}
// 𝙄𝙉𝘿𝙄𝘾𝘼𝙏𝙊𝙍 𝘾𝘼𝙇𝘾𝙐𝙇𝘼𝙏𝙄𝙊𝙉𝙎
// ---------------------------------------------------------------------------------------------------------------------{
max_val = 1000
src     = close
source  = ta.median(src, len)
heat.push(src > source ? (volume > max_val ? max_val : volume)  : 0)
heat.remove(0)
cold.push(src < source ? (volume > max_val ? max_val : volume) : 0)
cold.remove(0)
heat_power = ta.ema(heat.median(), 10)
cold_power = ta.ema(cold.median(), 10)
 
 Visualization: 
 
  Gradient Colors: The indicator uses gradient colors to visualize bullish volume and bearish volume powers, providing a clear contrast between rising and falling trends.
  
  Bars Fill Color: The color fill between high and low prices changes based on whether the heat power is greater than the cold power.
  
  Bottom Line: A zero line with changing colors based on the dominance of heat or cold power.
  
  Weather Symbols: Visual indicators ("☀" for hot weather and "❄" for cold weather) appear on the chart when the heat and cold powers crossover, helping traders quickly identify trend changes.
  
 
 Inputs: 
 
  Source: The input data source, typically the closing price.
  Median Length: The period length for calculating the median of the source. Default is 40.
  Volume Length: The period length for calculating the average volume. Default is 3.
  Show Weather: A toggle to display weather symbols on the chart. Default is false.
  Temperature Type: Allows users to choose between Celsius (°C) and Fahrenheit (°F) for temperature display.
 
 Show Weather Function: 
The `Show Weather?` function enhances the VST indicator by displaying weather symbols ("☀" for hot and "❄" for cold) when there are significant crossovers between heat power and cold power. This feature adds a visual cue for potential market tops and bottoms. When the market heats to a high temperature, it often indicates a potential top, signaling traders to consider exiting long positions or preparing for a reversal.
  
 Additional Features: 
 
  Dynamic Table Display: A table displays the current "temperature" on the chart, indicating market heat based on the calculated heat and cold powers.
  
 
 The Volume Storm Trend indicator is a powerful tool for traders
looking to enhance their market analysis with volume and momentum insights, providing a clear and visually appealing representation of key market dynamics.
Weather
DatasetWeatherTokyoMeanAirTemperatureLibrary   "DatasetWeatherTokyoMeanAirTemperature" 
Provides a data set of the monthly mean air temperature (°C) for the city of Tokyo in Japan.
this was just for fun, no financial implications in this.
reference:
www.data.jma.go.jp
TOKYO   WMO Station ID:47662 Lat 35o41.5'N  Lon 139o45.0'E
 year_() 
  the years of the data set.
  Returns: array : year values.
 january() 
  the january values of the dataset
  Returns: array\ : data values for january.
 february() 
  the february values of the dataset
  Returns: array\ : data values for february.
 march() 
  the march values of the dataset
  Returns: array\ : data values for march.
 april() 
  the april values of the dataset
  Returns: array\ : data values for april.
 may() 
  the may values of the dataset
  Returns: array\ : data values for may.
 june() 
  the june values of the dataset
  Returns: array\ : data values for june.
 july() 
  the july values of the dataset
  Returns: array\ : data values for july.
 august() 
  the august values of the dataset
  Returns: array\ : data values for august.
 september() 
  the september values of the dataset
  Returns: array\ : data values for september.
 october() 
  the october values of the dataset
  Returns: array\ : data values for october.
 november() 
  the november values of the dataset
  Returns: array\ : data values for november.
 december() 
  the december values of the dataset
  Returns: array\ : data values for december.
 annual() 
  the annual values of the dataset
  Returns: array\ : data values for annual.
 select_month(idx) 
  get the temperature values for a specific month.
  Parameters:
     idx : int, month index (1 -> 12 | any other value returns annual average values).
  Returns: array\ : data values for selected month.
 select_value(year_, month_) 
  get the temperature value of a specified year and month.
  Parameters:
     year_ : int, year value.
     month_ : int, month index (1 -> 12 | any other value returns annual average values).
  Returns: float : value of specified year and month.
 diff_to_median(month_) 
  the difference of the month air temperature (ºC) to the median of the sample.
  Parameters:
     month_ : int, month index (1 -> 12 | any other value returns annual average values).
  Returns: float : difference of current month to median in (Cº)

