TradeTrackerLibrary "TradeTracker"
Simple Library for tracking trades
method track(this)
tracks trade when called on every bar
Namespace types: Trade
Parameters:
this (Trade) : Trade object
Returns: current Trade object
Trade
Has the constituents to track trades generated by any method.
Fields:
id (series int)
direction (series int) : Trade direction. Positive values for long and negative values for short trades
initialEntry (series float) : Initial entry price. This value will not change even if the entry is changed in the lifecycle of the trade
entry (series float) : Updated entry price. Allows variations to initial calculated entry. Useful in cases of trailing entry.
initialStop (series float) : Initial stop. Similar to initial entry, this is the first calculated stop for the lifecycle of trade.
stop (series float) : Trailing Stop. If there is no trailing, the value will be same as that of initial trade
targets (array) : array of target values.
startBar (series int) : bar index of starting bar. Set by default when object is created. No need to alter this after that.
endBar (series int) : bar index of last bar in trade. Set by tracker on each execution
startTime (series int) : time of the start bar. Set by default when object is created. No need to alter this after that.
endTime (series int) : time of the ending bar. Updated by tracking method.
status (series int) : Integer parameter to track the status of the trade
retest (series bool) : Boolean parameter to notify if there was retest of the entry price
Statistics
[Stop!Loss] ADR Signal ADR Signal - a technical indicator located in a separate window, which displays by default the 80%-level , as well as the 100%-level of the average daily range (ADR) for the last 10 days and compares it with the current intraday range. The indicator helps not only with the use of a mathematical-statistical method to identify a potential reversal at the moment during intraday trading, but can also serves as an effective assistant in risk management.
👉 Basic mechanics of the indicator
Firstly, this indicator tracks the performance of the standard ATR indicator on the daily chart, in other words, ADR (Average Daily Range).
Important ❗️The ATR (Average True Range) indicator was created by J. Welles Wilder Jr. He first introduced ATR in his book "New Concepts in Technical Trading Systems", published in 1978. Wilder developed this indicator to measure market volatility to help traders estimate the range of price movements. This indicator is built into TradingView, more details can be found by link: www.tradingview.com
Like ATR , ADR calculates the average true range for a specified period. In this case, the distance in points from the maximum of each day to its minimum is calculated, after which the arithmetic mean is calculated - this is ADR .
👉 Visualization
ADR Signal is located in a separate window on the chart and has 3 levels:
1) "ADR level" (green line) - the same parameter, the calculations of which are briefly described above. There is 100%-level of ATR on the daily chart (ADR).
2) "Current level" (red line) - this is the current price passage within the day, calculated in points. At the start of a new day, this parameter is reset. Therefore, in the indicator window, this line has sharp drops at the start of a new trading day: "A new trading day - the instrument's power reserve is renewed again".
3) "Signal level" (blue line) - this is an individually customized value that demonstrates a certain part of the ADR parameter.
👉 Inputs
1) - is responsible for the ATR indicator period, the value of which will always be calculated on the daily chart. The default value is "10", that is, ATR is calculated for the last 10 days (not including the current one).
2) - signal level (in %). The default value is "0.8", that is, 80%-level of the ADR parameter (set earlier) is calculated.
👉 Style
1) - by default, this level is colored "blue".
2) - by default, this level is colored "red".
3) - by default, this level is colored "green".
👉 How to use this indicator
Important❗️ The two methods of the use of the ADR Signal indicator described below will be most effective when trading intraday (which is highlighted quite well below), so it is more logical to use the indicator information on time periods H1 and below.
1) Identifying potential reversals during intraday trading:
The ADR Signal indicator can be used as a potential individual reversal strategy.
Important ❗️It should be noted that using it in it without additional confirming analysis tools will be a rather aggressive trading approach. Therefore, it is best to support the entry point in particular with other methods.
In this case, the crossing of the red line (the number of points passed within the current day, that is, from the minimum of the current day to its maximum) and the blue line (color of the Signal level based on the default settings), indicates that the trading instrument has passed 80% (based on the default settings for the "Signal level") of its average distance from the maximum to the minimum over the past 10 days (based on the default settings for the "ADR Length"). Such a situation in the context of the mathematical-statistical approach indicates a probable reversal, since the "power reserve" of this instrument is mostly exhausted, so one can expect with a higher probability, at least, a price stop and possibly a reversal. In case of crossing of the red line and the green one (ADR level), it says again that based on the mathematical-statistical approach, this trading instrument has completely exhausted its intraday "power reserve". In this situation, a stop or reversal of the price will be even more likely.
Of course, using the "Signal level" parameter, one can filter out even more reliable situations for potential price reversals within a day, namely, by specifying, for example, 1.5 in the field of this parameter. Under such conditions, in the case of crossing the red and blue lines (based on the default style settings), to say that the trading instrument has passed 150% of its average distance over the last 10 days (based on the default style settings "ADR length"). In this case, the probability of a stop or reversal of the price increases even more.
2) Use in risk management:
In terms of risk management, this indicator is more applicable to open trades. For example, if one had an open Buy-position (especially if it is an intraday trade) and the price has raised significantly during the day, then the crossing of the red line with the blue line , and especially the red line with the green line , may indicate that the price will most likely stop growing, since the "power reserve" is almost or completely exhausted for this instrument within the current day. In this case, one can, at a minimum, move the trade to breakeven or even partially fix the profit.
We will continue to discuss the methods of using this indicator and strategies based on it here. And we are always waiting for your reactions and feedback on this topic 💬.
Thank you for your support 🚀
NIG Probability TableNormal-Inverse Gaussian Probability Table
This indicator implements the Normal-Inverse Gaussian (NIG) distribution to estimate the likelihood of future price based on recent market behavior.
📊 Key Features:
- Estimates the parameters (α: tail heaviness, β: skewness, δ: scale, μ: location)
of the NIG distribution using a sliding window over log returns.
- Uses a numerically approximated version of the modified Bessel function (K₁)
to calculate the NIG probability density function (PDF).
- Normalizes the total probability across all bins to ensure the values are interpretable.
- Displays a dynamic probability table showing the chance of future returns falling into each bin.
⚠️ Notes:
- This is a real-time approximation. The Bessel function and posterior inference are simplified.
- Tail probabilities and shape parameters are sensitive to the window size and input settings.
- Useful for risk analysis, option overlays, and strategy filters.
LAOS Gold Price in LAK By LSENMany people in Laos are confused about the actual price of Gold in local currency.
This script provides a simple and live updating way to convert the international gold price (XAU/USD) into Lao Kip Currency in BAHT-weight gold (15.244g).
By default, it uses an exchnage rte of 21,000 KIP = 1 USD, But you can easily customize the rate to fit your needs.
-See things as they truly are. Suffering arises when you try to resist reality. Don't let greed and FOMO fuel the fire.
ຂໍໃຫ້ທຸກທ່ານໂຊກດີ
Log-Normal Price ForecastLog-Normal Price Forecast
This Pine Script creates a log-normal forecast model of future price movements on a TradingView chart, based on historical log returns. It plots expected price trajectories and bands representing different levels of statistical deviation.
Parameters
Model Length – Number of bars used to calculate average and standard deviation of log returns (default: 100).
Forecast Length – Number of bars into the future for which the forecast is projected (default: 100, max: 500).
Volatility SMA Length – The smoothing length for the standard deviation (default: 20).
Confidence Intervals – Confidence intervals for price bands (default: 95%, 99%, 99.9%).
Daily Levels & Stats Pro - [Aspect] v4.0# Description of the "Daily Levels & Stats Pro - v4.0" Indicator
This indicator is a powerful tool for market analysis through the lens of key daily levels and statistical price movement indicators. It allows you to display important trading session opening levels, daily statistical movements, and high volatility zones on the price chart.
## Main Indicator Functions:
### Key Time Levels:
- **Daily Open (DO)** - daily trading session opening level at 02:00
- **NY Midnight (NYM)** - New York session opening level at 06:00
- **Trade Open (TO)** - active trading opening level at 10:00
### Analysis Zones:
- **Previous Close Zone (PCZ)** - previous day's closing zone (displayed on M5 timeframe)
- **Open Day Zone (ODZ)** - current day's opening zone (displayed on M5 timeframe)
### Statistical Price Movement Levels:
- **Min** - minimum statistical movement from DO
- **Max** - maximum statistical movement from DO
- **Aver** - average statistical movement from DO
- **Dev-** - lower deviation of movement from DO
- **Dev+** - upper deviation of movement from DO
### TO Impulse Movement Statistical Levels:
- **Aver TO** - average statistical movement from TO
- **Dev+ TO** - upper deviation of movement from TO
- **Max TO** - maximum statistical movement from TO
## Indicator Features:
- Complete customization of colors, styles, and line widths for all levels
- Ability to select time for each main level
- Adjustment of the number of bars for level display
- Automatic calculation of level values relative to DO and TO
- Visual display of TO-levels starts 3 bars before the actual TO point, providing better visual perception
- Ability to enable/disable individual levels and zones
- Automatic updates and resets when the day changes
- Adaptive text labels to mark levels
This indicator is excellent for traders who use statistical data and daily support/resistance levels in their trading strategy. It is particularly useful for DAX40 and other highly liquid instruments where daily trading statistics are important for making trading decisions.
IB One‑Way Break & Retrace (Chicago 5m)What It Tracks
Initial Balance (IB) Range
Defined as the high/low from 08 : 30 – 09 : 30 Chicago time each day.
Plotted as steplines on your chart (“IB High” in aqua, “IB Low” in fuchsia).
Session Window
Monitors price from 09 : 30 – 15 : 00 Chicago time (the remainder of the regular day).
Break Classification
Held: Price never breaches the IB high or low during the session.
One‑Way Break: Price breaks one side of the IB (high or low) but doesn’t break the opposite side.
Discarded: Price breaks both sides of the IB—in which case the day is skipped from all statistics.
Retracement Measurement
For “One‑Way Break” days only, measures how far price retraces back into the IB range (as a percentage of the IB width).
Retracement values are capped at 100% (so extreme extensions beyond the IB don’t inflate averages).
Labeling on the Chart
Held days are marked with an orange “Held” label at the unbroken IB edge.
One‑Way Break days are marked at the furthest pullback point with a green (if upside break) or red (if downside break) label showing the retrace % (e.g. “37.5%”).
Discarded days (both‑side breaks) get a gray “Discard” label.
Summary Table (Top‑Right)
Bucket Count % Sessions Avg Ret%
Total Sessions X 100.0% Y.Y%
Held H H/Total 0.0%
Breakouts B B/Total A.A%
Discarded D D/Total –
0–20% Retrace E0 E0/B Avg0%
20–40% Retrace E1 E1/B Avg1%
40–60% Retrace E2 E2/B Avg2%
60–80% Retrace E3 E3/B Avg3%
≥80% Retrace E4 E4/B Avg4%
Count: Number of days in each category.
% Sessions: That count divided by Total Sessions.
Avg Ret%: Average retracement on only those days. (Held and Discarded rows show 0% or blank.)
How to Use
Held days indicate a very tight IB that never gave way—these can signal strong balance before a later move.
One‑Way Breakouts show directional moves that retraced back into the IB by some amount. Use the retrace % buckets to gauge typical pullback sizes after breakout.
Discarded days (both‑side breaches) are volatile or whipsaw days—excluded from your retracement analysis.
By filtering out those whipsaw sessions and focusing on clean one‑way breaks, you get a clearer picture of how deep retracements tend to be after true breakout moves.
Log-Normal Z-ScoreLog-Normal Z-Score
This Pine Script indicator calculates a modified Z-Score based on log-normal returns, aiming to identify statistically significant price deviations.
Indicator Parameters:
Model Length: The number of bars used to calculate the mean and standard deviation of log returns.
Lookback Length: The number of bars used to compute the lookback return and volatility. This is the main timeframe over which the Z-Score is calculated.
Volatility SMA Length: The smoothing length for the volatility, applying a simple moving average to the calculated volatility.
TDO & Hit Rates by Weekday (5 min)Purpose
Tracks how often the next NY session “hits” the previous day’s True Day Open (TDO) level, separately for sessions that open above vs. below TDO, and breaks the statistics down by weekday (Mon–Fri) plus an overall summary.
Key Features
True Day Open (TDO) Plot
Captures the prior day’s 23:00 CT close price as the TDO.
Plots it as a continuous yellow line across your chart.
Session Labeling
At the end of each NY session (08:30–15:00 CT), places a small “TDO” label at the TDO price to confirm visually where it lay during that day.
Hit‑Count Logic
For each 5 min bar in the NY session, checks if the bar’s high ≥ TDO ≥ low (i.e. the TDO level was “hit”).
Classifies each session by whether its opening price (first 5 min bar) was above or below the TDO.
Weekday Statistics Table
Displays in the bottom‑left of your main chart window.
Rows: Header, Mon, Tue, Wed, Thu, Fri, All.
Columns:
% Hit Above: % of “above‑TDO” sessions that saw at least one hit
% Hit Below: % of “below‑TDO” sessions that saw at least one hit
Automatically updates in real time as new sessions complete.
Inputs & Settings
Data Resolution: Default = 5 min; use any intraday timeframe you like (1, 3, 15 min, etc.).
Extended Hours: Make sure your chart’s Extended Session (overnight) is enabled so the 23:00 CT bar exists.
Overlay: Draws directly on your price chart (no separate pane).
How to Use
Add to Chart: Paste the Pine v5 code into TradingView’s editor and apply to your ES (or other) futures chart.
Enable Overnight Bars: In Chart Settings → Symbol/Session → include Extended Hours.
Select Timeframe: Set the chart (or the indicator’s “Data Resolution” input) to 5 min (or your preferred intraday).
Read the Table:
Each weekday row shows how reliable TDO touches have been historically, separately for “above” and “below” opens.
The bottom “All” row summarizes combined performance.
What You Learn
Edge Analysis: Do sessions opening above TDO tend to test that level more often than those opening below (or vice versa)?
Day‑of‑Week Bias: Are certain weekdays more prone to TDO retests?
Overall Confidence: The “All” row lets you see your full-sample hit‑rate on both sides.
Log-Normal Price DistributionThis Pine Script indicator plots a log-normal distribution model of future price projections on a TradingView chart. It visualizes the potential price ranges based on the statistical properties (mean and standard deviation) of log returns over a defined period. It's particularly useful for analyzing potential volatility and predicting future price ranges.
MACD Bullish Cross Alert📘 Indicator Description – MACD Bullish Cross Alert
This indicator is designed to detect bullish momentum shifts using the classic MACD (Moving Average Convergence Divergence) crossover strategy.
Key Features:
Calculates the MACD Line and Signal Line using customizable inputs (default: 12, 26, 9).
Triggers an alert when the MACD Line (blue) crosses above the Signal Line (orange).
Helps identify early bullish trend reversals or momentum entry points.
Ideal for swing traders, position traders, and crypto investors using the weekly timeframe.
How to Use:
Add to any chart and set the timeframe to 1W (weekly).
Create an alert using the built-in MACD Bullish Crossover condition.
Combine with price action, volume, or RSI for higher conviction entries.
Use Cases:
Spotting early entry points after long downtrends.
Confirming a trend reversal in high timeframes.
Generating high-probability entries in trend-following systems.
Gabriel's Asset Rotation System📈 Gabriel's Asset Rotation System
Overview
Gabriel’s Asset Rotation System is an advanced multi-asset trend-following tool that dynamically ranks and rotates up to 6 assets (plus USD) based on a customizable trend scoring matrix. Using enhanced signal detection techniques like Cauchy-weighted Supertrend, Jurík RSX, Fisherized CCI, Kalman-filtered PSAR, and Dynamic DMI Smoothing, the system identifies the most dominant asset and simulates strategy equity performance compared to buy-and-hold benchmarks.
🔍 Key Features
✅ Multi-Asset Rotation: Analyze up to 6 symbols and USD simultaneously.
✅ Relative Strength Matrix: Compares every asset against each other to find outperformers.
✅ Custom Trend Engine:
Jurik RSX with advanced RSX logic
Fisherized CCI for momentum confirmation
Kalman-smoothed PSAR for trend bias
SuperTrend using a Cauchy Moving Average
Smoothed DMI signal across looped periods (10–17)
✅ Dynamic Best Asset Detection: Identifies and tracks the asset with the highest trend score over time.
✅ Performance Table: Displays Sharpe, Sortino, and Omega Ratios along with drawdowns and means for both strategy and each asset.
✅ Visual Trend Matrix: Tabular view of asset strength comparisons against each other + final scoring.
✅ Realistic Strategy Equity Curve: Tracks performance assuming full capital rotation into the best asset.
✅ Alerts: Get notified when the top-performing asset changes.
⚙️ Inputs
🔹 Assets: Customize 6 tickers (crypto, stocks, ETFs, etc.)
🔹 Trend Classification Method:
RSI
CCI
SuperTrend
DMI
PSAR
or use all together
🔹 Jurik RSX Length
🔹 Fisherized CCI Length
🔹 Cauchy MA Gamma and ATR Settings
🔹 DMI Range and MA Type (SMA, EMA, HMA, etc.)
🔹 PSAR Parameters with Kalman smoothing
🔹 Custom Backtest Start Date
📊 Outputs
Plot 1: Best Asset Equity (colored dynamically)
Plot 2–7: Buy & Hold Curves for each asset (with labels)
Tables:
Rotation Matrix (bottom-right)
Best Performing Asset (bottom-center)
Performance Metrics Table (optional toggle)
🧠 Use Case Ideas
🔁 Dynamic Portfolio Rebalancing
⚖️ Compare Risk-Adjusted Returns Across Crypto or Stocks
🧪 Backtest Rotation Hypotheses
🚀 Identify Strongest Breakout Assets in Trend Environments
📉 Avoid Weakening Assets with Rising Drawdowns
🚨 Alerts
🔔 "New Optimal Asset": Triggers when a new top-ranking asset replaces the current one.
Auto Step Horizontal LinesAuto Step Horizontal lines by custom range
Create automatic horizontal lines by specifying the price range for each line, with each line serving as an observation point for support and resistance levels.
MG Universal model🚀 Summary🚀
The MG univerasal model is a composite of various items such as RSI, price Z-Score, Sharpe Ratio, Sortino Ratio, Omega Ratio, etc
Each component is normalized and then equally wheighted out to perform a global metric.
At the end, an Exponential Moving Average is added on the global metric.
You can easily find a description of each component on the internet, for the Crosby Ratio, it's a metric that comes from bitcoinmagazinepro.com.
✨ Key Features ✨
🗡 Smoothed Global Metric
Using a Moving average to smooth out the whole aggregated metric.
🗡 Bands Zone at extreme levels
Automatically displaying bands at top and bottom levels of the oscillator.
🗡 Normalizing components
Each component is normalized.
🗡 DataTable
Optional DataTable is available to check the score for each components and their related Z-Score.
📊 How I use it 📊
When catching up with 0 line (midline), crossing it :
if it goes above 0.2:
get out when it crosses 0.2 again
else:
get out when it crosses 0 again
That's the way I use it, may be there is a better way, FAFO :)
❓ Seeing a bug or an issue ❓
Feel free to DM me if you see a component that seems badly calculated.
I will be happy to fix it.
❗❗ Disclaimer ❗❗
This is a single indicator, even though it's aggregating many, do not use it as a standalone.
Past performance is not indicative of future results.
Always backtest, check, and align parameters before live trading.
BotBeans Optimizer - MA CrosserBotBeans Optimizer - MA Crosser
This script allows you to:
1. Select up to 12 types of Moving Averages (MA)
2. Backtest 7 combinations of MA crossover strategy at a time with key metrics such as Net Profit%, Profit Factor, Win Rate%, Total Trades and Maximum Drowdown (Max DD)
3. Easy to define slow MA length by using SlowMultiplier. Slow MA length is calculated by fast MA length multiplied by SlowMultipleir.
4. Ability to plot MA lines, trading signals, slop loss and take profit levels for clarification
5. Risk Management is implemented. By default, risk only 2% for each trade.
6. The script uses 14 Average True Range (ATR) multiplied by ATRMultiplier to determine stop loss level
7. Take profit level is calculated by stop loss level multiplied by RiskRewardRatio.
8. Implemented with trading fee for more accurate backtest result
Prop Firm Business SimulatorThe prop firm business simulator is exactly what it sounds like. It's a plug and play tool to test out any tradingview strategy and simulate hypothetical performance on CFD Prop Firms.
Now what is a modern day CFD Prop Firm?
These companies sell simulated trading challenges for a challenge fee. If you complete the challenge you get access to simulated capital and you get a portion of the profits you make on those accounts payed out.
I've included some popular firms in the code as presets so it's easy to simulate them. Take into account that this info will likely be out of date soon as these prices and challenge conditions change.
Also, this tool will never be able to 100% simulate prop firm conditions and all their rules. All I aim to do with this tool is provide estimations.
Now why is this tool helpful?
Most traders on here want to turn their passion into their full-time career, prop firms have lately been the buzz in the trading community and market themselves as a faster way to reach that goal.
While this all sounds great on paper, it is sometimes hard to estimate how much money you will have to burn on challenge fees and set realistic monthly payout expectations for yourself and your trading. This is where this tool comes in.
I've specifically developed this for traders that want to treat prop firms as a business. And as a business you want to know your monthly costs and income depending on the trading strategy and prop firm challenge you are using.
How to use this tool
It's quite simple you remove the top part of the script and replace it with your own strategy. Make sure it's written in same version of pinescript before you do that.
//--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$--//--------------------------------------------------------------------------------------------------------------------------$$$$$$
//--$$$$$--Strategy-- --$$$$$$--// ******************************************************************************************************************************
//--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$--//--------------------------------------------------------------------------------------------------------------------------$$$$$$
length = input.int(20, minval=1, group="Keltner Channel Breakout")
mult = input(2.0, "Multiplier", group="Keltner Channel Breakout")
src = input(close, title="Source", group="Keltner Channel Breakout")
exp = input(true, "Use Exponential MA", display = display.data_window, group="Keltner Channel Breakout")
BandsStyle = input.string("Average True Range", options = , title="Bands Style", display = display.data_window, group="Keltner Channel Breakout")
atrlength = input(10, "ATR Length", display = display.data_window, group="Keltner Channel Breakout")
esma(source, length)=>
s = ta.sma(source, length)
e = ta.ema(source, length)
exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
//--Graphical Display--// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-$$$$$$
u = plot(upper, color=#2962FF, title="Upper", force_overlay=true)
plot(ma, color=#2962FF, title="Basis", force_overlay=true)
l = plot(lower, color=#2962FF, title="Lower", force_overlay=true)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")
//--Risk Management--// *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-$$$$$$
riskPerTradePerc = input.float(1, title="Risk per trade (%)", group="Keltner Channel Breakout")
le = high>upper ? false : true
se = lowlower
strategy.entry('PivRevLE', strategy.long, comment = 'PivRevLE', stop = upper, qty=riskToLots)
if se and upper>lower
strategy.entry('PivRevSE', strategy.short, comment = 'PivRevSE', stop = lower, qty=riskToLots)
The tool will then use the strategy equity of your own strategy and use this to simulat prop firms. Since these CFD prop firms work with different phases and payouts the indicator will simulate the gains until target or max drawdown / daily drawdown limit gets reached. If it reaches target it will go to the next phase and keep on doing that until it fails a challenge.
If in one of the phases there is a reward for completing, like a payout, refund, extra it will add this to the gains.
If you fail the challenge by reaching max drawdown or daily drawdown limit it will substract the challenge fee from the gains.
These gains are then visualised in the calendar so you can get an idea of yearly / monthly gains of the backtest. Remember, it is just a backtest so no guarantees of future income.
The bottom pane (non-overlay) is visualising the performance of the backtest during the phases. This way u can check if it is realistic. For instance if it only takes 1 bar on chart to reach target you are probably risking more than the firm wants you to risk. Also, it becomes much less clear if daily drawdown got hit in those high risk strategies, the results will be less accurate.
The daily drawdown limit get's reset every time there is a new dayofweek on chart.
If you set your prop firm preset setting to "'custom" the settings below that are applied as your prop firm settings. Otherwise it will use one of the template by default it's FTMO 100K.
The strategy I'm using as an example in this script is a simple Keltner Channel breakout strategy. I'm using a 0.05% commission per trade as that is what I found most common on crypto exchanges and it's close to the commissions+spread you get on a cfd prop firm. I'm targeting a 1% risk per trade in the backtest to try and stay within prop firm boundaries of max 1% risk per trade.
Lastly, the original yearly and monthly performance table was developed by Quantnomad and I've build ontop of that code. Here's a link to the original publication:
That's everything for now, hope this indicator helps people visualise the potential of prop firms better or to understand that they are not a good fit for their current financial situation.
Bar Painting [iFarsheed]
Bar Painting
Overview:
The "Bar Painting " indicator is designed for traders who follow price action strategies inspired by Al Brooks.
This tool colors candles on your chart, making it easy to identify different candle types like trend bars, dojis, and pin bars without complex calculations. By simply observing the colors, you can quickly understand market dynamics.
Features:
Candle Coloring:
Bullish (up) and bearish (down) trend bars are highlighted in distinct colors for easy recognition.
Candles that do not fit these patterns appear in the default chart color, indicating they do not represent significant moves.
Visual Clarity:
The color coding provides a quick visual reference, allowing you to grasp market conditions at a glance.
No Calculations Required:
You don’t need to perform any calculations; just look at the colors to understand the strength of the market.
How to Use:
Customize Settings:
Adjust the colors of trend bars to ensure they contrast well with your chart background for improved visibility.
Use the settings to choose which candle types you want to highlight based on your trading preferences.
Analyze Candle Patterns:
Look at the colored candles to quickly identify trend bars, dojis, and pin bars that may signal potential market movements.
Informed Decision Making:
Use the highlighted candle patterns to assist in making trading decisions, such as identifying possible entry and exit points.
Important Note:
This coloring scheme is optimized for light mode charts. In dark mode, the colors may not display correctly.
To ensure proper color display, please set the visual order of the indicator to "Bring to Front."
Future Updates:
This indicator is an initial version, and more features will be added in the future.
If you have any suggestions or feedback, please feel free to share your thoughts in the comments section of the indicator.
Good luck with your trading!
-iFarsheed-
CVD (Cumulative Volume Delta)
Cumulative Volume Delta
Use a moving average with three different
I thought about determining the volatility and direction of the price of the stock price and finding a place to break through.
I made some Mistake coz I'm new corder
I'm reposting this simple script due to house rule violation. (Whatever can haha) 😁
I'm erasing all the comments in my native language that I had in my script... I thought it would make the User uncomfortable, so I locked the code, and I thought maybe that's the problem
Anyway, I'm sorry 😅
[Kpt-Ahab] PnL-calculatorThe PnL-Cal shows how much you’re up or down in your own currency, based on the current exchange rate.
Let’s say your home currency is EUR.
On October 10, 2022, you bought 10 Tesla stocks at $219 apiece.
Back then, with an exchange rate of 0.9701, you spent €2,257.40.
If you sold the 10 Tesla shares on April 17, 2025 for $241.37 each, that’s around a 10% gain in USD.
But if you converted the USD back to EUR on the same day at an exchange rate of 1.1398, you’d actually end up with an overall loss of about 6.2%.
Right now, only a single entry point is supported.
If you bought shares on different days with different exchange rates, you’ll unfortunately have to enter an average for now.
For viewing on a phone, the table can be simplified.
Institutional MACD (Z-Score Edition) [VolumeVigilante]📈 Institutional MACD (Z-Score Edition) — Professional-Grade Momentum Signal
This is not your average MACD .
The Institutional MACD (Z-Score Edition) is a statistically enhanced momentum tool, purpose-built for serious traders and breakout hunters . By applying Z-Score normalization to the classic MACD structure, this indicator uncovers statistically significant momentum shifts , enabling cleaner reads on price extremes, trend continuation, and potential reversals.
💡 Why It Matters
The classic MACD is powerful — but raw momentum values can be noisy and relative , especially on volatile assets like BTC/USD . By transforming the MACD line, signal line, and histogram into Z-scores , we anchor these signals in statistical context . This makes the Institutional MACD:
✔️ Timeframe-agnostic and asset-normalized
✔️ Ideal for spotting true breakouts , not false flags
✔️ A reliable tool for detecting momentum divergence and exhaustion
🧪 Key Features
✅ Full Z-Score normalization (MACD, Signal, Histogram)
✅ Highlighted ±Z threshold bands for overbought/oversold zones
✅ Customizable histogram coloring for visual momentum shifts
✅ Built-in alerts for zero-crosses and Z-threshold breaks
✅ Clean overlay with optional display toggles
🔁 Strategy Tip: Mean Reversion Signals with Statistical Confidence
This indicator isn't just for spotting breakouts — it also shines as a mean reversion tool , thanks to its Z-Score normalization .
When the Z-Score histogram crosses beyond ±2, it marks a statistically significant deviation from the mean — often signaling that momentum is overstretched and the asset may be due for a pullback or reversal .
📌 How to use it:
Z > +2 → Price action is in overbought territory. Watch for exhaustion or short setups.
Z < -2 → Momentum is deeply oversold. Look for reversal confirmation or long opportunities.
These zones often precede snap-back moves , especially in range-bound or corrective markets .
🎯 Combine Z-Score extremes with:
Candlestick confirmation
Support/resistance zones
Volume or price divergence
Other mean reversion tools (e.g., RSI, Bollinger Bands)
Unlike the raw MACD, this version delivers statistical thresholds , not guesswork — helping traders make decisions rooted in probability, not emotion.
📢 Trade Smart. Trade Vigilantly.
Published by VolumeVigilante
Correlation MatrixThis indicator displays a real-time correlation matrix of any five assets selected by the user. It helps traders and investors identify relationships between different instruments—whether they move together (positive correlation), in opposite directions (negative correlation), or not at all (neutral).
Vietnamese Stocks: Multi-Ticker Fibonacci AlertThis Pine Script™ indicator is designed specifically for traders monitoring the Vietnamese stock market (HOSE, HNX). Its primary goal is to automate the tracking of Fibonacci retracement levels across a large list of stocks, alerting you when prices breach key support zones.
Core Functionality:
The script calculates Fibonacci retracement levels (23.6%, 38.2%, 50%, 61.8%, 78.6%) for up to 40 tickers simultaneously. The calculation is based on the highest high and lowest low identified since a user-defined Start Time. This allows you to anchor the Fibonacci analysis to a specific market event, trend start, or time period relevant to your strategy.
What it Does For You:
Automated Watchlist Scanning: Instead of drawing Fib levels on dozens of charts, select one of the two pre-configured watchlists (up to 40 symbols each, customizable in settings) populated with popular Vietnamese stocks.
Time-Based Fibonacci: Define a Start Time in the settings. The script uses this date to find the subsequent highest high and lowest low for each symbol in your chosen watchlist, forming the basis for the Fib calculation.
Intelligent Alerts: Get notified via TradingView's alerts when the candle closing price of any stock in your active watchlist falls below the critical 38.2%, 50%, 61.8%, or 78.6% levels relative to its own high/low range since the start time. Alerts are consolidated for efficiency.
Visual Aids:
- Plots the same time-based Fibonacci levels directly on your current chart symbol for quick reference.
- Includes an optional on-chart table showing which monitored stocks are currently below key Fib levels (enable "Show Debug Info").
- Features experimental background coloring to highlight potential bullish signals on the current chart.
Configuration:
Start Time: Crucial input – sets the anchor point for Fib calculations.
WatchList Selection: Choose between WatchList #1 (Bluechip/Midcap focus) or WatchList #2 (Defensive/Other focus) using the boolean toggles.
Symbol Customization: Easily replace the default symbols with your preferred Vietnamese stocks directly in the indicator settings.
Notification Prefix: Add custom text to the beginning of your alert messages.
Alert Setup: Remember to create an alert in TradingView, selecting this indicator and the alert() condition, usually with "Once Per Bar Close" frequency.
This tool is open-source under the MPL 2.0 license. Feel free to use, modify, and learn from it.
tafirstlibGeneral Purpose: Starts by stating it's a collection of utility functions for technical analysis.
Core Functionality Areas: Mentions key categories like:
Extrema detection (isMin, isMax, etc.)
Condition checking over time (isMachedInRange, isContinuous, etc.)
Rate of change analysis (isSlowDown)
Moving average calculation (getMA)
Advanced Features: Highlights the more complex functions:
Visualization helpers (getColorNew)
Moving Regression (mr) for smoothing/trend
Cycle analysis (bpDom)
Overall Goal: Concludes by stating the library's aim – simplifying development and enabling complex analysis.
Library "tafirstlib"
TODO: add library description here
isSlowDown(data)
isSlowDown
Parameters:
data (float) : array of numbers
Returns: boolean
isMin(data, maeLength)
isMin
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMax(data, maeLength)
isMax
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMinStopped(data, maeLength)
isMinStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMaxStopped(data, maeLength)
isMaxStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isLongMinStopped(data, maeLength, distance)
isLongMinStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
distance (int) : number
Returns: boolean
isLongMaxStopped(data, maeLength, distance)
isLongMaxStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
distance (int) : number
Returns: boolean
isMachedInRangeSkipCurrent(data, findRange, findValue)
isMachedInRangeSkipCurrent
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: boolean
isMachedInRange(data, findRange, findValue)
isMachedInRange
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: boolean
isMachedColorInRange(data, findRange, findValue)
isMachedColorInRange isMachedColorInRange(series color data, int findRange, color findValue)
Parameters:
data (color) : series of color
findRange (int) : int
findValue (color) : color
Returns: boolean
countMachedInRange(data, findRange, findValue)
countMachedInRange
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: number
getColor(data)
getColor
Parameters:
data (float) : array of numbers
Returns: color
getColorNew(data)
getColorNew
Parameters:
data (float) : array of numbers
Returns: color
isColorBetter(color_data)
isColorBetter
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorWorst(color_data)
isColorWorst
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorBetter2(color_data)
isColorBetter2
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorWorst2(color_data)
isColorWorst2
Parameters:
color_data (color) : array of colors
Returns: boolean
isDecreased2Bar(data)
isDecreased2Bar
Parameters:
data (float) : array of numbers
Returns: boolean
isContinuousAdvance(targetSeries, range2Find, howManyException)
isContinuousAdvance
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
howManyException (int) : number
Returns: boolean
isContinuous(targetSeries, range2Find, truefalse)
isContinuous
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
isContinuousNotNow(targetSeries, range2Find, truefalse)
isContinuousNotNow
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
isContinuousTwoFactors(targetSeries, range2Find, truefalse)
isContinuousTwoFactors
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
findEventInRange(startDataBarIndex, neededDataBarIndex, currentBarIndex)
findEventInRange
Parameters:
startDataBarIndex (int) : number
neededDataBarIndex (int) : number
currentBarIndex (int) : number
Returns: boolean
findMin(firstdata, secondata, thirddata, forthdata)
findMin
Parameters:
firstdata (float) : number
secondata (float) : number
thirddata (float) : number
forthdata (float) : number
Returns: number
findMax(firstdata, secondata, thirddata, forthdata)
findMax
Parameters:
firstdata (float) : number
secondata (float) : number
thirddata (float) : number
forthdata (float) : number
Returns: number
getMA(src, length, mav)
getMA
Parameters:
src (float) : number
length (simple int) : number
mav (string) : string
Returns: number
mr(mrb_src, mrb_window, mrb_degree)
Parameters:
mrb_src (float)
mrb_window (int)
mrb_degree (int)
bpDom(maeLength, bpw, mult)
Parameters:
maeLength (int)
bpw (float)
mult (float)