Futures Rollover Volume MonitorFutures Rollover Volume Monitor
This indicator helps futures traders identify the most actively traded contract months in real time and spot the exact moment when volume begins rotating from the front-month contract to the next one — the rollover window that typically occurs 1–2 weeks before expiry.
How it works
The script automatically detects the root symbol from whatever futures instrument is on your chart (GC, ES, NQ, CL, SI, HG, and any other futures root). It then builds a list of individual contract tickers across all 12-month codes (F G H J K M N Q U V X Z) for the selected start year and number of years to scan, fetches the daily volume for each one via request.security(), filters out expired contracts using their last bar timestamp, and ranks the remaining active contracts by volume. Only the top 3 are displayed.
Key features
Auto-detects root symbol — works on any futures instrument without manual configuration
Always uses daily volume so numbers match your watchlist regardless of chart timeframe
Filters expired contracts by checking whether the contract's last bar is more than 7 days old
Ranks top 3 active contracts by today's volume, highest at the top
Shows previous day's volume and percentage change vs previous day for each contract
Rollover alert fires when the 2nd contract reaches 80% or more of the front month volume, turning the table frame red and displaying a warning banner
All 12 month codes enabled by default so it works across different futures schedules (quarterly, monthly, or custom)
Fully customisable colours, table position, and text size
How to use
Add the indicator to any continuous or individual futures chart. The table updates automatically. When you see the 2nd-ranked contract closing the gap on the 1st — especially in the days approaching expiry — that is your signal that the market is beginning to roll. Once rank 1 and rank 2 are very close in volume, most professional traders have already begun rolling their positions to the next contract.
Settings
Start Year — the first year of contracts to scan (set to current year to avoid showing expired contracts from prior years)
Years to scan — how many years forward to include (1 or 2)
Active Month Codes — toggle individual months on or off to match the contract schedule of your instrument
Show Previous Bar Volume — toggle the Prev and vs Prev columns
Highlight Rollover Alert — toggle the red frame and banner when rollover is imminent
Position / Text Size / Colours — visual customisation
Notes
Requires PulseWire Pro or higher due to the number of request.security() calls (24 per chart)
Best used on a daily chart or any intraday chart — volume is always fetched at the daily timeframe
If fewer than 3 active contracts are found the table will show only the contracts available
The footer displays how many active contracts were detected for the current instrument Indicator

Indicator

Indicator

Indicator

Micro Futures Contract Calculator Micro Futures Contract Calculator
Synopsis: The Micro Futures Contract Calculator is a sleek, minimalist indicator that calculates the number of Micro E-mini Nasdaq-100 (MNQ) or S&P 500 (MES) contracts you can trade based on a fixed dollar risk and stop-loss (in ticks). Displayed in a compact, professional table in the top-right corner, it shows your risk, stop-loss, contract type, and calculated contracts, helping traders maintain consistent risk management.
How to Use:
Add the indicator to your chart (search “Micro Futures Contract Calculator”).
In settings, input:
Maximum Risk ($): Your total risk per trade (e.g., $100).
Stop-Loss (Ticks): Stop-loss size in ticks (e.g., 20 ticks = 5 points).
Contract Type: Select MNQ or MES.
Check the top-right table for:
Risk, stop-loss, contract type, and number of contracts (e.g., “10” for MNQ, “4” for MES).
Use the contract number to size trades, ensuring risk stays fixed.
Why Standardized Risk is Important:
Consistency: Fixed risk per trade (e.g., $100) prevents oversized losses, stabilizing long-term performance.
Discipline: Removes emotional guesswork, enforcing a systematic approach across MNQ/MES trades.
Capital Protection: Limits exposure, preserving your account during losing streaks and volatile markets.
Scalability: Aligns position sizing with your risk tolerance, enabling confident scaling as your account grows.
This indicator simplifies risk management, making it essential for disciplined futures trading.
Indicator

NQ/MNQ Position Sizing
Despite having my own position sizing calculator in an excel sheet, the manual process of having to identify my next trade, switch tabs/screens, input my values into the sheet, go back into TV, input the trade parameters with appropriate contract sizing, has always really gotten to me. I also found that I would often miss ideal entries due to the delay this caused.
I searched TV for position sizing calculators but almost all the ones I found seemed to be similar: based on some form of manual input for the entry and stop parameters, many of which had way more settings and parameters than I needed, also over complicated things.
I just needed something that would allow me to dynamically set my entry and stop levels directly on the chart, and spit out the appropriate contracts I should be using, either on NQ or MNQ, to maintain my desired level of risk, so I could quickly execute the necessary trade.
So, I coded my own and it's been a huge help to me already, so I thought I may as well publish the script as can't imagine there aren't others out there that also hate the manual data entry process of calculating risk.
Upon first load, the script will ask you to set your Entry and Stop levels, before drawing respective lines for these on the chart, and calculating contract sizing based on your risk settings, which you can update directly. The reset values may be buggy, will be easier to just remove the script and re-apply it to your chart if you ever lose track of the levels you've set.
Hope it's useful. Indicator

strategy_helpersThis library is designed to aid traders and developers in calculating risk metrics efficiently across different asset types like equities, futures, and forex. It includes comprehensive functions that calculate the number of units or contracts to trade, the value at risk, and the total value of the position based on provided entry prices, stop levels, and risk percentages. Whether you're managing a portfolio or developing trading strategies, this library provides essential tools for risk management. Functions also automatically select the appropriate risk calculation method based on asset type, calculate leverage levels, and determine potential liquidation points for leveraged positions. Perfect for enhancing the precision and effectiveness of your trading strategies.
Library "strategy_helpers"
Provides tools for calculating risk metrics across different types of trading strategies including equities, futures, and forex. Functions allow for precise control over risk management by calculating the number of units or contracts to trade, the value at risk, and the total position value based on entry prices, stop levels, and desired risk percentage. Additional utilities include automatic risk calculation based on asset type, leverage level calculations, and determination of liquidation levels for leveraged trades.
calculate_risk(entry, stop_level, stop_range, capital, risk_percent, trade_direction, whole_number_buy)
Calculates risk metrics for equity trades based on entry, stop level, and risk percent
Parameters:
entry (float) : The price at which the position is entered. Use close if you arent adding to a position. Use the original entry price if you are adding to a position.
stop_level (float) : The price level where the stop loss is placed
stop_range (float) : The price range from entry to stop level
capital (float) : The total capital available for trading
risk_percent (float) : The percentage of capital risked on the trade. 100% is represented by 100.
trade_direction (bool) : True for long trades, false for short trades
whole_number_buy (bool) : True to adjust the quantity to whole numbers
Returns: A tuple containing the number of units to trade, the value at risk, and the total value of the position:
calculate_risk_futures(risk_capital, stop_range)
Calculates risk metrics for futures trades based on the risk capital and stop range
Parameters:
risk_capital (float) : The capital allocated for the trade
stop_range (float) : The price range from entry to stop level
Returns: A tuple containing the number of contracts to trade, the value at risk, and the total value of the position:
calculate_risk_forex(entry, stop_level, stop_range, capital, risk_percent, trade_direction)
Calculates risk metrics for forex trades based on entry, stop level, and risk percent
Parameters:
entry (float) : The price at which the position is entered. Use close if you arent adding to a position. Use the original entry price if you are adding to a position.
stop_level (float) : The price level where the stop loss is placed
stop_range (float) : The price range from entry to stop level
capital (float) : The total capital available for trading
risk_percent (float) : The percentage of capital risked on the trade. 100% is represented by 100.
trade_direction (bool) : True for long trades, false for short trades
Returns: A tuple containing the number of lots to trade, the value at risk, and the total value of the position:
calculate_risk_auto(entry, stop_level, stop_range, capital, risk_percent, trade_direction, whole_number_buy)
Automatically selects the risk calculation method based on the asset type and calculates risk metrics
Parameters:
entry (float) : The price at which the position is entered. Use close if you arent adding to a position. Use the original entry price if you are adding to a position.
stop_level (float) : The price level where the stop loss is placed
stop_range (float) : The price range from entry to stop level
capital (float) : The total capital available for trading
risk_percent (float) : The percentage of capital risked on the trade. 100% is represented by 100.
trade_direction (bool) : True for long trades, false for short trades
whole_number_buy (bool) : True to adjust the quantity to whole numbers, applicable only for non-futures and non-forex trades
Returns: A tuple containing the number of units or contracts to trade, the value at risk, and the total value of the position:
leverage_level(account_equity, position_value)
Calculates the leverage level used based on account equity and position value
Parameters:
account_equity (float) : Total equity in the trading account
position_value (float) : Total value of the position taken
Returns: The leverage level used in the trade
calculate_liquidation_level(entry, leverage, trade_direction, maintenance_margine)
Calculates the liquidation price level for a leveraged trade
Parameters:
entry (float) : The price at which the position is entered
leverage (float) : The leverage level used in the trade
trade_direction (bool) : True for long trades, false for short trades
maintenance_margine (float) : The maintenance margin requirement, expressed as a percentage
Returns: The price level at which the position would be liquidated, or na if leverage is zero Library

Indicator

Indicator

Crypto USD VolumeOften times I need to check the volume in cryptocurrency exchanges and I find myself checking which type of volume I am looking at, I need to manually make sense what the data is and converting it into USD volume which I end up going to CoinMarketCap website to verify whether my calculation is right.
Today I thought it was about time I created an automatic way to find the volume in USD Dollars. This is what this script does.
1 - It removes the base currency from the symbol (e.g., "BTCUSD", it would remove "BTC", leaving us with the "USD" part.). This is important because it helps us identify the currency the pair uses.
2 - It has different pair's variables, each is given a specific currency that the final volume is calculated from. (BTC, ETH, BNB and USD are the default currencies, for other ones, it must be added manually).
This works with all crypto symbols that include BTC, ETH, BNB and USD as currencies. If you modify it, please make sure to compare data with the exchange's one. Indicator
