Technicals Rating Strategy v420Ichimoku, HMA, RSI, Stoch, CCI, MACD, Technicals Rating Strategy is a trading Bot that looks at these chosen indicators and assigns a value to each, then calculates the result of adding each indicators result value to a overall rating, which is then compared to a user set level. Here seen on Bitcoin, it has the broker fee included in the testing result. If you choose to use it on Forex etc, perhaps remove the broker fee which is unrealistic for FX trading.
It has a Win/Loss ratio of only 40% wins, but it catches the big moves and thats the main thing, so if ELON MUSK had of used this strategy instead of BUY and HOLD, he could of made 700% instead of 7% (as is, may, 2021)
Mainly intended for use as Automated TRADE BOT.
(imagine if Elon Musk did use this bot with his 1.3 billion $ worth of BTC, the drawdown would be like, half a billion or something haha (p.s.- use smaller lotsize % to get smaller drawdown, but then smaller profit....) )
For use with any pair and timeframe. In fact there is a timeframe setting to set the strategy to look at alternative timeframe from chart, but as default will just be set to charts timeframe.
Cari skrip untuk "bot"
Multiple Timeframe Fib Bollinger Bands - can be used for 3commas*** This idea is based on Bollingers Bands Fibonacci ratios by Shizaru ()
** This will look less chaotic if you don't have all four time frames on at once! I left them on for the demo picture just to show them all simultaneously working.
This is the basis for most of my bot ideas - indicators from longer chart time frames laid over short time frame charts. What I mean by this is that I like the responsiveness of a 1m chart but indicators from a 1h or 4h chart. There are obviously downsides to doing this or everyone would do it, but I have consistently gotten top results using this method. This is a study, so not a strategy yet but you can use this with 3commas if you convert it to a strategy using band crossover/under points as buy and sell triggers.
That is super easy; just follow this excellent guide here which should work for this script:
kodify.net
It's not super hard if you know a little Pine but if you need help hit me up and we can figure something out.
This script by default has 15m, 30m, 1h and 4h settings that are configurable via the gear icon. You can enable or disable any time frame, change the color, etc. I will probably add accurate line labels, custom time frames and adjustable transparency soon.
It's advisable to use higher time frame indicator on a lower time frame chart, but not the other way around. I would use these indicators on a 1m chart but not a 1d chart, for example.
Have fun and I hope you get some use out of this! I use it for context more than bots but it is definitely possible to use it with both.
M4x FIB-o-matic V3.6M4x is a combination of RSI and Fibonacci components, set up with fixed values, so no worries about "original" settings...
Recommendet Bot settings:
- use one short and one long bot
- take profit 0.5%
- 6 simul trades
- 3 security orders, VolScale 1.5, StepScale 1.4
- Deviation 0.35%
- cooldown 780sec
Alerts:
- aproved Buy
- aproved Sell
- heartbeat (..check if Script is running. Gives you the possibility to get an alive Signal every minute)
(With a few "input" M4x can be changed into a highly configurable Signal Generator with menus.)
...tested successful with BTC-ETH, gl ;-)
LUBEThis is a chart meant for 30m BTCUSD but could be used for many other assets, and there are inputs to play with.
I decided on the strange title "LUBE" because I was measuring how many of the previous 500 bars had the current price level already been in. I wanted to discover when the price was in a new zone or an area that it hadn't spent much time in recently... the LUBE zone.
Think of the blue line as showing you the current level friction. If the blue line is high, price is quagmired and not moving quickly. Price could trend sideways for a while before breaking out. A high blue line is a high traffic zone for trading. When the blue line dips low, it's encountering a price zone the asset has not been observed in recently, and this could mean price could break out and move more freely and quickly when it does. We get a trade entry signal if the blue line dips below the bottom white line. The bottom white line is currently set to -10. Think about the lowest the blue line has been recently as 0, and the highest as 100. It is set by default (for BTCUSD 30m chart) to -10 meaning the blue line has to dip a little (-10%) below the lowest it has experienced recently to initiate a trade. This is the LUBE zone. The bottom white line shows that level. Again this is a level lower than the lowest amount of friction experienced in price action for the last 100 bars, but offset by 5 bars showing where that level was at 5 bars ago. We want to dip below that to initiate a trade.
The direction to trade in is determined by a very quick moving weighted moving average (variable name is "fir") to see if the recent trend is up or down. To end a trade, an arbitrary number between 0 and 100 is picked telling us when we are experiencing enough friction again to end the trade. I have it preset to 50 (think of it as 50/100 or half way between the white bars. At a 50% friction level it's time to get out of the trade.
Some shortcomings are missing the bulk of big moves, and experiencing whipsaws where price action zips up and then comes straight back down. Overall the backtest looks sweet enough to use on 2x leverage, experiencing a 17.78% max drawdown at the time of publishing. I wouldn't push the leverage any higher.
To get alerts change the word "strategy" to "study" and delete lines 60-67.
Bot traders using alerts: beware the alert conditions. If a trade goes directly from long to short (which happens rarely), without closing a trade first, it might not act properly. If you use bots to trade, for "LONG" please close any old trades first before putting in instructions to open a leveraged long. To go "SHORT" please remember to close any old trade first as well, and things *should* work out just fine.
Good luck, have fun, and feel free to mess up and butcher this code to your own liking. I'm not responsible if anything bad that happens to you if you use this trading system, or for any bugs you may encounter.
CBMA Bollinger Bands Strategy directed [ChuckBanger]I just did a Bollinger Bands script with my newly CB moving average
While I'm generally against posting strategies because it's very easy to fake performance numbers... This is just to share a cool strategy snippet. My settings are 10 contracts/order with pyramiding set to 10. You can make the profitability a lot higher if you set the order size higher. But that dosent help you getting more out of this script when u make a bot of this script. I set the order size to 10 contracts to get your attention not to showcase the performance.
When the price is going down and outside of the lower side of the band. And when the price comes back into the channel the strategy buys. Usually that means the price is going up. And when the price is going up and outside of the upper band. The strategy sells when it crosses back in to the channel.
It is a very simple strategy but it is effective. I guess you need a proper stop-loss for this script to bee really profitable in a bot environment.
3 HULLs & ICHIMOKU divided by PRICEBasically just another form of moving average, for quick swings, built for testing/use with API cryptobots, simple switch from buy to sell.
Hull MA(2 candles back) times 3 plus Ichimoku divided by price(1 candle back) = value1
Hull MA(3 candles back) times 3 plus Ichimoku divided by price(1 candle back) = value2
if value1>value2 then buy else sell
calculates price from 1 candle back, and calculates signal from 2nd and 3rd candle prices, so no repainting? so best on low timeframes.
for when use in bot, would not need 1 candle lag. Lag is for TV chartists to not have to suffer repainting.
Bots do not repaint. they are not "painting" anything, they simply open or close orders, which cannot be "repainted"
but here on TV chart, when you refresh the browser page, the script recalculates, and signals may be repainted.
hopefully this will not repaint. please test. thankyou
PT Magic Triggers So its me again. I have decided to create Trend Trigger Script for PT Magic addon for a trading bot Profit Trailer. If you do not own this bot and Addon the following explanation will not help you.
For each Trend you define number of minutes and it then calculates the percentage change between the close price now and X candles before.
Same calculation is for all 6 Triggers i beleive that is all you need :)
Hope it helps you all.
LTC: LYHj4WDN7BPu5294cSpqK3SgWSWdDX56Qt
BTC: 1NPVzeDSsenaCS9QdPro877hkMk93nRLcD
MACD, backtest 2015+ only, cut in half and doubledThis is only a slight modification to the existing "MACD Strategy" strategy plugin!
found the default MACD strategy to be lacking, although impressive for its simplicity. I added "year>2014" to the IF buy/sell conditions so it will only backtest from 2015 and beyond ** .
I also had a problem with the standard MACD trading late, per se. To that end I modified the inputs for fast/slow/signal to double. Example: my defaults are 10, 21, 10 so I put 20, 42, 20 in. This has the effect of making a 30min interval the same as 1 hour at 10,21,10. So if you want to backtest at 4hr, you would set your time interval to 2hr on the main chart. This is a handy way to make shorter time periods more useful even regardless of strategy/testing, since you can view 15min with alot less noise but a better response.
Used on BTCCNY OKcoin, with the chart set at 45 min (so really 90min in the strategy) this gave me a percent profitable of 42% and a profit factor of 1.998 on 189 trades.
Personally, I like to set the length/signals to 30,63,30. Meaning you need to triple the time, it allows for much better use of shorter time periods and the backtests are remarkably profitable. (i.e. 15min chart view = 45min on script, 30min= 1.5hr on script)
** If you want more specific time periods you need to try plugging in different bar values: replace "year" with "n" and "2014" with "5500". The bars are based on unix time I believe so you will need to play around with the number for n, with n being the numbers of bars.
VB Bots Watchlist 2025 — RangesOf course. Here is a complete Pine Script v6 indicator for TradingView that displays the On-Balance Volume (OBV) for a selectable list of the top 50 Binance coins by market capitalization.
You can copy and paste this code directly into your Pine Editor in TradingView.
Key Features:
Pine Script Version 6: Written in the latest version of Pine Script.
Dropdown Menu: Easily select which of the top 50 coins you want to see the OBV for from the indicator's settings.
Independent Data: The OBV is calculated for the selected coin, regardless of the chart you are currently viewing.
Clear Plot: Displays the OBV in a separate pane for easy analysis.
Ravi AlgoBot📌 Indicator Description (Publish Notes)
Indicator Name:
EoR / EoS Entry & SL/Target Manager (Put=Red, Call=Green)
Purpose:
यह indicator उन traders के लिए बनाया गया है जो अपनी manual levels (EoR, EoR+1 for Put, और EoS, EoS-1 for Call) को chart पर plot करना चाहते हैं और उनके आधार पर Entry, Stop Loss और Target manage करना चाहते हैं।
How it works:
आप manual prices (EoR, EoR+1, EoS, EoS-1) input fields में डालेंगे।
Put levels (EoR, EoR+1) लाल रंग में दिखेंगे।
Call levels (EoS, EoS-1) हरे रंग में दिखेंगे।
हर price पर chart पर horizontal line + label बनेगा।
आप अपने Stop Loss और Target prices भी manual डाल सकते हैं (Call और Put दोनों के लिए अलग-अलग)।
जब भी price किसी entry/SL/Target level को touch करेगा:
Chart पर signal shape बनेगा (triangle)
एक alertcondition trigger होगा।
आप TradingView में Alerts create करके इन alerts को webhook URL से connect कर सकते हैं।
Example: जब EoR Put level touch हो → webhook के ज़रिए broker/bot में auto order लग जाएगा।
SL और Target levels भी इसी तरह alerts से manage होंगे।
Use Case:
Manual level-based intraday या positional trading
Automated trading setup (via TradingView alerts → Webhook → Broker API)
Put/Call entry, target, SL को clearly visualize और monitor करना
Disclaimer:
यह indicator trading automation tool नहीं है। Actual buy/sell orders Pine Script से नहीं लग सकते। Order execution केवल TradingView Alerts और external webhook के integration से ही possible है। कृपया पहले paper-trade और test करें।
RedFlagCounter-trend strategy
Condition to open a long position:
Buys if the price drops by a specified percentage from the previous candle’s close. Only one purchase can be made within a single candle.
Condition to close a position:
Places a separate individual closing limit order for each purchase, or uses one common take-profit order for the whole position.
⚠️ Attention : Stop-loss is not implemented in the current first version of the strategy.
Options description:
Drop_percent , % — Percentage drop in price from the From point
From — The reference point on the closed candle from which the Drop_percent is calculated (Open, Close, High, Low)
Tp , % — Take-profit level as a percentage
Count — Number of allowed additional purchases (scaling in)
Each_tp — Mode switch:
True — a separate take-profit is placed for each purchase
False — one common take-profit is placed based on the average entry price of the position
All-In-One MA Stack ScalperWhat is this Indicator?
This tool is an advanced, multi-layered breakout and trend-following indicator designed for lower timeframes. It identifies high-conviction buy and sell signals by combining moving average stacking with a suite of professional-grade filters.
How Does It Work?
A signal is generated only when ALL of the following conditions are met:
Moving Average Stack (5M Chart):
Buy: The close price is above all five moving averages (MAs: 100, 48, 36, 24, 12).
Sell: The close price is below all five MAs.
Volatility Filter (ATR):
Signals only print when the current ATR (14) is at least 80% of its 100-period average, ensuring you only trade in actively moving markets.
Candle Structure Filter:
The current candle must have a real body that is at least 35% of the candle’s total range, filtering out dojis and indecision bars.
Big Candle Filter:
The candle’s total range must be at least 40% of the current ATR, avoiding signals on minor, insignificant moves.
Volume Filter:
The current volume must be at least 80% of its 50-period average, filtering out signals during illiquid or quiet market conditions.
Minimum Distance from All MAs:
Price must be a minimum distance (20% ATR) away from each MA, confirming a clean breakout and avoiding signals in tight MA clusters or ranging markets.
RSI Momentum Filter:
Buy: RSI(14) must be greater than 55.
Sell: RSI(14) must be less than 45.
This ensures trades are only taken in the direction of momentum.
ADX Trend Filter:
ADX(14,14) must be above 20, ensuring signals only print in trending conditions (not in chop/range).
Minimum Bars Between Signals:
Only one signal per direction is allowed every 10 bars to avoid overtrading and signal clustering.
What Does This Achieve?
Reduces noise and false signals common in basic MA cross or stack systems.
Captures only strong, high-momentum, and high-conviction moves.
Helps you avoid chop, range, and news whipsaws by combining multiple market filters.
Perfect for advanced scalpers, intraday trend followers, or as a trade filter for algos/EAs.
How to Use It:
Apply to your 5-minute chart.
Green BUY signals: Only when all bullish conditions align.
Red SELL signals: Only when all bearish conditions align.
Use as a stand-alone system or as a filter for your own entries.
Recommended For:
Scalpers & intraday traders who want only the best opportunities.
EA and bot builders seeking reliable signal logic.
Manual traders seeking confirmation of high-probability breakouts.
Tip:
Adjust any of the filters (e.g., RSI/ADX thresholds, minBars, minDist) to make it more/less selective for your style or market.
My script//@version=5
strategy("Algo Bot Starter (EMA+ATR, RR, Webhook)",
overlay=true,
initial_capital=10000,
commission_type=strategy.commission.percent,
commission_value=0.02,
calc_on_every_tick=false,
calc_on_order_fills=true,
pyramiding=0,
process_orders_on_close=true)
//================ Inputs ================
emaFastLen = input.int(20, "EMA Fast", minval=1)
emaSlowLen = input.int(50, "EMA Slow", minval=1)
atrLen = input.int(14, "ATR Length", minval=1)
atrMultSL = input.float(2.0, "SL = ATR x", step=0.1)
rr = input.float(1.5, "Risk:Reward (TP = RR x Risk)", step=0.1, minval=0.2)
riskPct = input.float(1.0, "Risk % per Trade", step=0.1, minval=0.1, maxval=5)
slipPips = input.float(0.0, "Extra buffer (price units)", step=0.0001)
sessionFilt = input.session("0000-2400", "Trading Session")
useSession = input.bool(false, "Use Session Filter?")
closeOnFlip = input.bool(true, "Close & Reverse on signal flip?")
useBarClose = input.bool(true, "Signal on Bar Close? (recommended)")
//================ Helpers ================
inSess = useSession ? time(timeframe.period, sessionFilt) : true
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
atr = ta.atr(atrLen)
// Cross conditions (optionally on bar close)
bull = useBarClose ? ta.crossover(emaFast, emaSlow) : ta.cross(emaFast, emaSlow) and (emaFast > emaSlow)
bear = useBarClose ? ta.crossunder(emaFast, emaSlow) : ta.cross(emaFast, emaSlow) and (emaFast < emaSlow)
//================ Risk & Position Sizing ================
// ملاحظة: TradingView ما يعرف رصيدك الحقيقي، فاعتمدنا على initial_capital أو عدّل أدناه يدويًا
equity = strategy.equity
riskAmount = equity * (riskPct/100.0)
// سنحسب الكمية حسب المسافة إلى وقف الخسارة بالوحدات السعرية (تقريب عام)
calcQty(entryPrice, slPrice) =>
riskPerUnit = math.abs(entryPrice - slPrice)
riskPerUnit := risk
Trend River Pullback (Avramis-style) v1//@version=5
strategy("Trend River Pullback (Avramis-style) v1",
overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.02,
pyramiding=0, calc_on_order_fills=true, calc_on_every_tick=true, margin_long=1, margin_short=1)
// ===== Inputs
// EMA "река"
emaFastLen = input.int(8, "EMA1 (быстрая)")
ema2Len = input.int(13, "EMA2")
emaMidLen = input.int(21, "EMA3 (средняя)")
ema4Len = input.int(34, "EMA4")
emaSlowLen = input.int(55, "EMA5 (медленная)")
// Откат и импульс
rsiLen = input.int(14, "RSI длина")
rsiOB = input.int(60, "RSI порог тренда (лонг)")
rsiOS = input.int(40, "RSI порог тренда (шорт)")
pullbackPct = input.float(40.0, "Глубина отката в % ширины реки", minval=0, maxval=100)
// Риск-менеджмент
riskPct = input.float(1.0, "Риск на сделку, % от капитала", step=0.1, minval=0.1)
atrLen = input.int(14, "ATR длина (стоп/трейлинг)")
atrMultSL = input.float(2.0, "ATR множитель для стопа", step=0.1)
tpRR = input.float(2.0, "Тейк-профит R-множитель", step=0.1)
// Трейлинг-стоп
useTrail = input.bool(true, "Включить трейлинг-стоп (Chandelier)")
trailMult = input.float(3.0, "ATR множитель трейлинга", step=0.1)
// Торговые часы (по времени биржи TradingView символа)
useSession = input.bool(false, "Ограничить торговые часы")
sessInput = input.session("0900-1800", "Сессия (локальная для биржи)")
// ===== Calculations
ema1 = ta.ema(close, emaFastLen)
ema2 = ta.ema(close, ema2Len)
ema3 = ta.ema(close, emaMidLen)
ema4 = ta.ema(close, ema4Len)
ema5 = ta.ema(close, emaSlowLen)
// "Река": верх/низ как конверт по средним
riverTop = math.max(math.max(ema1, ema2), math.max(ema3, math.max(ema4, ema5)))
riverBot = math.min(math.min(ema1, ema2), math.min(ema3, math.min(ema4, ema5)))
riverMid = (riverTop + riverBot) / 2.0
riverWidth = riverTop - riverBot
// Трендовые условия: выстроенность EMAs
bullAligned = ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5
bearAligned = ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5
// Импульс
rsi = ta.rsi(close, rsiLen)
// Откат внутрь "реки"
pullbackLevelBull = riverTop - riverWidth * (pullbackPct/100.0) // чем больше %, тем глубже внутрь
pullbackLevelBear = riverBot + riverWidth * (pullbackPct/100.0)
pullbackOkBull = bullAligned and rsi >= rsiOB and low <= pullbackLevelBull
pullbackOkBear = bearAligned and rsi <= rsiOS and high >= pullbackLevelBear
// Триггер входа: возврат в импульс (пересечение быстрой EMA)
longTrig = pullbackOkBull and ta.crossover(close, ema1)
shortTrig = pullbackOkBear and ta.crossunder(close, ema1)
// Сессия
inSession = useSession ? time(timeframe.period, sessInput) : true
// ATR для стопов
atr = ta.atr(atrLen)
// ===== Position sizing по риску
// Расчет размера позиции: риск% от капитала / (стоп в деньгах)
capital = strategy.equity
riskMoney = capital * (riskPct/100.0)
// Предварительные уровни стопов
longSL = close - atrMultSL * atr
shortSL = close + atrMultSL * atr
// Цена тика и размер — приблизительно через syminfo.pointvalue (может отличаться на разных рынках)
tickValue = syminfo.pointvalue
// Избежать деления на 0
slDistLong = math.max(close - longSL, syminfo.mintick)
slDistShort = math.max(shortSL - close, syminfo.mintick)
// Кол-во контрактов/лотов
qtyLong = riskMoney / (slDistLong * tickValue)
qtyShort = riskMoney / (slDistShort * tickValue)
// Ограничение: не меньше 0
qtyLong := math.max(qtyLong, 0)
qtyShort := math.max(qtyShort, 0)
// ===== Entries
if inSession and longTrig and strategy.position_size <= 0
strategy.entry("Long", strategy.long, qty=qtyLong)
if inSession and shortTrig and strategy.position_size >= 0
strategy.entry("Short", strategy.short, qty=qtyShort)
// ===== Exits: фиксированный TP по R и стоп
// Храним цену входа
var float entryPrice = na
if strategy.position_size != 0 and na(entryPrice)
entryPrice := strategy.position_avg_price
if strategy.position_size == 0
entryPrice := na
// Цели
longTP = na(entryPrice) ? na : entryPrice + tpRR * (entryPrice - longSL)
shortTP = na(entryPrice) ? na : entryPrice - tpRR * (shortSL - entryPrice)
// Трейлинг: Chandelier
trailLong = close - trailMult * atr
trailShort = close + trailMult * atr
// Итоговые уровни выхода
useTrailLong = useTrail and strategy.position_size > 0
useTrailShort = useTrail and strategy.position_size < 0
// Для лонга
if strategy.position_size > 0
stopL = math.max(longSL, na) // базовый стоп
tStop = useTrailLong ? trailLong : longSL
// Выход по стопу/трейлу и ТП
strategy.exit("L-Exit", from_entry="Long", stop=tStop, limit=longTP)
// Для шорта
if strategy.position_size < 0
stopS = math.min(shortSL, na)
tStopS = useTrailShort ? trailShort : shortSL
strategy.exit("S-Exit", from_entry="Short", stop=tStopS, limit=shortTP)
// ===== Visuals
plot(ema1, "EMA1", display=display.all, linewidth=1)
plot(ema2, "EMA2", display=display.all, linewidth=1)
plot(ema3, "EMA3", display=display.all, linewidth=2)
plot(ema4, "EMA4", display=display.all, linewidth=1)
plot(ema5, "EMA5", display=display.all, linewidth=1)
plot(riverTop, "River Top", style=plot.style_linebr, linewidth=1)
plot(riverBot, "River Bot", style=plot.style_linebr, linewidth=1)
fill(plot1=plot(riverTop, display=display.none), plot2=plot(riverBot, display=display.none), title="River Fill", transp=80)
plot(longTP, "Long TP", style=plot.style_linebr)
plot(shortTP, "Short TP", style=plot.style_linebr)
plot(useTrailLong ? trailLong : na, "Trail Long", style=plot.style_linebr)
plot(useTrailShort ? trailShort : na, "Trail Short", style=plot.style_linebr)
// Маркеры сигналов
plotshape(longTrig, title="Long Trigger", style=shape.triangleup, location=location.belowbar, size=size.tiny, text="L")
plotshape(shortTrig, title="Short Trigger", style=shape.triangledown, location=location.abovebar, size=size.tiny, text="S")
// ===== Alerts
alertcondition(longTrig, title="Long Signal", message="Long signal: trend aligned + pullback + momentum")
alertcondition(shortTrig, title="Short Signal", message="Short signal: trend aligned + pullback + momentum")
Support and Resistance levels from Options DataINTRODUCTION
This script is designed to visualize key support and resistance levels derived from options data on TradingView charts. It overlays lines, labels, and boxes to highlight levels such as Put Walls (gamma support), Call Walls (gamma resistance), Gamma Flip points, Vanna levels, and more.
These levels are intended to help traders identify potential areas of price magnetism, reversal, or breakout based on options market dynamics. All calculations and visualizations are based on user-provided data pasted into the input field, as Pine Script cannot directly fetch external options data due to platform limitations (explained below).
For convenience, my website allows users to interact with a bot that will generate the string for up to 30 tickers at once getting nearly real-time data on demand (data is cached for 15min). With the output string pasted into this indicator, it's a bliss to shuffle through your portfolio and see those levels for each ticker.
The script is open-source under TradingView's terms, allowing users to study, modify, and improve it. It draws inspiration from common options-derived metrics like gamma exposure and vanna, which are widely discussed in financial literature. No external code is copied without rights; all logic is original or based on standard mathematical formulas.
How the Options Levels Are Calculated
The levels displayed by this script are not computed within Pine Script itself—instead, they rely on pre-calculated values provided by the user (via a pasted data string). These values are derived from options chain data fetched from financial APIs (e.g., using libraries like yfinance in Python). Here's a step-by-step overview of how these levels are generally calculated externally before being input into the script:
Fetching Options Data:
Historical and current options chain data for a ticker (e.g., strikes, open interest, volume, implied volatility, expirations) is retrieved for near-term expirations (e.g., up to 90 days).
Current stock price is obtained from recent history.
Gamma Support (Put Wall) and Resistance (Call Wall):
Gamma Calculation: For each option, gamma (the rate of change of delta) is computed using the Black-Scholes formula:
gamma = N'(d1) / (S * sigma * sqrt(T))
where S is the stock price, K is the strike, T is time to expiration (in years), sigma is implied volatility, r is the risk-free rate (e.g., 0.0445), and N'(d1) is the normal probability density function.
Weighted gamma is multiplied by open interest and aggregated by strike.
The Put Wall is the strike below the current price with the highest weighted gamma from puts (acting as support).
The Call Wall is the strike above the current price with the highest weighted gamma from calls (acting as resistance).
Short-term versions focus on strikes closer to the money (e.g., within 10-15% of the price).
Gamma Flip Level:
Net dealer gamma exposure (GEX) is calculated across all strikes:
GEX = sum (gamma * OI * 100 * S^2 * sign * decay)
where sign is +1 for calls/-1 for puts, and decay is 1 / sqrt(T).
The flip point is the price where net GEX changes sign (from positive to negative or vice versa), interpolated between strikes.
Vanna Levels:
Vanna (sensitivity of delta to volatility) is calculated:
vanna = -N'(d1) * d2 / sigma
where d2 = d1 - sigma * sqrt(T).
Weighted by open interest, the highest positive and negative vanna strikes are identified.
Other Levels:
S1/R1: Significant strikes with high combined open interest and volume (80% OI + 20% volume), below/above price for support/resistance.
Implied Move: ATM implied volatility scaled by S * sigma * sqrt(d/365) (e.g., for 7 days).
Call/Put Ratio: Total call contracts divided by put contracts (OI + volume).
IV Percentage: Average ATM implied volatility.
Options Activity Level: Average contracts per unique strike, binned into levels (0-4).
Stop Loss: Dynamically set below the lowest support (e.g., Put Wall, Gamma Flip), adjusted by IV (tighter in low IV).
Fib Target: 1.618 extension from Put Wall to Call Wall range.
Previous day levels are stored for comparison (e.g., to detect Call Wall movement >2.5% for alerts).
Effect as Support and Resistance in Technical Trading
Options levels like gamma walls influence price action due to market maker hedging:
Put Wall (Gamma Support): High put gamma below price creates a "magnet" effect—market makers buy stock as price falls, providing support. Traders might look for bounces here as entry points for longs.
Call Wall (Gamma Resistance): High call gamma above price leads to selling pressure from hedging, acting as resistance. Rejections here could signal trims, sells or even shorts.
Gamma Flip: Where gamma exposure flips sign, often a volatility pivot—crossing it can accelerate moves (bullish above, bearish below).
Vanna Levels: Positive/negative vanna indicate volatility sensitivity; crosses may signal regime shifts.
Implied Move: Shows expected range; prices outside suggest overextension.
S1/R1 and Fib Target: Volume/OI clusters act as classic S/R; Fib extensions project upside targets post-breakout.
In trading, these are not guarantees—combine with TA (e.g., volume, trends). High activity levels imply stronger effects; low CP ratio suggests bearish sentiment. Alerts trigger on proximities/crosses for awareness, not advice.
Limitations of the TradingView Platform for Data Pulling
TradingView's Pine Script is sandboxed for security and performance:
No direct internet access or API calls (e.g., can't fetch yfinance data in-script).
Limited to chart data/symbol info; no real-time options chains.
Inputs are static per load; updates require manual pasting.
Caching isn't persistent across sessions.
This prevents dynamic data pulling, ensuring scripts remain lightweight but requiring external tools for fresh data.
Creative Solution for On-Demand Data Pulling
To overcome these limitations, users can use external tools or scripts (e.g., Python-based) to fetch and compute levels on demand. The tool processes tickers, generates a formatted string (e.g., "TICKER:level1,level2,...;TIMESTAMP:unix;"), and users paste it into the script's input. This keeps data fresh without violating platform rules, as computation happens off-platform. For example, run a local script to query APIs and output the string—adaptable for any ticker.
Script Functionality Breakdown
Inputs: Custom data string (parsed for levels/timestamp); toggles for short-term/previous/Vanna/stop loss; style options (colors, transparency).
Parsing: Extracts levels for the chart symbol; gets timestamp for "updated ago" display.
Drawing: Lines/labels for levels; boxes for gamma zones/implied move; clears old elements on updates.
Info Panel: Top-right summary with metrics (CP ratio, IV, distances, activity); emojis for quick status.
Alerts: Conditions for proximities, crosses, bounces (e.g., 0.5% bounce from Put Wall).
Performance: Uses vars for persistence; efficient for real-time.
This script is educational—test thoroughly. Not financial advice; past performance isn't indicative of future results. Feedback welcome via TradingView comments.
MACD StrategyOverview
The "MACD Strategy" is a straightforward trading strategy tested for BTCUSDT Futures on the 1-minute timeframe, leveraging the Moving Average Convergence Divergence (MACD) indicator to identify momentum-based buy and sell opportunities. Developed with input from expert trading analyst insights, this strategy combines technical precision with risk management, making it suitable for traders of all levels on platforms like TradingView. It focuses on capturing trend reversals and momentum shifts, with clear visual cues and automated alerts for seamless integration with trading bots (e.g., Bitget webhooks).
#### How It Works
This strategy uses the MACD indicator to generate trading signals based on momentum and trend direction:
- **Buy Signal**: Triggered when the MACD line crosses above the signal line, and the MACD histogram turns positive (above zero). This suggests increasing bullish momentum.
- **Sell Signal**: Triggered when the MACD line crosses below the signal line, and the MACD histogram turns negative (below zero), indicating growing bearish momentum.
Once a signal is detected, the strategy opens a position (long for buy, short for sell) with a position size calculated based on your risk tolerance. It includes a stop-loss to limit losses and a take-profit to lock in gains, both dynamically adjusted using the Average True Range (ATR) for adaptability to market volatility.
#### Key Features
- **MACD-Based Signals**: Relies solely on MACD for entry points, plotted in a separate pane for clear momentum analysis.
- **Risk Management**: Automatically calculates position size based on a percentage of your account balance and sets stop-loss and take-profit levels using ATR multipliers and a risk:reward ratio.
- **Visual Feedback**: Plots entry, stop-loss, and take-profit lines on the chart with labeled markers for easy tracking.
- **Alerts**: Includes Bitget webhook-compatible alerts for automated trading, notifying you of buy and sell signals in real-time.
#### Input Parameters
- **Account Balance**: Default 10000 – Set your initial trading capital to determine position sizing.
- **MACD Fast Length**: Default 12 – The short-term EMA period for MACD sensitivity.
- **MACD Slow Length**: Default 26 – The long-term EMA period for MACD calculation.
- **MACD Signal Length**: Default 9 – The smoothing period for the signal line.
- **Risk Per Trade (%)**: Default 3.0 – The percentage of your account balance risked per trade (e.g., 3% of 10000 = 300).
- **Risk:Reward Ratio**: Default 3.0 – The ratio of potential profit to risk (e.g., 3:1 means risking 1 to gain 3).
- **SL Multiplier**: Default 1.0 – Multiplies ATR to set the stop-loss distance (e.g., 1.0 x ATR).
- **TP Multiplier**: Default 3.0 – Multiplies ATR to set the take-profit distance, adjusted by the risk:reward ratio.
- **Line Length (bars)**: Default 25 – Duration in bars for displaying trade lines on the chart.
- **Label Position**: Default 'left' – Position of text labels (left or right) relative to trade lines.
- **ATR Period**: Default 14 – The number of periods for calculating ATR to measure volatility.
#### How to Use
1. **Add to Chart**: Load the "MACD Strategy" as a strategy and the "MACD Indicator" as a separate indicator on your TradingView chart (recommended for BTCUSDT Futures on the 1-minute timeframe).
2. **Customize Settings**: Adjust the input parameters based on your risk tolerance and market conditions. For BTCUSDT Futures, consider reducing `Risk Per Trade (%)` during high volatility (e.g., 1%) or increasing `SL Multiplier` for wider stops.
3. **Visual Analysis**: Watch the main chart for trade entry lines (green for buy, red for sell), stop-loss (red), and take-profit (green) lines with labels. Use the MACD pane below to confirm momentum shifts.
4. **Set Alerts**: Create alerts in TradingView for "Buy Signal" and "Sell Signal" to automate trades via Bitget webhooks.
5. **Backtest and Optimize**: Test the strategy on historical BTCUSDT Futures 1-minute data to fine-tune parameters. The short timeframe requires quick execution, so monitor closely for slippage or latency.
#### Tips for Success
- **Market Conditions**: This strategy performs best in trending markets on the 1-minute timeframe. Avoid choppy conditions where MACD crossovers may produce false signals.
- **Risk Management**: Start with the default 3% risk per trade and adjust downward (e.g., 1%) during volatile periods like BTCUSDT news events. The 3:1 risk:reward ratio targets consistent profitability.
- **Timeframe**: Optimized for 1-minute charts; switch to 5-minute or 15-minute for less noise if needed.
- **Confirmation**: Cross-check MACD signals with price action or support/resistance levels for higher accuracy on BTCUSDT Futures.
#### Limitations
- This strategy relies solely on MACD, so it may lag in fast-moving or sideways markets. Consider adding a secondary filter (e.g., RSI) if needed.
- Stop-loss and take-profit are ATR-based and may need adjustment for BTCUSDT Futures’ high volatility, especially during leverage trading.
#### Conclusion
The "MACD Strategy" offers a simple yet effective way to trade momentum shifts using the MACD indicator, tested for BTCUSDT Futures on the 1-minute timeframe, with robust risk management and visual tools. Whether you’re scalping crypto futures or exploring short-term trends, this strategy provides a solid foundation for automated or manual trading. Share your feedback or customizations in the comments, and happy trading!
Range FinderRange Finder Strategy for TradingView
Overview
The Range Finder Strategy is a sophisticated trading system designed for forex and cryptocurrency markets, leveraging dynamic range detection, wick-based rejection patterns, and EMA confluence to execute high-probability trades. This strategy identifies key price ranges using pivot points and triggers trades when price rejects from these boundaries with significant wick formations, aligning with the broader market trend as confirmed by EMA crossovers. It incorporates robust risk management, customizable parameters, and visual aids for clear trade visualization, making it suitable for both manual and automated trading on platforms like Bitget via webhook alerts.
Strategy Components
1. Dynamic Range Detection
Pivot Points: The strategy identifies range boundaries using pivot highs and lows, calculated with a user-defined Pivot Length (default: 5 bars left/right). These pivots mark significant swing points, defining the upper (range high) and lower (range low) boundaries of the price range.
Visualization: The range high is plotted as an orange line, and the range low as a purple line, using a broken line style (plot.style_linebr) to show only confirmed pivot levels, providing a clear visual of the trading range.
2. Wick-Based Rejection Pattern
Wick Detection: The strategy looks for rejection candles at the range boundaries, characterized by significant wicks. A wick is considered valid if its size is at least the user-defined Wick to Body Ratio (default: 1.1, or 10% larger than the candle body).
Sell Signal: Triggered when the high exceeds the range high, the candle closes bearish (close < open), and the upper wick meets the ratio requirement.
Buy Signal: Triggered when the low falls below the range low, the candle closes bullish (close > open), and the lower wick meets the ratio requirement.
Purpose: These wicks indicate strong rejection at key levels, often signaling a reversal back into the range, providing high-probability entry points.
3. EMA Trend Confirmation
EMA Calculation: Uses two Exponential Moving Averages (EMAs) calculated on a user-selectable timeframe (default: 5-minute):
EMA 200: Long-term trend indicator (plotted in red).
EMA 50: Short-term trend indicator (plotted in green).
Crossover Logic:
A bullish trend is confirmed when the EMA 50 crosses above the EMA 200 (ema_trend_up = true).
A bearish trend is confirmed when the EMA 50 crosses below the EMA 200 (ema_trend_down = true).
Confluence Requirement: Trades are only executed when the wick rejection aligns with the EMA trend (e.g., sell signals require close < ema200 and bearish trend; buy signals require close > ema200 and bullish trend).
4. Risk Management
Position Sizing: Calculated based on the user-defined Account Balance (default: $10,000) and Risk Per Trade (default: 2%). The position size is determined as risk_amount / stop_distance, where stop_distance is derived from the Average True Range (ATR, default period: 14).
Stop Loss (SL): Set using an ATR-based multiplier (SL Multiplier, default: 9.0). For sells, SL is placed above the high; for buys, below the low.
Take Profit (TP): Set using an ATR-based multiplier (TP Multiplier, default: 6.0) scaled by the Risk:Reward Ratio (default: 6.0), ensuring a favorable reward-to-risk profile.
Example: For a $10,000 account with 2% risk, if ATR is 0.5, the position size is 400 units, with SL and TP dynamically adjusted to market volatility.
5. Trade Execution
Sell Entry: Triggered on a wick rejection above the range high, with bearish EMA confluence (ema_trend_down and close < ema200). Enters a short position with calculated SL and TP.
Buy Entry: Triggered on a wick rejection below the range low, with bullish EMA confluence (ema_trend_up and close > ema200). Enters a long position with calculated SL and TP.
Exit Logic: Uses strategy.exit to set SL and TP levels, closing trades when either is hit.
6. Visual Feedback
Lines and Labels: Upon trade entry, the strategy plots:
Red SL line and label (e.g., "SL: 123.45").
Green TP line and label (e.g., "TP: 120.00").
Entry line (red for sell, green for buy) labeled with "Sell (Range Rejection)" or "Buy (Range Rejection)".
Customization: Users can adjust the Line Length (default: 25 bars) for how long lines persist and Label Position (left or right) for optimal chart visibility.
7. Alert Conditions
Webhook Integration: Generates alerts for Bitget webhook integration, providing JSON-formatted messages with trade details (action, contracts, market position, size, price, symbol, and timestamp).
Usage: Traders can set up automated trading by connecting these alerts to trading bots or platforms supporting webhooks.
KAMA Trend Flip - SightLing LabsBuckle up, traders—this open-source KAMA Trend Flip indicator is your ticket to sniping trend reversals with a Kaufman Adaptive Moving Average (KAMA) that’s sharper than a Wall Street shark’s tooth. No voodoo, no fluff—just raw, volatility-adaptive math that dances with the market’s rhythm. It zips through trending rockets and chills in choppy waters, slashing false signals like a samurai. Not laggy like the others - this thing is the real deal!
Core Mechanics:
• Efficiency Ratio (ER): Reads the market’s pulse (0-1). High ER = turbo-charged MA, low ER = smooth operator.
• Adaptive Smoothing: Mixes fast (default power 2) and slow (default 30) constants to match market mood swings.
• Trend Signals: KAMA climbs = blue uptrend (bulls run wild). KAMA dips = yellow downtrend (bears take over). Flat = gray snooze-fest.
• Alerts: Instant pings on flips—“Trend Flip Up” for long plays, “Down” for shorts. Plug into bots for set-and-forget domination.
Why It Crushes:
• Smokes static MAs in volatile arenas (crypto, stocks, you name it). Backtests show 20-30% fewer fakeouts than SMA50.
• Visual Pop: Overlays price with bold blue/yellow signals. Slap it on BTC 1D to see trends light up like Times Square.
• Tweakable: Dial ER length (default 50) to your timeframe. Short for scalps, long for swing trades.
Example Settings in Action:
• 10s Chart (Hyper-Scalping): Set Source: Close, ER Length: 100, Fast Power: 1, Slow Power: 6. Catches micro-trends in crypto like a heat-seeking missile. Blue/yellow flips scream entry/exit on fast moves.
• 2m Chart (Quick Trades): Set Source: Close, ER Length: 14, Fast Power: 1, Slow Power: 6. Perfect for rapid trend shifts in stocks or forex. Signals align with momentum bursts—check historical flips for proof.
Deployment:
• Drop it on any chart. Backtest settings to match your asset’s volatility—tweak until it sings.
• Pair with RSI or volume spikes for killer confirmation. Pro move: Enter on flip + volume pop, exit on reverse.
• Strategy-Ready: Slap long/short logic on alerts to build a lean, mean trading machine.
Open source from SightLing Labs—grab it, hack it, profit from it. Share your tweaks in the comments and let’s outsmart the market together. Trade hard, win big!
Volatility Zones (VStop + Bands) — Fixed (v2)📝 What this indicator is
This script is called “Volatility Zones (VStop + Bands)”.
It is an ATR-based volatility indicator that combines dynamic volatility bands, a Volatility Stop line (VStop), and volatility spike detection into a single tool.
Unlike moving average–based indicators, this tool does not rely on averages of price direction. Instead, it measures the market’s true volatility and reacts to expansions or contractions in price ranges.
________________________________________
⚙️ How it is built
The indicator uses several volatility-based components:
1. Average True Range (ATR)
o ATR is calculated over a user-defined length.
o It measures how much price typically moves in a given number of bars, making it the foundation of this indicator.
2. Volatility Bands
o Upper band = close + ATR × factor
o Lower band = close - ATR × factor
o The area between them is shaded.
o This gives traders an immediate visual sense of market volatility width — wide bands = high volatility, narrow bands = quiet market.
3. Volatility Stop (VStop)
o A stateful trailing stop based on ATR.
o It tracks the highest (or lowest) price in the current trend and places a stop offset by ATR × multiplier.
o When price crosses this stop, the indicator flips trend direction.
o This creates a dynamic stop-and-reverse mechanism that adapts to volatility.
4. Trend Zones
o When the trend is bullish, the stop is green and the chart background is shaded softly green.
o When bearish, the stop is red and the background is shaded softly red.
o This makes the market’s directional bias visually clear at all times.
5. Flip Signals (Buy/Sell Arrows)
o Whenever the VStop flips, arrows appear:
Green BUY arrows below price when the trend turns bullish.
Red SELL arrows above price when the trend turns bearish.
o These are also tied to built-in alerts for automation.
6. Volatility Spike Detection
o The script compares current ATR to its recent average.
o If ATR suddenly expands above a threshold, a small yellow “VOL” marker appears at the top of the chart.
o This highlights potential breakout phases or unusual volatility events.
7. Stop Labels
o At every trend flip, a small label appears at the bar, showing the exact stop level.
o This makes it easy to use the stop as a reference for risk management.
________________________________________
📊 How it works in practice
• When price is above the VStop line, the market is considered in an uptrend.
• When price is below the VStop line, the market is in a downtrend.
• The bands expand/contract with volatility, helping traders gauge risk and position sizing.
• Flip arrows signal when trend direction changes.
• Volatility spikes warn traders that the market is entering a higher-risk phase, often before strong moves.
________________________________________
🎯 How it may help traders
• Trend following → Helps traders identify whether the market is trending up or down.
• Stop placement → Provides a dynamic stop level that adjusts to volatility.
• Volatility awareness → Shaded bands and spike markers show when the market is likely to become unstable.
• Trade timing → Flip arrows and labels help identify potential entry or exit points.
• Risk management → Wide bands indicate higher risk; narrow bands suggest safer, tighter ranges.
________________________________________
🌍 In what markets it is useful
Because the indicator is based purely on volatility, it works across all asset classes and timeframes:
• Stocks & ETFs → Helps identify breakouts and long-term trends.
• Forex → Very useful in spot FX where volatility shifts frequently.
• Crypto → ATR reacts strongly to high volatility, helping traders adapt stops dynamically.
• Futures & Commodities → Great for tracking trending commodities and managing risk.
Scalpers, swing traders, and position traders can all benefit by adjusting the ATR length and multipliers to suit their trading style.
________________________________________
💡 Originality of this script
This is not just a mashup of existing indicators. It integrates:
• ATR-based Volatility Bands for context,
• A stateful Volatility Stop (adapted and rewritten cleanly),
• Flip arrows and labels for actionable trading signals,
• Volatility spike detection to highlight regime shifts.
The result is a comprehensive volatility-aware trading tool that goes beyond just plotting ATR or trend stops.
________________________________________
🔔 Alerts
• Buy Flip → triggers when the trend changes bullish.
• Sell Flip → triggers when the trend changes bearish.
Traders can connect these alerts to automated strategies, bots, or notification systems.
Spice • Micro Suite (T/r & B/r)What it is
A single Pine v5 indicator that stacks:
EMA ribbon + a “special” EMA (11 vs 34) line that flips color on trend.
MTF-RSI “pressure” check with simple up/down arrows.
Bollinger-Band re-entry system with Top/Bottom triggers (T/B) and confirmations (r) in the next N bars.
Classic candlestick add-ons: 3-Line Strike and Leledc exhaustion dots.
Your Micro Dots engine (ATR-based regime + Variable Moving Average filter) + an optional VMA trend line.
Alerts for all the above.
Key signals (what prints on the chart)
EMAs (20/50/100/200): plotted faintly; EMA-34 is drawn and colored by the 11>34 trend.
RSI arrows
Checks RSI(6) on the current TF and (optionally) 5m/15m/30m/1h/4h/1D.
Down arrow: current RSI > 70 and the selected higher TF RSIs are also > 70 (pressure cluster just cooled; barssince(redZone)<2).
Up arrow: current RSI < 30 and selected higher TFs also < 30 (barssince(greenZone)<2).
Bollinger Reversals (your update)
T (Top trigger): first close back inside the upper BB (crossunder(close, upper)).
B (Bottom trigger): first close back inside the lower BB (crossover(close, lower)).
r (Confirm): within the next confirmBars bars (input), price also
closes below the T-bar’s low → top r above bar
closes above the B-bar’s high → bottom r below bar
Bar tinting
Only the T/B trigger bars are tinted (yellow/orange). Everything else stays your normal candle colors (unless you add the optional “trend candles” block I gave you).
3-Line Strike
Prints a small green/red circle when the 3-line strike pattern appears (bull/bear).
Leledc Exhaustion
Calculates a running buy/sell index; prints a small ∘ at major highs/lows when exhaustion conditions hit (major==-1 high, major==1 low).
Micro Dots (your second script, merged)
ATR “micro supertrend” defines regime (up/down).
A fast Variable Moving Average + a simple MA(18) filter.
Green dot below bar when: VMA < price, price > MA(18), regime up, and VMA not pointing down.
Red dot above bar for the bearish mirror.
Separate VMA trend line (length = Fast/Med/Slow) that colors green/red/orange by slope.
Inputs you’ll care about
Top/Bot Reversal → confirmBars (how many bars you allow to confirm the T/B trigger).
RSI Timeframes → toggle which HTFs must agree with the OB/OS condition.
EMAs → show/hide and lengths.
BB → show/hide basis/bands (used for T/B even if hidden).
Micro → show dots, show VMA line, choose intensity (Fast/Med/Slow).
Alerts
Prebuilt alerts for: RSI Up/Down, T/B triggers, T/B confirmations, 3-Line Strike bull/bear, Leledc highs/lows, EMA crosses (20/50/100/200), the special 11/34 trend change, Micro Dots, and VMA price cross. (Alert messages are const strings so they compile cleanly.)
How to read clusters (quick playbook)
Reversal short: see T on/near upper band → get an r within your window → bonus confidence if an RSI down arrow or Leledc ∘ high shows up around the same time.
Reversal long: mirror with B then r, plus RSI up arrow / Leledc ∘ low.
Continuation: ignore lone T/B if Micro Dot stays green (or red) and EMA-11 > EMA-34 remains true.
Why your candles look “normal”
By design, the script only colors bars on T or B trigger bars. If you want always-on trend candles, use the small block I gave you to color by EMA(20/50) (or any rule you like) and let T/B override on trigger bars.
Hassi XAUUSD STRATEGY BOTGold (XAUUSD) 15m trend+momentum based signals with EMA(9/21/200), RSI, custom ADX, ATR-based SL/TP & alerts
Works on XAUUSD 15m.
Entry: EMA9/21 cross + price relative to EMA200 + RSI filter + custom ADX trend strength.
Risk: default SL=1.5×ATR, TP=2×ATR (editable).
Notes: No financial advice. Backtest before live use. Avoid high-impact news whipsaws.
Multi-Signal Entry V1Multi‑Signal Entry v1 – (clean, versioned for tracking changes)
SQQQ Entry Scanner – (specific to your use case)
TQQQ/SQQQ Buy Alert – (clear that it’s for both sides if you add short logic later)
VWAP RSI ATR Vol Spike – (great if you want a technical name showing what’s used)
Fast Entry Signal Bot – (if you want a simple, trading-friendly name)
8/30 SMA Pullback + ATR Exits (Crypto)A tryout using LLM to see if it can apply to bots using SMA pullbacks with ATR exits for crypto