SuperTrend EXPLORER / SCREENERSUPERTREND EXPLORER / SCREENER screens the BUY and SELL signals (trend reversals) for 38 user defined different tickers in Tradingview charts.
Simply input the short name of the ticker in Tradingview that you want to screen.
Script is derived from zzzcrypto123 's work. Thanks for the permission letting me to use his logic.
Terminology explanation:
Confirmed Reversal: Supertrend reversal that happened in the last bar and cannot be repainted.
Potential Reversal: Supertrend reversal that might happen in the current bar but can also not happen depending upon the timeframe closing price.
Screener has also got a built in SuperTrend indicator which users can confirm the reversals on graphs.
Screener explores the 38 tickers in current graph's time frame and also in desired parameters of the SuperTrend indicator.
SUPERTREND INDICATOR:
STRATEGY version of SuperTrend Indicator:
SuperTrend is one of the most common ATR based trailing stop indicators.
In this version you can change the ATR calculation method from the settings. Default method is RMA, when the alternative method is SMA .
The indicator is easy to use and gives an accurate reading about an ongoing trend. It is constructed with two parameters, namely period and multiplier. The default values used while constructing a superindicator are 10 for average true range or trading period and three for its multiplier.
The average true range (ATR) plays an important role in 'Supertrend' as the indicator uses ATR to calculate its value. The ATR indicator signals the degree of price volatility .
The buy and sell signals are generated when the indicator starts plotting either on top of the closing price or below the closing price. A buy signal is generated when the ‘Supertrend’ closes above the price and a sell signal is generated when it closes below the closing price.
It also suggests that the trend is shifting from descending mode to ascending mode. Contrary to this, when a ‘Supertrend’ closes above the price, it generates a sell signal as the colour of the indicator changes into red.
A ‘Supertrend’ indicator can be used on equities, futures or forex, or even crypto markets and also on daily, weekly and hourly charts as well, but generally, it fails in a sideways-moving market.
Source function added to use the indicator as the ATR Trailing Stop indicator.
Just change source type hl2 to close.
different variations might be useful.
Recherche dans les scripts pour "文华财经tick价格"
Alpha & BetaAlpha & Beta Indicators for Portfolio Performance
β = Σ Correlation (RP, RM) * (σP/σM)
α P = E(RP) –
Where,
RP = Portfolio Return (or Investment Return)
RM = Market Return (or Benchmark Index)
RF = Risk-Free Rate
How to use the Indicator
RM = SPX (Default)
The Market Return for the indicator has the options of $SPX, $NDX, or $DJI (S&P 500, Nasdaq 100, Dow 30)
RF = FRED: DTB3
The Risk-Free Rate in the Indicator is set to the 3-Month Treasury Bill: Secondary Market Rate
The Default Timeframe is 1260 or 5-Years (252 Trading Days in One Year)
RP = The symbol you enter
HOWEVER , you can determine your portfolio value by following the following directions below.
Note: I am currently working on an indicator that will allow you to insert the weights of your positions.
Complete Portfolio Analysis Directions
You will first need...
a) spreadsheet application - Google Sheets is Free, but Microsoft Excel will convert ticker symbols to Stocks and Retrieve Data.
b) your current stock tickers, quantity of shares, and last price information
In the spreadsheet,
In the first column list the stock tickers...
AMZN
AAPL
TSLA
In the second column list the quantity of shares you own...
5
10
0.20
In the third column insert the last price
Excel: Three tickers will automatically give you the option to "Convert to Stocks",
after conversion, click once on cell and click the small tab in the upper right-hand of the highlighted cell.
Click the tab and a menu pops up
Find "Price", "Price Extended-Hours", or "Previous Close"...
$3,284.72
$497.48
$2,049.98
Next, multiply the number of shares by the price (Stock Market Value)
Excel: in fourth column type "=(B1*C1)", "=(B2*C2)", "=(B3*C3)"...
= $16,423.60
= $4,974.80
= $410.00
add the three calculated numbers together or click "ΣAutoSum" (Portfolio Market Value)
= $21,808.40
Last, divide the market value of AMZN ($16,423.60) by the Portfolio Market Value ($21,808.40) for each of the stocks.
= 0.7531
= 0.2281
= 0.0188
These values are the weight of the stock in your portfolio.
Go back to TradingView
Enter into the "search box" the following...
AMZN*0.7531 + AAPL*0.2281 + TSLA*0.0188
and click Enter
Now you can use the "Alpha & Beta" Indicator to analyze your entire portfolio!
Hashem Correlation CoefficientCorrelation Coefficient
Core Code from: www.tradingview.com
This indicator Show Correlation between the Current Ticker & timeframe and a Customizable Ticker. After adding the indicator you can change the second ticker in the settings.
The Correlation Coeff is between -1 to 1 which 1 means 100% correlation and -1 means -100% correlation ( Inverse Correlation ).
The color of the area changes when:
Blue : CC > 0.5
Aqua : CC > 0.75
Purple : CC < -0.5
Red : CC < -0.75
EMA CrossoverEMA Crossover
Input Parameters:
Stop loss (ticks) - define stop loss in unit of ticks (*1 tick = 12.5)
Exit signal - 1: When EMA and price crosses
2: When EMA changes direction
Start year, month, day & Stop year, month, day - define backtest period
You can set Order size, Commission in Settings, Properties tab.
Open Interest:CME e-o-d vs CFTC e-o-wCFTC only publishes total OI on fridays, related to last Tuesday.
But what happened since last Tuesday?
CME Vol & Open Interest data is recorded&exported daily by quandl.com to tradingview
via the che CHRIS/CME datasets
www.quandl.com
Eg. Nat Gas next outstanding cntract n. 20, field n. 7(OI)
@quandl.com:
www.quandl.com
is exported @tradingview:
www.tradingview.com
Every outstanding contract's OI & vol is exported (black column), but not the total (yellow line):
tiny.cc
This script sums up all the existing outstanding contract's OI for the future (the black column), so one can have an idea of the total OI for the day (Yellow line).
As numer of outstanding contracts varies from future to future,Eg:
E-mini (ES) has 4 contracts, Gold(GC) 16 cntrcts, NatGas(NG) has 43, WTI(CL) has 38 etc
the scrips tries to guess how many exist for it and sums them up, to have the total OI for tha day
Number ofoutstanding contracts exported by quandl.com to tradingview is taken from
s3.amazonaws.com
There are 2 params you can enter on the script:
* override the ticket symbol on the chart ,if script cannot guessit or you need a different one
* enter the "preliminary" OI that is published by CME early the next day, butb not yet exported by quandl to tradingview
This script is Open so anyone can copy and modifyit for its use.
Please post comments and ideas if you find it useful
I try to keep a log of my work here:
Multi SMA EMA WMA HMA BB (5x8 MAs Bollinger Bands) MAX MTF - RRBMulti SMA EMA WMA HMA 4x7 Moving Averages with Bollinger Bands MAX MTF by RagingRocketBull 2019
Version 1.0
All available MAX MTF versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: 4x7 = 28 MTF MAs + 28 Levels + 3 BB = 59 < 64
ver 2.0: 5x6 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 3.0: 3x10 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 4.0: 5(4+1)x8 = 8 CurTF MAs + 32 MTF MAs + 20 Levels + 3 BB = 63 < 64
ver 5.0: 6(5+1)x6 = 6 CurTF MAs + 30 MTF MAs + 24 Levels + 3 BB = 63 < 64
ver 6.0: 4(3+1)x10 = 10 CurTF MAs + 30 MTF MAs + 20 Levels + 3 BB = 63 < 64
Fib numbers: 8, 13, 21, 34, 55, 89, 144, 233, 377
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group, a total of 4 TFs * 7 MAs = 28 MAs. You can assign any type/timeframe combo to a group, for example:
- EMAs 9,12,26,50,100,200,400 x H1, H4, D1, W1 (4 TFs x 7 MAs x 1 type)
- EMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 x M15, H1 (2 TFs x 14 MAs x 1 type)
- D1 EMAs and SMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 (1 TF x 14 MAs x 2 types)
- H1 WMAs 13,21,34,55,89,144,233; H4 HMAs 9,12,26,50,100,200,400; D1 EMAs 12,26,89,144,169,233,377; W1 SMAs 9,12,26,50,100,200,400 (4 TFs x 7 MAs x 4 types)
- +1 extra MA type/timeframe for BB
There are several versions: Simple, MTF, Pro MTF, Advanced MTF, MAX MTF and Ultimate MTF. This is the MAX MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF) +1 TF for BB, TF XY smoothing
- Pro MTF: 4 custom Timeframes for each group (4x3 MTF), 1 TF for BB, MA levels and show max bars back options
- Advanced MTF: +4 extra MAs/group (4x7 MTF), custom Ticker/Symbols, Timeframe <>= filter, Remove Duplicates Option
- MAX MTF: +2 subtypes/group, packed to the limit with max possible MAs/TFs: 4x7, 5x6, 3x10, 4(3+1)x10, 5(4+1)x8, 6(5+1)x6
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
MAX MTF version tests the limits of Pinescript trying to squeeze as many MAs/TFs as possible into a single indicator.
It's basically a maxed out Advanced version with subtypes allowing for mixed types within a group (i.e. both emas and smas in a single group/TF)
Pinescript has the following limits:
- max 40 security calls (6 calls are reserved for dupe checks and smoothing, 2 are used for BB, so only 32 calls are available)
- max 64 plot outputs (BB uses 3 outputs, so only 61 plot outputs are available)
- max 50000 (50kb) size of the compiled code
Based on those limits, you can only have the following MAs/TFs combos in a single script:
1. 4x7, 5x6, 3x10 - total number of MTF MAs must always be <= 32, and you can still have BB and Num Levels = total MAs, without any compromises
2. 5(4+1)x8, 6(5+1)x6, 4(3+1)x10 - you can use the Current Symbol/Timeframe as an extra (+1) fixed TF with the same number of MTF MAs
- you don't need to call security to display MAs on the Current Symbol/Timeframe, so the total number of MTF MAs remains the same and is still <= 32
- to fit that many MAs into the max 64 plot outputs limit you need to reduce the number of levels (not every MA Group will have corresponding levels)
Features:
- 4x7 = 28 MAs of any type
- 4x MTF groups with XY step line smoothing
- +1 extra TF/type for BB MAs
- 2 MA subtypes within each group/TF
- 4x7 = 28 MA levels with adjustable group offsets, indents and shift
- supports any existing type of MA: SMA, EMA, WMA, Hull Moving Average (HMA)
- custom tickers/symbols for each group
- show max bars back option
- show/hide both groups of MAs/levels/BB and individual MAs
- timeframe filter: show only MAs/Levels with TFs <>= Current TF
- hide MAs/Levels with duplicate TFs
- support for custom TFs that are not available in free accounts: 2D, 3D etc
- support for timeframes in H: H, 2H, 4H etc
Notes:
- Uses timeframe textbox instead of input resolution dropdown to allow for 240 120 and other custom TFs
- Uses symbol textbox instead of input symbol to avoid establishing multiple dummy security connections to the current ticker - otherwise empty symbols will prevent script from running
- Possible reasons for missing MAs on a chart:
- there may not be enough bars in history to start plotting it. For example, W1 EMA200 needs at least 200 bars on a weekly chart.
- for charts with low/fractional prices i.e. 0.00002 << 0.001 (default Y smoothing step) decrease Y smoothing as needed (set Y = 0.0000001) or disable it completely (set X,Y to 0,0)
- for charts with high price values i.e. 20000 >> 0.001 increase Y smoothing as needed (set Y = 10-20). Higher values exceeding MAs point density will cause it to disappear as there will be no points to plot. Different TFs may require diff adjustments
- TradingView Replay Mode UI and Pinescript security calls are limited to TFs >= D (D,2D,W,MN...) for free accounts
- attempting to plot any TF < D1 in Replay Mode will only result in straight lines, but all TFs will work properly in history and real-time modes. This is not a bug.
- Max Bars Back (num_bars) is limited to 5000 for free accounts (10000 for paid), will show error when exceeded. To plot on all available history set to 0 (default)
- Slow load/redraw times. This indicator becomes slower, its UI less responsive when:
- Pinescript Node.js graphics library is too slow and inefficient at plotting bars/objects in a browser window. Code optimization doesn't help much - the graphics engine is the main reason for general slowness.
- the chart has a long history (10000+ bars) in a browser's cache (you have scrolled back a couple of screens in a max zoom mode).
- Reload the page/Load a fresh chart and then apply the indicator or
- Switch to another Timeframe (old TF history will still remain in cache and that TF will be slow)
- in max possible zoom mode around 4500 bars can fit on 1 screen - this also slows down responsiveness. Reset Zoom level
- initial load and redraw times after a param change in UI also depend on TF. For example: D1/W1 - 2 sec, H1/H4 - 5-6 sec, M30 - 10 sec, M15/M5 - 4 sec, M1 - 5 sec. M30 usually has the longest history (up to 16000 bars) and W1 - the shortest (1000 bars).
- when indicator uses more MAs (plots) and timeframes it will redraw slower. Seems that up to 5 Timeframes is acceptable, but 6+ Timeframes can become very slow.
- show_last=last_bars plot limit doesn't affect load/redraw times, so it was removed from MA plot
- Max Bars Back (num_bars) default/custom set UI value doesn't seem to affect load/redraw times
- In max zoom mode all dynamic levels disappear (they behave like text)
- Dupe check includes symbol: symbol, tf, both subtypes - all must match for a duplicate group
- For the dupe check to work correctly a custom symbol must always include an exchange prefix. BB is not checked for dupes
Good Luck! Feel free to learn from/reuse the code to build your own indicators.
Multi SMA EMA WMA HMA BB (4x5 MAs Bollinger Bands) Adv MTF - RRBMulti SMA EMA WMA HMA 4x5 Moving Averages with Bollinger Bands Advanced MTF by RagingRocketBull 2019
Version 1.0
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group, a total of 4 TFs * 5 MAs = 20 MAs. You can assign any type/timeframe combo to a group, for example:
- EMAs 12,26,50,100,200 x H1, H4, D1, W1 (4 TFs x 5 MAs x 1 type)
- EMAs 8,10,13,21,30,50,55,100,200,400 x M15, H1 (2 TFs x 10 MAs x 1 type)
- D1 EMAs and SMAs 8,10,12,26,30,50,55,100,200,400 (1 TF x 10 MAs x 2 types)
- H1 WMAs 7,77,89,167,231; H4 HMAs 12,26,50,100,200; D1 EMAs 89,144,169,233,377; W1 SMAs 12,26,50,100,200 (4 TFs x 5 MAs x 4 types)
- +1 extra MA type/timeframe for BB
There are several versions: Simple, MTF, Pro MTF, Advanced MTF and Ultimate MTF. This is the Advanced MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF) +1 TF for BB, TF XY smoothing
- Pro MTF: 4 custom Timeframes for each group (4x3 MTF), 1 TF for BB, MA levels and show max bars back options
- Advanced MTF: +2 extra MAs/group (4x5 MTF), custom Ticker/Symbols, Timeframe <>= filter, Remove Duplicates Option
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
Features:
- 4x5 = 20 MAs of any type
- 4x MTF groups with XY step line smoothing
- +1 extra TF/type for BB MAs
- 4x5 = 20 MA levels with adjustable group offsets, indents and shift
- supports any existing type of MA: SMA, EMA, WMA, Hull Moving Average (HMA)
- custom tickers/symbols for each group - you can compare MAs of the same symbol across exchanges
- show max bars back option
- show/hide both groups of MAs/levels/BB and individual MAs
- timeframe filter: show only MAs/Levels with TFs <>= Current TF
- hide MAs/Levels with duplicate TFs
- support for custom TFs that are not available in free accounts: 2D, 3D etc
- support for timeframes in H: H, 2H, 4H etc
Notes:
- Uses timeframe textbox instead of input resolution dropdown to allow for 240 120 and other custom TFs
- Uses symbol textbox instead of input symbol to avoid establishing multiple dummy security connections to the current ticker - otherwise empty symbols will prevent script from running
- Possible reasons for missing MAs on a chart:
- there may not be enough bars in history to start plotting it. For example, W1 EMA200 needs at least 200 bars on a weekly chart.
- price << default Y smoothing step 5. For charts with low/fractional prices (i.e. 0.00002 << 5) adjust X Y smoothing as needed (set Y = 0.0000001) or disable it completely (set X,Y to 0,0)
- TradingView Replay Mode UI and Pinescript security calls are limited to TFs >= D (D,2D,W,MN...) for free accounts
- attempting to plot any TF < D1 in Replay Mode will only result in straight lines, but all TFs will work properly in history and real-time modes. This is not a bug.
- Max Bars Back (num_bars) is limited to 5000 for free accounts (10000 for paid), will show error when exceeded. To plot on all available history set to 0 (default)
- Slow load/redraw times. This indicator becomes slower, its UI less responsive when:
- Pinescript Node.js graphics library is too slow and inefficient at plotting bars/objects in a browser window. Code optimization doesn't help much - the graphics engine is the main reason for general slowness.
- the chart has a long history (10000+ bars) in a browser's cache (you have scrolled back a couple of screens in a max zoom mode).
- Reload the page/Load a fresh chart and then apply the indicator or
- Switch to another Timeframe (old TF history will still remain in cache and that TF will be slow)
- in max possible zoom mode around 4500 bars can fit on 1 screen - this also slows down responsiveness. Reset Zoom level
- initial load and redraw times after a param change in UI also depend on TF. For example:
D1/W1 - 2 sec, H1/H4 - 5-6 sec, M30 - 10 sec, M15/M5 - 4 sec, M1 - 5 sec.
M30 usually has the longest history (up to 16000 bars) and W1 - the shortest (1000 bars).
- when indicator uses more MAs (plots) and timeframes it will redraw slower. Seems that up to 5 Timeframes is acceptable, but 6+ Timeframes can become very slow.
- show_last=last_bars plot limit doesn't affect load/redraw times, so it was removed from MA plot
- Max Bars Back (num_bars) default/custom set UI value doesn't seem to affect load/redraw times
- In max zoom mode all dynamic levels disappear (they behave like text)
1. based on 3EmaBB, uses plot*, barssince and security functions
2. you can't set certain constants from input due to Pinescript limitations - change the code as needed, recompile and use as a private version
3. Levels = trackprice implementation
4. Show Max Bars Back = show_last implementation
5. swma has a fixed length = 4, alma and linreg have additional offset and smoothing params
6. Smoothing is applied by default for visual aesthetics on MTF. To use exact ma mtf values (lines with stair stepping) - disable it
Good Luck! You can explore, modify/reuse the code to build your own indicators.
Trailing Stops/Choose a Day of the WeekThis would be my second ever published strategy. It is almost the same as my first ever published script . I've been working primarily on UGAZ and DGAZ .
This is basically a statistical trade. It buys every morning near market open (or by choosing a "time constraint"), then immediately places a trailing stop at a specified amount in ticks (if used on UGAZ a tick = $0.01, if used on NG at tick = $0.001). I've found between 2% and 3% works well for the trailing stop (ie. if UGAZ = $75, a 3% trailing stop = $2.25)
-----What is different from my first strategy?------
You can test the trailing stop strategy one 1 day of the week. Days of the week are assigned numbers. Sunday=1, Monday=2, Tuesday=3 and so on. Just choose a number that correlates to the day of the week you want to test. The Trailing stop may go past that day, that's a good thing if it's making money.
-- Go long/Short is just that, it will buy shares/contracts or short them.
-- Trades per day. This may not be a good choice, when left on "2", it will trade once per day. If set above 2 and there is time left for another trade, an order will enter on the open of the next candle. I'm am still working on ideas for this.
-- Time constraints. When you select this check box, the strategy will limit an entry to the time specified below the "Use Time Constraints" check box. An Exit order will still continue past this window of time until it is stopped out.
---- very important ----
Due to decay, leveraged ETFs will give false results if the price gets far out of range. For example, your ETF is trading around $20 and you choose a 1 hour chart, it may back test back to a time before a reverse split. If the price gets to be too large, like $200, or $1200, the movement on the chart creates false indication of profit/loss.
--- Most important. ---
Do not trade off this strategy, you may lose lots of money. This is for educational use only.
Good luck
MY_DXY corrected pricePlots the current ticker's price in "DXY corrected dollar". Overlay mode.
Default resolution is 60 mins, can be modified by input (*)
Works with every ticker: GC/SI/XAUUSD etc
Bitfinex margin change / total volumeThis script tracks the net Bitfinex margin sizes from candle to candle (longs - shorts), and divide it by the total volume from the previous candle. This should give you a ratio of net margin trading volume over total volume on Bitfinex.
Note that assuming the delay is not severe, this ratio should never exceed 1 or -1 (since margin traded volume should strictly be lower than total traded volume during any time interval). As you can see clearly however, the ratio exceeds 1 and -1 quite frequently. Thanks to @CryptoTrendy on Twitter for bringing this issue to attention. Our trading group has noticed this issue ever since they introduced the tickers, and we suspect there are severe inaccuracies in either one, or both of the margin and total volume tickers.
Candle count, with simple numberWhat it does
Counts the length of same-color candle streaks (consecutive bullish or bearish bars) and prints the running number above each bar:
e.g., “1, 2, 3…”; when color flips, it restarts at “1”.
Prime numbers (2, 3, 5, 7, 11, 13) are emphasized by rendering one size step larger and with a user-selected color.
Labels are pinned to each bar (anchored by bar index and price), so they do not drift when you pan or zoom the chart.
How it works
Determines candle direction: bullish if close > open, bearish if close < open.
If the current bar has the same direction as the previous bar, the counter increments; otherwise it resets to 1.
For values 2, 3, 5, 7, 11, 13 the number is highlighted (bigger + custom color).
Each number is drawn just above the bar’s High with a configurable offset.
The script does not repaint on history. During the live bar, the number updates in real time (as expected).
Settings
Digits size — Base text size (Tiny / Small / Normal / Large / Huge).
Prime numbers are automatically shown one step larger than the base size.
Offset above bar (ticks) — Vertical offset from the bar’s High, in instrument ticks.
Prime numbers color — Text color used specifically for prime numbers (non-prime digits are white).
How to read & use it
Rising momentum. Long streaks (e.g., 5–7+) suggest strong directional moves with few pullbacks.
Early pause/mean-reversion hints. After a long streak, the appearance of the opposite color (counter resets to “1”) often coincides with a pause or minor retrace.
Research & statistics. Quickly see which streak lengths are common on your market/timeframe (e.g., “How often do 3–5 bar runs occur?”).
Trade management. You can tie partial exits to specific streak lengths (2, 3, 5…) or reduce risk when the counter flips back to “1”.
Why it’s useful
Provides a clean, numeric view of momentum with zero smoothing or lag.
Works on any symbol and timeframe.
Prime-number emphasis makes important counts pop at a glance.
Pinned labels stay exactly above their bars, ensuring stable, readable visuals at any zoom level.
Notes
Doji bars (close == open) are treated as no direction and reset the streak.
This is a context tool, not a standalone buy/sell signal. Combine it with your entry/exit framework.
Very dense charts may hit platform label limits; the script raises the limit, but extremely long histories on very low timeframes can still be heavy.
Gamma Blast StrategyGamma Blast Strategy used for quick 2-5 ticks on Buys, but on a sideways market can get up to 15-20 ticks.
IBS markerIndicator Description
This indicator provides a detailed analysis of the structure and volatility of each candlestick. It is designed to help traders better understand the balance between buying and selling pressure within individual bars, as well as the short-term volatility environment.
📌 Features
Candlestick Structure Analysis
Calculates the relative percentage of the upper wick, lower wick, and real body of each candle.
Helps traders visually and numerically evaluate whether a candle is dominated by bullish, bearish, or indecisive pressure.
IBS (Intraday Bar Strength)
Computes the Intraday Bar Strength value, showing where the close is located relative to the high-low range.
A high IBS indicates strong closing near the high, while a low IBS indicates weakness near the low.
Range Measurements
Displays the candlestick range in both price units and ticks.
Useful for traders who need precise range data for scalping or range-based strategies.
ATR (Average True Range) Volatility Filter
ATR is included with a configurable period setting.
Provides a contextual measure of volatility, helping traders compare current bar size against recent market behavior.
Dynamic Chart Labels
Key values (such as wick percentages, IBS, and range) are displayed directly on the chart through dynamic labels.
This allows for quick interpretation without opening extra panels or indicators.
📈 How to Use
Add the indicator to any chart and configure the settings (ATR period, label visibility, etc.) according to your trading style.
Use wick/body ratios to spot candles with unusual buying/selling pressure.
Combine IBS with ATR to identify potential exhaustion or continuation setups.
The dynamic labels are best used on lower timeframes for scalpers, but they can also provide insights on higher timeframes for swing traders.
🔍 Practical Applications
Identify reversal candles where one wick dominates.
Measure strength of breakouts by comparing candle body % and IBS values.
Detect volatility shifts by monitoring when bar ranges deviate from the ATR baseline.
Support scalping strategies that rely on tick-based range detection.
✅ Notes
This is a standalone indicator and does not require any other script to function.
Works on all markets (stocks, futures, forex, crypto).
For best results, use in conjunction with price action analysis or your preferred trading strategy.
IBS_WickandBody_ATRIndicator Description
This indicator provides a detailed analysis of the structure and volatility of each candlestick. It is designed to help traders better understand the balance between buying and selling pressure within individual bars, as well as the short-term volatility environment.
📌 Features
Candlestick Structure Analysis
Calculates the relative percentage of the upper wick, lower wick, and real body of each candle.
Helps traders visually and numerically evaluate whether a candle is dominated by bullish, bearish, or indecisive pressure.
IBS (Intraday Bar Strength)
Computes the Intraday Bar Strength value, showing where the close is located relative to the high-low range.
A high IBS indicates strong closing near the high, while a low IBS indicates weakness near the low.
Range Measurements
Displays the candlestick range in both price units and ticks.
Useful for traders who need precise range data for scalping or range-based strategies.
ATR (Average True Range) Volatility Filter
ATR is included with a configurable period setting.
Provides a contextual measure of volatility, helping traders compare current bar size against recent market behavior.
Dynamic Chart Labels
Key values (such as wick percentages, IBS, and range) are displayed directly on the chart through dynamic labels.
This allows for quick interpretation without opening extra panels or indicators.
📈 How to Use
Add the indicator to any chart and configure the settings (ATR period, label visibility, etc.) according to your trading style.
Use wick/body ratios to spot candles with unusual buying/selling pressure.
Combine IBS with ATR to identify potential exhaustion or continuation setups.
The dynamic labels are best used on lower timeframes for scalpers, but they can also provide insights on higher timeframes for swing traders.
🔍 Practical Applications
Identify reversal candles where one wick dominates.
Measure strength of breakouts by comparing candle body % and IBS values.
Detect volatility shifts by monitoring when bar ranges deviate from the ATR baseline.
Support scalping strategies that rely on tick-based range detection.
✅ Notes
This is a standalone indicator and does not require any other script to function.
Works on all markets (stocks, futures, forex, crypto).
For best results, use in conjunction with price action analysis or your preferred trading strategy.
Candle Body Size AlertThis indicator monitors the body size of each candle (close minus open, ignoring wicks) and compares it to a user-defined threshold measured in ticks. If the candle body exceeds the threshold, the indicator triggers an alert condition at the close of the candle.
Features:
1. Adjustable threshold in ticks (default: 4000)
2. Adjustable timeframe (or use chart timeframe)
3. Alerts only at candle close (no intrabar signals)
Use Case:
Designed for traders who want to be notified when unusually large candles form, helping to identify strong momentum moves or volatility spikes.
Portfolio Tracker ARJO (V-01)Portfolio Tracker ARJO (V-01)
This indicator is a user-friendly portfolio tracking tool designed for TradingView charts. It overlays a customizable table on your chart to monitor up to 15 stocks or symbols in your portfolio. It calculates real-time metrics like current market price (CMP), gains/losses, and stoploss breaches, helping you stay on top of your investments without switching between multiple charts. The table uses color-coding for quick visual insights: green for profits, red for losses, and highlights breached stoplosses in red for alerts. It also shows portfolio-wide totals for overall performance.
Key Features
Supports up to 15 Symbols: Enter stock tickers (e.g., NSE:RELIANCE or BSE:TCS) with details like buy price, date, units, and stoploss.
Symbol: The stock ticker and description.
Buy Date: When you purchased it.
Units: Number of shares/units held.
Buy Price: Your entry price.
Stop Loss: Your set stoploss level (highlighted in red if breached by CMP).
CMP: Current market price (fetched from the chart's timeframe).
% Gain/Loss: Percentage change from buy price (color-coded: green for positive, red for negative).
Gain/Loss: Total monetary gain/loss based on units.
Optional Timeframe Columns: Toggle to show % change over 1 Week (1W), 1 Month (1M), 3 Months (3M), and 6 Months (6M) for historical performance.
Portfolio Summary: At the top of the table, see total % gain/loss and absolute gain/loss for your entire portfolio.
Visual Customizations: Adjust table position (e.g., Top Right), size, colors for positive/negative values, and intensity cutoff for gradients.
Benchmark Index-Based Header: The title row's background color reflects NIFTY's weekly trend (green if above 10-week SMA, red if below) for market context.
Benchmark Index-Based Header: The title row's background color reflects NIFTY's weekly trend (green if above 10-week SMA, red if below) for market context.
How to Use It: Step-by-Step Guide
Add the Indicator to Your Chart: Search for "Portfolio Tracker ARJO (V-01)" in TradingView's indicator library and add it to any chart (preferably Daily timeframe for accuracy).
Input Your Portfolio Symbols:
Open the indicator settings (gear icon).
In the "Symbol 1" to "Symbol 15" groups, fill in:
Symbol: Enter the ticker (e.g., NSE:INFY).
Year/Month/Day: Select your buy date (e.g., 2024-07-01).
Buy Price: Your purchase price per unit.
Stoploss: Your exit price if things go south.
Units: How many shares you own.
Only fill what you need—leave extras blank. The table auto-adjusts to show only entered symbols.
Customize the Table (Optional):
In "Table settings":
Choose position (e.g., Top Right) and size (% of chart).
Toggle "Show Timeframe Columns" to add 1W/1M/3M/6M performance.
In "Color settings":
Pick colors for positive (green) and negative (red) cells.
Set "Color intensity cutoff (%)" to control how strong the colors get (e.g., 10% means changes above 10% max out the color).
Interpret the Table on Your Chart:
The table appears overlaid—scan rows for each symbol's stats.
Look at colors: Greener = better gains; redder = bigger losses.
Check CMP cell: Red means stoploss breached—consider selling!
Portfolio Gain/Loss at the top gives a quick overall health check.
For Best Results:
Use on a Daily chart to avoid CMP errors (the script will warn if on Weekly/Monthly).
Refresh the chart or wait for a new bar if data doesn't update immediately.
For Indian stocks, prefix with NSE: or BSE: (e.g., BSE:RELIANCE).
This is for tracking only—not trading signals. Combine with your strategy.
If no symbols show, ensure inputs are valid (e.g., buy price > 0, valid date).
Finally, this tool makes it quite easy for beginners to track their portfolios, while also giving advanced traders powerful and customizable insights. I'd love to hear your feedback—happy trading!
log.info() - 5 Exampleslog.info() is one of the most powerful tools in Pine Script that no one knows about. Whenever you code, you want to be able to debug, or find out why something isn’t working. The log.info() command will help you do that. Without it, creating more complex Pine Scripts becomes exponentially more difficult.
The first thing to note is that log.info() only displays strings. So, if you have a variable that is not a string, you must turn it into a string in order for log.info() to work. The way you do that is with the str.tostring() command. And remember, it's all lower case! You can throw in any numeric value (float, int, timestamp) into str.string() and it should work.
Next, in order to make your output intelligible, you may want to identify whatever value you are logging. For example, if an RSI value is 50, you don’t want a bunch of lines that just say “50”. You may want it to say “RSI = 50”.
To do that, you’ll have to use the concatenation operator. For example, if you have a variable called “rsi”, and its value is 50, then you would use the “+” concatenation symbol.
EXAMPLE 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
log.info(“RSI= ” + str.tostring(rsi))
Example Output =>
RSI= 50
Here, we use double quotes to create a string that contains the name of the variable, in this case “RSI = “, then we concatenate it with a stringified version of the variable, rsi.
Now that you know how to write a log, where do you view them? There isn’t a lot of documentation on it, and the link is not conveniently located.
Open up the “Pine Editor” tab at the bottom of any chart view, and you’ll see a “3 dot” button at the top right of the pane. Click that, and right above the “Help” menu item you’ll see “Pine logs”. Clicking that will open that to open a pane on the right of your browser - replacing whatever was in the right pane area before. This is where your log output will show up.
But, because you’re dealing with time series data, using the log.info() command without some type of condition will give you a fast moving stream of numbers that will be difficult to interpret. So, you may only want the output to show up once per bar, or only under specific conditions.
To have the output show up only after all computations have completed, you’ll need to use the barState.islast command. Remember, barState is camelCase, but islast is not!
EXAMPLE 2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
if barState.islast
log.info("RSI=" + str.tostring(rsi))
plot(rsi)
However, this can be less than ideal, because you may want the value of the rsi variable on a particular bar, at a particular time, or under a specific chart condition. Let’s hit these one at a time.
In each of these cases, the built-in bar_index variable will come in handy. When debugging, I typically like to assign a variable “bix” to represent bar_index, and include it in the output.
So, if I want to see the rsi value when RSI crosses above 0.5, then I would have something like
EXAMPLE 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,0.5)
if rsiCrossedOver
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
bix=19964 - RSI=51.8449459867
bix=19972 - RSI=50.0975830828
bix=19983 - RSI=53.3529808079
bix=19985 - RSI=53.1595745146
bix=19999 - RSI=66.6466337654
bix=20001 - RSI=52.2191767466
Here, we see that the output only appears when the condition is met.
A useful thing to know is that if you want to limit the number of decimal places, then you would use the command str.tostring(rsi,”#.##”), which tells the interpreter that the format of the number should only be 2 decimal places. Or you could round the rsi variable with a command like rsi2 = math.round(rsi*100)/100 . In either case you’re output would look like:
bix=19964 - RSI=51.84
bix=19972 - RSI=50.1
bix=19983 - RSI=53.35
bix=19985 - RSI=53.16
bix=19999 - RSI=66.65
bix=20001 - RSI=52.22
This would decrease the amount of memory that’s being used to display your variable’s values, which can become a limitation for the log.info() command. It only allows 4096 characters per line, so when you get to trying to output arrays (which is another cool feature), you’ll have to keep that in mind.
Another thing to note is that log output is always preceded by a timestamp, but for the sake of brevity, I’m not including those in the output examples.
If you wanted to only output a value after the chart was fully loaded, that’s when barState.islast command comes in. Under this condition, only one line of output is created per tick update — AFTER the chart has finished loading. For example, if you only want to see what the the current bar_index and rsi values are, without filling up your log window with everything that happens before, then you could use the following code:
EXAMPLE 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
if barstate.islast
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
Example Output =>
bix=20203 - RSI=53.1103309071
This value would keep updating after every new bar tick.
The log.info() command is a huge help in creating new scripts, however, it does have its limitations. As mentioned earlier, only 4096 characters are allowed per line. So, although you can use log.info() to output arrays, you have to be aware of how many characters that array will use.
The following code DOES NOT WORK! And, the only way you can find out why will be the red exclamation point next to the name of the indicator. That, and nothing will show up on the chart, or in the logs.
// CODE DOESN’T WORK
//@version=6
indicator("MW - log.info()")
var array rsi_arr = array.new()
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50)
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
// No code errors, but will not compile because too much is being written to the logs.
However, after putting some time restrictions in with the i_startTime and i_endTime user input variables, and creating a dateFilter variable to use in the conditions, I can limit the size of the final array. So, the following code does work.
EXAMPLE 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// CODE DOES WORK
//@version=6
indicator("MW - log.info()")
i_startTime = input.time(title="Start", defval=timestamp("01 Jan 2025 13:30 +0000"))
i_endTime = input.time(title="End", defval=timestamp("1 Jan 2099 19:30 +0000"))
var array rsi_arr = array.new()
dateFilter = time >= i_startTime and time <= i_endTime
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50) and dateFilter // <== The dateFilter condition keeps the array from getting too big
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
rsi_arr:
bix=20210 - RSI=56.9030578034
Of course, if you restrict the decimal places by using the rounding the rsi value with something like rsiRounded = math.round(rsi * 100) / 100 , then you can further reduce the size of your array. In this case the output may look something like:
Example Output =>
rsi_arr:
bix=20210 - RSI=55.6947486019
This will give your code a little breathing room.
In a nutshell, I was coding for over a year trying to debug by pushing output to labels, tables, and using libraries that cluttered up my code. Once I was able to debug with log.info() it was a game changer. I was able to start building much more advanced scripts. Hopefully, this will help you on your journey as well.
Options Strategy V1.3📈 Options Strategy V1.3 — EMA Crossover + RSI + ATR + Opening Range
Overview:
This strategy is designed for short-term directional trades on large-cap stocks or ETFs, especially when trading options. It combines classic trend-following signals with momentum confirmation, volatility-based risk management, and session timing filters to help identify high-probability entries with predefined stop-loss and profit targets.
🔍 Strategy Components:
EMA Crossover (Fast/Slow)
Entry signals are triggered by the crossover of a short EMA above or below a long EMA — a traditional trend-following method to detect shifts in momentum.
RSI Filter
RSI confirms the signal by avoiding entries in overbought/oversold zones unless certain momentum conditions are met.
Long entry requires RSI ≥ Long Threshold
Short entry requires RSI ≤ Short Threshold
ATR-Based SL & TP
Stop-loss is set dynamically as a multiple of ATR below (long) or above (short) the entry price.
Take-profit is placed as a ratio (TP/SL) of the stop distance, ensuring consistent reward/risk structure.
Opening Range Filter (Optional)
If enabled, the strategy only triggers trades after price breaks out of the 09:30–09:45 EST range, ensuring participation in directional moves.
Session Filters
No trades from 04:00 to 09:30 and from 16:00 to 20:00 EST, avoiding low-liquidity periods.
All open trades are closed at 15:55 EST, to avoid overnight risk or expiration issues for options.
⚙️ Built-in Presets:
You can choose one of the built-in ticker-specific presets for optimal conditions:
Ticker EMAs RSI (Long/Short) ATR SL×ATR TP/SL
SPY 8/28 56 / 26 14 1.4× 4.0×
TSLA 23/27 56 / 33 13 1.4× 3.6×
AAPL 6/13 61 / 26 23 1.4× 2.1×
MSFT 25/32 54 / 26 14 1.2× 2.2×
META 25/32 53 / 26 17 1.8× 2.3×
AMZN 28/32 55 / 25 16 1.8× 2.3×
You can also choose "Custom" to fully configure all parameters to your own market and strategy preferences.
📌 Best Use Case:
This strategy is especially suited for intraday options trading, where timing and risk control are critical. It works best on liquid tickers with strong trends or clear breakout behavior.
Simple Risk-to-Reward (R) Indicator (TP1–TP2)What this indicator does:
This tool helps traders clearly visualize their risk and reward on any trade by plotting their entry, stop loss, and take-profit (TP) levels directly on the chart. It’s designed to make manual trade planning more visual and systematic.
How it works:
You set your planned entry price, whether you want to plot a Long or Short setup, and your stop-loss distance (in ticks).
The indicator calculates your stop-loss level and automatically plots it on the chart.
It then draws take-profit levels at 1R and 2R (where “R” is your risk, the distance between entry and stop).
You can toggle the TP1 and TP2 lines on or off to suit your preference.
How to use it:
Open the settings and enter your intended entry price.
Select “Long Setup” for a buy trade, or turn it off for a sell/short trade.
Enter your desired stop loss in ticks.
Choose which take-profit levels to display by toggling TP1 and TP2.
The indicator will show entry, stop, and take-profit levels right on your chart so you can easily see your planned risk/reward.
What makes it unique and useful:
This indicator is designed for manual trade planning, giving you full control over your inputs and letting you instantly see your risk/reward on any instrument or timeframe. Unlike some built-in tools, it supports both long and short trades, lets you set all levels manually, and keeps your charts clean and easy to interpret.
Long/Short/Exit/Risk management Strategy # LongShortExit Strategy Documentation
## Overview
The LongShortExit strategy is a versatile trading system for TradingView that provides complete control over entry, exit, and risk management parameters. It features a sophisticated framework for managing long and short positions with customizable profit targets, stop-loss mechanisms, partial profit-taking, and trailing stops. The strategy can be enhanced with continuous position signals for visual feedback on the current trading state.
## Key Features
### General Settings
- **Trading Direction**: Choose to trade long positions only, short positions only, or both.
- **Max Trades Per Day**: Limit the number of trades per day to prevent overtrading.
- **Bars Between Trades**: Enforce a minimum number of bars between consecutive trades.
### Session Management
- **Session Control**: Restrict trading to specific times of the day.
- **Time Zone**: Specify the time zone for session calculations.
- **Expiration**: Optionally set a date when the strategy should stop executing.
### Contract Settings
- **Contract Type**: Select from common futures contracts (MNQ, MES, NQ, ES) or custom values.
- **Point Value**: Define the dollar value per point movement.
- **Tick Size**: Set the minimum price movement for accurate calculations.
### Visual Signals
- **Continuous Position Signals**: Implement 0 to 1 visual signals to track position states.
- **Signal Plotting**: Customize color and appearance of position signals.
- **Clear Visual Feedback**: Instantly see when entry conditions are triggered.
### Risk Management
#### Stop Loss and Take Profit
- **Risk Type**: Choose between percentage-based, ATR-based, or points-based risk management.
- **Percentage Mode**: Set SL/TP as a percentage of entry price.
- **ATR Mode**: Set SL/TP as a multiple of the Average True Range.
- **Points Mode**: Set SL/TP as a fixed number of points from entry.
#### Advanced Exit Features
- **Break-Even**: Automatically move stop-loss to break-even after reaching specified profit threshold.
- **Trailing Stop**: Implement a trailing stop-loss that follows price movement at a defined distance.
- **Partial Profit Taking**: Take partial profits at predetermined price levels:
- Set first partial exit point and percentage of position to close
- Set second partial exit point and percentage of position to close
- **Time-Based Exit**: Automatically exit a position after a specified number of bars.
#### Win/Loss Streak Management
- **Streak Cutoff**: Automatically pause trading after a series of consecutive wins or losses.
- **Daily Reset**: Option to reset streak counters at the start of each day.
### Entry Conditions
- **Source and Value**: Define the exact price source and value that triggers entries.
- **Equals Condition**: Entry signals occur when the source exactly matches the specified value.
### Performance Analytics
- **Real-Time Stats**: Track important performance metrics like win rate, P&L, and largest wins/losses.
- **Visual Feedback**: On-chart markers for entries, exits, and important events.
### External Integration
- **Webhook Support**: Compatible with TradingView's webhook alerts for automated trading.
- **Cross-Platform**: Connect to external trading systems and notification platforms.
- **Custom Order Execution**: Implement advanced order flows through external services.
## How to Use
### Setup Instructions
1. Add the script to your TradingView chart.
2. Configure the general settings based on your trading preferences.
3. Set session trading hours if you only want to trade specific times.
4. Select your contract specifications or customize for your instrument.
5. Configure risk parameters:
- Choose your preferred risk management approach
- Set appropriate stop-loss and take-profit levels
- Enable advanced features like break-even, trailing stops, or partial profit taking as needed
6. Define entry conditions:
- Select the price source (such as close, open, high, or an indicator)
- Set the specific value that should trigger entries
### Entry Condition Examples
- **Example 1**: To enter when price closes exactly at a whole number:
- Long Source: close
- Long Value: 4200 (for instance, to enter when price closes exactly at 4200)
- **Example 2**: To enter when an indicator reaches a specific value:
- Long Source: ta.rsi(close, 14)
- Long Value: 30 (triggers when RSI equals exactly 30)
### Best Practices
1. **Always backtest thoroughly** before using in live trading.
2. **Start with conservative risk settings**:
- Small position sizes
- Reasonable stop-loss distances
- Limited trades per day
3. **Monitor and adjust**:
- Use the performance table to track results
- Adjust parameters based on how the strategy performs
4. **Consider market volatility**:
- Use ATR-based stops during volatile periods
- Use fixed points during stable markets
## Continuous Position Signals Implementation
The LongShortExit strategy can be enhanced with continuous position signals to provide visual feedback about the current position state. These signals can help you track when the strategy is in a long or short position.
### Adding Continuous Position Signals
Add the following code to implement continuous position signals (0 to 1):
```pine
// Continuous position signals (0 to 1)
var float longSignal = 0.0
var float shortSignal = 0.0
// Update position signals based on your indicator's conditions
longSignal := longCondition ? 1.0 : 0.0
shortSignal := shortCondition ? 1.0 : 0.0
// Plot continuous signals
plot(longSignal, title="Long Signal", color=#00FF00, linewidth=2, transp=0, style=plot.style_line)
plot(shortSignal, title="Short Signal", color=#FF0000, linewidth=2, transp=0, style=plot.style_line)
```
### Benefits of Continuous Position Signals
- Provides clear visual feedback of current position state (long/short)
- Signal values stay consistent (0 or 1) until condition changes
- Can be used for additional calculations or alert conditions
- Makes it easier to track when entry conditions are triggered
### Using with Custom Indicators
You can adapt the continuous position signals to work with any custom indicator by replacing the condition with your indicator's logic:
```pine
// Example with moving average crossover
longSignal := fastMA > slowMA ? 1.0 : 0.0
shortSignal := fastMA < slowMA ? 1.0 : 0.0
```
## Webhook Integration
The LongShortExit strategy is fully compatible with TradingView's webhook alerts, allowing you to connect your strategy to external trading platforms, brokers, or custom applications for automated trading execution.
### Setting Up Webhooks
1. Create an alert on your chart with the LongShortExit strategy
2. Enable the "Webhook URL" option in the alert dialog
3. Enter your webhook endpoint URL (from your broker or custom trading system)
4. Customize the alert message with relevant information using TradingView variables
### Webhook Message Format Example
```json
{
"strategy": "LongShortExit",
"action": "{{strategy.order.action}}",
"price": "{{strategy.order.price}}",
"quantity": "{{strategy.position_size}}",
"time": "{{time}}",
"ticker": "{{ticker}}",
"position_size": "{{strategy.position_size}}",
"position_value": "{{strategy.position_value}}",
"order_id": "{{strategy.order.id}}",
"order_comment": "{{strategy.order.comment}}"
}
```
### TradingView Alert Condition Examples
For effective webhook automation, set up these alert conditions:
#### Entry Alert
```
{{strategy.position_size}} != {{strategy.position_size}}
```
#### Exit Alert
```
{{strategy.position_size}} < {{strategy.position_size}} or {{strategy.position_size}} > {{strategy.position_size}}
```
#### Partial Take Profit Alert
```
strategy.order.comment contains "Partial TP"
```
### Benefits of Webhook Integration
- **Automated Trading**: Execute trades automatically through supported brokers
- **Cross-Platform**: Connect to custom trading bots and applications
- **Real-Time Notifications**: Receive trade signals on external platforms
- **Data Collection**: Log trade data for further analysis
- **Custom Order Management**: Implement advanced order types not available in TradingView
### Compatible External Applications
- Trading bots and algorithmic trading software
- Custom order execution systems
- Discord, Telegram, or Slack notification systems
- Trade journaling applications
- Risk management platforms
### Implementation Recommendations
- Test webhook delivery using a free service like webhook.site before connecting to your actual trading system
- Include authentication tokens or API keys in your webhook URL or payload when required by your external service
- Consider implementing confirmation mechanisms to verify trade execution
- Log all webhook activities for troubleshooting and performance tracking
## Strategy Customization Tips
### For Scalping
- Set smaller profit targets (1-3 points)
- Use tighter stop-losses
- Enable break-even feature after small profit
- Set higher max trades per day
### For Day Trading
- Use moderate profit targets
- Implement partial profit taking
- Enable trailing stops
- Set reasonable session trading hours
### For Swing Trading
- Use longer-term charts
- Set wider stops (ATR-based often works well)
- Use higher profit targets
- Disable daily streak reset
## Common Troubleshooting
### Low Win Rate
- Consider widening stop-losses
- Verify that entry conditions aren't triggering too frequently
- Check if the equals condition is too restrictive; consider small tolerances
### Missing Obvious Trades
- The equals condition is extremely precise. Price must exactly match the specified value.
- Consider using floating-point precision for more reliable triggers
### Frequent Stop-Outs
- Try ATR-based stops instead of fixed points
- Increase the stop-loss distance
- Enable break-even feature to protect profits
## Important Notes
- The exact equals condition is strict and may result in fewer trade signals compared to other conditions.
- For instruments with decimal prices, exact equality might be rare. Consider the precision of your value.
- Break-even and trailing stop calculations are based on points, not percentage.
- Partial take-profit levels are defined in points distance from entry.
- The continuous position signals (0 to 1) provide valuable visual feedback but don't affect the strategy's trading logic directly.
- When implementing continuous signals, ensure they're aligned with the actual entry conditions used by the strategy.
---
*This strategy is for educational and informational purposes only. Always test thoroughly before using with real funds.*
MNQ EMA StrategyThis strategy is not perfected yet. ONE MINUTE TIMEFRAME
The goal is to take Longs above the 5 ema when price is above all the 200, 30, and 5 ema.
Short side is when candle closes below the 5 ema and price is below the 300, 30, and 5 ema.
I use candle range blocks for different time zones to avoid excess orders from being triggered. As well as blocks when stoploss is hit or after a profitable trade of certain ticks.
There is an RSI to avoid trades when there isn't too much movement.
My goal is to get an entry when price trades above the 5 ema and then next candle passes it by .25 instead of entering immediately. The stoploss as the low of candle before entry and TP as 3 times the stoploss. I've tried a million times to make it like this but I don't know how to use pine script or Code.
The sell side is basically the same, enter at candle close below 5 ema wait for low to get swept to enter and stoploss above previous high, with TP 3 times the stoploss.
Publishing in hopes anyone knows how to adjust this
CAUTION THIS STRATEGY WORKS WITH CURRENT PRICE ACTION DUE TO ME USING RECENT TICK COUNT RATHER THAN BASED ON CANDLES OR PERCENTAGES. THIS WILL ONLY WORK AS LONG AS MARKET MOVES AS IT HAS BEEN SINCE 2024. CME_MINI:MNQ1!
Market Sessions by BASSWELLThis TradingView indicator visually highlights major global trading sessions (Tokyo, London, New York) directly on intraday charts. It provides a clear, color-coded display of session activity and key statistics to help traders better understand session dynamics and overlaps.
✅ Key Features:
Visual Session Boxes: Draws background boxes for each session with configurable colors.
Session Names: Displays the name of each session as a label above the session box.
Open/Close Lines: Optionally shows dashed lines at session open and close prices.
Average Price Line: Plots the average session price as a dotted line.
Tick Range Display: Calculates and shows the high-low range in ticks.
Time Zone Support: Fully timezone-aware via IANA definitions (e.g. "Europe/London").
Overlap Handling: Automatically dims older sessions when a new one starts for visual clarity.
🔧 Configurable Parameters:
Show/hide each session individually.
Set session times and timezones.
Customize label visibility and box contents.
Adjust session colors with transparency.
Includes basic visual styling for better chart readability.
⚠️ Note: Works only on intraday timeframes. Daily/weekly/monthly charts are not supported.
Retirement Portfolio Dashboard1. Set It Up
Paste the script into the Pine Script editor in TradingView
Add to chart (use a daily chart for any TSX ticker)
Configure the inputs on the right panel:
Choose your ETF tickers (default: VFV, XAW, XIC)
Enter your target allocations (U.S., Global, Canada, Cash)
Set your current portfolio value and contribution plan
Adjust your expected return and rebalance trigger
📊 2. What It Tracks
💼 Allocation Overview
Target vs. actual % for each asset class
CAD value of each component
Performance YTD based on Jan 2nd start
Drift % to see how far each asset has deviated
📈 Growth Forecast
Future value projection with contributions
Weighted return (based on typical historical returns)
Inflation-adjusted real return (assuming 2% inflation)
⚠ Rebalancing
If any drift exceeds your set threshold (e.g., 5%), the script:
Highlights the issue in red
Displays "⚠ Rebalance Suggested"
Triggers a TradingView alert if you've activated it
🔔 3. Set Up Alerts
Go to Alerts > Create Alert
Choose your script from the dropdown
Under Condition, select "Rebalance Alert"
Choose your desired alert type (popup, email, webhook, etc.)
✅ 4. How to Use It Effectively
Task What to Do
Monitor allocations Check dashboard weekly or monthly
Spot imbalances Use Drift % and Status (green/red)
Forecast retirement growth Adjust contributions, return rate, and horizon
Prepare to rebalance Use alerts when drift > threshold
Tune assumptions Change expected returns or inflation rate as needed
💡 Tips
You can edit return assumptions (e.g., make Global equity more conservative)
Use this on a “blank” ticker (like TSX:XIC) so you don't overlay the chart
Copy values from your broker or retirement account to update real allocations