EMA fasterDraw EMA(12) and put a signal when EMA(12) cross with EMA(50).
EMA(50) is not rendered on the canvas.
Cari dalam skrip untuk "美联储议息会议12月时间"
[Delphi] RSI - Dynamic Movement Sys - Volume Oscil - Pista CicCopyright by Delphi v1.0 05/07/2018 - 12/07/2018
RSI - Dynamic Movement System - Volume Oscillator - Pista Ciclica
Follow me for updates and strategies
05/07/2018 Added Pista Ciclica
05/07/2018 Added RSI
09/07/2018 Added ADX - Dynamic Movement System
12/07/2018 Added Volume Oscillator
Automatic Support, Resistance, Fibonacci LevelsThis indicator plots absolute high and low values for up to five completely adjustable time periods (in months, weeks, days, hours, minutes) and optionally calculates the Fibonacci levels on the pair of absolutes of your choice, ascending or descending, and mimics the shading available in the built-in Fib charting tools (e.g. retracement).
Here are a few screenshots of the same chart with various options selected.
3-Month, 4-Week, and 5-Day absolutes with 3-Monthly Fib plotted:
The same chart with 4-Weekly Fib:
The same chart with 5-Daily Fib:
5-Day, 12-Hour, 90-Minute absolutes with 12-Hourly Fib:
Zoomed in, on a 30-minute interval, with 90-minute Fib:
With descending ("inverted") 90-minute Fib:
I started putting this together for Vazzyb, who was looking for a way to automate plotting horizontal support and resistance levels for monthly, weekly, and daily extremes, and then I added additional features as they occurred to me. Special thanks to Paaax, who suggested I add Fib levels.
I am leaving the code open, so you may feel free to grab snippets you like and use them for your own purposes. Of particular interest may be my custom "calc_fib()" function, which accepts any series pair, as well as a Boolean indicating whether to invert, and returns an array with each of the major Fibonacci levels: .
If anyone likes this enough to feel generous, please feel free:
BTC
3KmFchJ18QvMzAJKDcFQXvyK9p1EHWQdhP
BCH
qqtrw64ptuwprk5vtj3z8qwkvh3v0jawxq7khqng7x
ETH
0x9b51361A278910Ba3945C7519C9f0FA8a77df18d
LTC
MDeWWsP7XCG2zQuZ2dYALZXQ52u2qkc8fh
P.S. If you want the time lengths to be as close to accurate as possible, don't forget to change the number of days per week when using for cryptocurrency!
Philakone 55 EMA Swing Trading StrategyThis strategy was inspired by Philkone Crypto's "Lesson 12: Let's Learn Advanced 55 EMA Strategy" video.
steemit.com
Supports Buy and Sell Condition alerts and displays arrows on the chart.
Ichimoku Kinko Hyo + HULL-MA_X + MacDThe Ichimoku Kinko Hyo system includes five kinds of signal, of which this strategy uses the most recent of ones i.e. Tenkan Sen / Kijun Sen Cross and price crosses the Kijun Sen. As the Chikou Span, Senkou Span A and Senkou Span B are shifted into the past/future, the trigger signals will be only be used for visual confirmation and not part of the strategy.
The Tenkan Sen, also known as the Turning or Conversion line, is a moving average of the highest high and lowest low over the last 9 periods in this strategy.
The Kijun Sen, also known as the Standard or Base line, is a moving average of the highest high and lowest low over the last 24 periods in this strategy.
The Chikou Span, also known as the Lagging line, is the closing price plotted 24 periods behind in this strategy.
The Senkou Span A, also known as the 1st leading line, is a moving average of the Tenkan Sen and Kijun Sen and is plotted 24 periods ahead in this strategy.
The Senkou Span B, also known as the 2nd leading line, is a moving average of the highest high and lowest low over the last 51 trading days is plotted 24 periods ahead in this strategy.
Moving average convergence divergence (MaCD) is a trend-following momentum indicator that shows the relationship between two moving averages of prices. The MaCD is calculated in this strategy by subtracting the 24-day exponential moving average (EMA) from the 12-day EMA. A nine-day EMA of the MACD, called the "signal line", aMaCD in this case, is then plotted on top of the MaCD. In this strategy, MaCD/ aMaCD Cross is functioning as a trigger for buy and sell signals.
As with most technical analysis methods, Ichimoku is likely to produce frequent conflicting signals in non-trending markets, So in addition to Ichimoku Kinko Hyo, the Hull MA is popular amongst some day traders, as the indicator which in combination with MaCD attempts to give an accurate signal by eliminating lags and improving the smoothness of the line.
Alan Hull, developed this moving average indicator and hence it’s called the Hull MA.
Now, let’s dissect how the Hull moving average is calculated.
The Hull MA involves the weighted moving average (WMA) in its calculation.
First, calculate the WMA with period (n / 2) and multiply this by 2. Remember ‘n’ is the time period configurable based on the trader’s requirement. The default setting is 12 periods in this strategy, fast Hull MA crossing slow Hull MA will generate a circle on charts.
Second, calculate the WMA for period “n” and subtract if from the first step. Thirdly, calculate the weighted moving average with period sqrt (n) using the data from the second step. You can take a look at the below formula:
Hull MA= WMA (2*WMA (n/2) − WMA (n)), sqrt (n))
The Hull MA Cross in combination with Tenkan Sen / Kijun Sen Cross and MaCD tries to give an accurate signal by eliminating lags and improve the smoothness of price activity. Please note that price trends can and do change often, so your readings of the charts and this trading system should be probabilistic, rather than predictive.
Pullback Trading Tool R5-65 by JustUncleLBy request this is an updated version of the "PullBack Trading Tool": removes experimental "OCC" channel, added option to display ribbons or just single moving average lines, added alert arrows for "PB" exits, added alertcondition for TV alarm subsystem, added some extract options for Pivot points and general cleanup of code.
Description:
This project incorporates the majority of the indicators needed to analyse and trade Trends for Pullbacks, swings and reversals.
Incorporated within this tool are the following indicators:
1. Major industry (Banks) recognised important EMAs in an EMA Ribbon:
Lime = EMA5 (Optional Display)
DodgerBlue = EMA12 (Optional Display)
Red = EMA36 (Optional display)
Green = EMA89
Blue = EMA200
Black = EMA633
2. The 5 EMA (default) High/Low/Close Price Action Channel (PAC), the PAC channel display is disabled by default.
3. Optionally display Fractals and optional Fractal levels
4. Optional HH, LH, LL, HL finder.
5. Optional Buy/Sell "PB" exit Alerts with Optional 200EMA filter.
6. Coloured coded Bar high lighting based on the PAC:
blue = bar closed above PAC
red = bar closed below PAC
gray = bar closed inside PAC
7. Alert condition sent to TradingView's Alarm subsystem for PB exits.
8. Pivot points with optional labels.
9. EMA5-12 Ribbon is displayed by default.
10.EMA12-36 Ribbon is displayed by default
Set up and hints:
I am unable to provide a full description here, as Pullback Trading incorporates a full trading Methodology, there are a number of articles and books written on the subject.
Set the chart to Heikin Ashi Candles (optional).
I also add a "Sweetspot Gold R3" indicator to the chart as well to help with support and resistance finding and shows where the important "00" lines are.
First on a weekly basis say Sunday night or Monday morning, analyse the Daily and Weekly charts to establish overall trends, and support/resistant levels. Draw significant mini trend lines (2/3 TL), vertical trend lines (VTL) and S/R levels. Can use the Pivots points to guide VTL drawing and Fractals to help guide 2/3 TL drawing.
Once the trend direction and any potential major reversals highlighted, drop down to lower timeframe chart and draw appropriate mini Trend line (2/3 TL) matching the established momentum direction. Take note of potential pull backs from and of the EMAs, in particular the EMA5-12 ribbon, EMA12-36 Ribbon and the 200EMA. Can use the Pivots and/or Fractals points to guide your 2/3 TL drawing.
Set a TradingView alarm on the "PBTOOL alert", with the default settings this normally occurs before or during the Break of the manually drawn TL lines.
Once alerted check to see if the TL is broken and is returning to trend away from the EMA lines, this is indicated by bar colour change to trend directional colour.
You can trade that alert or drop down to even lower time frames and perform the same TL analysis there to find trades at the lower TF. Trading at lower TF you will allow tighter Stop loss settings.
Other than the "SweetSpot Gold R3" indicator, you should not need any other indicator to successfully trade trends for Pullbacks and reversals. If you really want another indicator I suggest a momentum one for example: AO ( Awesome Oscillator ), MACD or Squeeze Momentum.
Spartan Trader FX IndicatorUnofficial (I am not affiliated to www.spartantraderfx.com in any way) combo indicator providing all the indicators needed for their trading system (default coloring as presented in the materials):
EMA 12 line
EMA 36 line
EMA 200 line
EMA 633 line
EMA 200 and EMA 633 volatility zone
EMA 12/36 crossover arrows
heiken ashi color overlay(helpful when trying to see true open and close of candles using regular candlesticks)
Scalping Swing Trading Tool R1-4 by JustUncleLDescription:
This study project is a "Scalping Swing trading Tool" and is an alternative to the "Scalping Pullback Tool R1". It is designed for a two pane TradingView chart layout :
the first pane set to 15min Time Frame;
the second pane set to 1min Time Frame(TF).
The tools incorporates the majority of the indicators needed to analyse and scalp Trends for Swings, PullBacks and reversals on 15min charts and 1min charts.
Incorporated within this tool are the following indicators:
1. The following EMAs are drawn automatically:
Green = EMA89 (15min TF) = EMA75 (1min TF)
Blue = EMA200 (15min TF) = EMA180 (1min TF)
Black = EMA633 (15min TF) = EMA540 (1min TF)
2. The 10EMA (default) High/Low+Close Price Action Channel (PAC), the PAC channel
display is disabled by default.
3. Optionally display Fractals and optional Fractal levels
4. Optional HH, LH, LL, HL finder.
5. Coloured coded Bar high lighting based on the PAC:
blue = bar closed above PAC
red = bar closed below PAC
gray = bar closed inside PAC
lime Line = EMA10 of bar close
6. Pivot points (disables Fractals automatically when selected) with optional labels.
7. EMA5-12 Channel is displayed by default.
8. EMA12-36 Ribbon is displayed by default
9. Optionally display EMA36 and PAC instead of EMA12-36 Ribbon.
Set up and hints:
I am unable to provide a full description here, as Pullback Trading incorporates a full trading Methodology, there are a number of articles and books written on the subject.
Set to two pane TradingView chart, set first pane to 15Min and second to 1min.
Set the chart to Heikin Ashi Candles (optional).
I also add a "Sweetspot Gold2" indicator to the chart as well to help with support and resistance finding and shows where the important "00" lines are.
Use the EMA200 on the 15min pane as the anchor. So when prices above EMA200 we only trade long (buy) and when prices below the EMA200 we only trade short (sell).
On the 15min chart draw any obvious Vertical Trend Lines (VTL), use Pivots point as a guide.
On the 15min chart what we’re looking for price to Pullback into the EMA5-12 Channel or EMA12-36 ribbon, we draw Trendlines uitilising the Pivot points or Fractals to guide your TL drawing.
On the 15min chart look for the trend to resume and break through the drawn TL. The bar color needs to change back to the trend direction colour to confirm as a break.
Now this break can be traded as a 15min trade or now look to the 1min chart.
On the 1min chart draw any Pullback into any of the EMAs.
On the 1min chart look for the trend to resume and break through the drawn TL. The bar color needs to change back to the trend direction colour to confirm as a break.
Now this break can be traded as a 1min trade.
There is also an option to select Pristine (ie Ideal) filtered Fractals, which look like tents or V shape 5-candle patterns. These are actually used to calculate the Pivot points as well.
Other than the "SweetSpot Gold2" indicator, you should not need any other indicator to successfully trade trends for Pullbacks and reversals. If you really want another indicator use the AO (Awesome Oscillator) as it is momentum based.
Murray Math LevelsThe original script was posted on ProRealCode by user supertiti.
The Murray Math lines levels are determined within some principles of Gann levels and candlesticks formations. The Murray Math levels act pretty much like pivot and support/resistance areas.
1. Line 8/8 - 0/8 (Ultimate Support and Ultimate Resistance).
Those lines are the most strong concerning Support and resistance.
2. Line 7/8 (Weak, Place to Stop and Reverse).
This line is weak. If suddenly the price was going too fast and too far and stops around this line it means the price will reverse down very soon. If the price did not stop near this line this price will continue the movement to the line 8/8.
3. Line 1/8 (Weak, Place to Stop and Reverse).
This line is weak. If suddenly the price was going too fast and too far and stops around this line it means the price will reverse up very soon. If the price did not stop near this line this price will continue the movement down to the line 0/8.
4. Line 2/8 and 6/8 (Pivot, Reverse)
Those two lines yield the line 4/8 only to the strength to reverse the price movement.
5. Line 5/8 (Top of Trading Range)
The price is spending the about 40% of the time on the movement between the lines 5/8 and 3/8. If the price is moving near line 5/8 and stopping near the line during the 10 - 12 days so it means that it is necessary to sell in this "bonus zone" (some people are doing like this) but if the price is keeping the tendency to stay above 5/8 line, so it means that the price will be above. But if the price is droping below 5/8 line it means that the price will continue falling to the next level of resistance.
6. Line 3/8 (Bottom of Trading Range).
If the price is below this line and in uptrend it means that it will be very difficult for the price to break this level. If the price broke this line during the uptrend and staying above during the 10- 12 days it means that the price will be above this line during the 40% of its time moving between this line and 5/8 line.
7. Line 4/8 (Major Support/Resistance Line).
It is the major line concerning support and resistance. This level is the better for the new sell or buy. It is the strong level of support of the price is above 4/8. It is the fine resistance line if the price is below this 4/8 line.
Candlestick Trend Indicator v0.5 by JustUncleLRequested Update to this Indicator alert project. In this update I have added the option to be able select which Price Action candles you want included in the display and the generated alarm Alert. Other changes also included in this update:
Also added a Price Action candle for "Last Fractal S/R Break", this also a good continuation indication.
Added option to select a different moving average types for directional MA line.
Modified some default settings, using HullMA instead of Zero Lag EMA and standard MACD settings(12,26,9).
Description:
This is a trend following indicator and alert for Binary Options based on Candlestick patterns and trend line -
NOTE: original system was a forex trading system.
This code combines a number of indicators to create an overall trading strategy.
The indicator recognises and displays some useful candle named defined patterns that are used to support trend continuation:
Bearish + Bullish PinBars
Dark Cloud Cover
Piecing Line
Bullish + Bearish Harami
Bullish + Bearish Engulfing Candle
Bullish + Bearish Last Fractal S/R break
Also recognises main Price Action candles from ChrisMoody (CM), the four(4) price action patterns are colored coded bars:
Yellow = Inside Bar - breakout/continuance
Orange = Outside Bar - breakout/continuance
Aqua/Fuschia = Up/Down Shaved Bars - Buying/Selling pressure
Red/Green = Possible reversal PinBars - Reverse Down / reverse Up
The highlighted candles (maroon and darker green) represent the defined PA patterns that have been confirmed following the current trend direction that is indicated by the Hull MA(20) line (can select a different type of MA, or even disable) and confirmed by MACD direction (can be disabled). The confirmed Alerts are indication by green (buy) and red (sell) dots at the bottom of the chart. An alert is generated from this selection for the alert condition of the alarming system.
The fractal upper/lower break lines are also draw, if the (optional) last fractal break line is broken by a highlighted bar then this indicates a stronger trend conformation.
The MACD indicator MACD DEUTER 2 colour(12,26,9) you can visually see the MACD histogram colours with MACD direction - needs "MACD DEUTER 2 colour" indicator.
This multi-indicator set up is suitable for 1hr, 4hr and daily charts with 1-4 candle expiry.
References and Inspiration from:
Fractal Levels by RicardoSantos
Almost Zero Lag EMA
Candlestick Patterns With EMA by rmwaddelljr
CM_Price-Action-Bars by ChrisMoody
www.forexstrategiesresources.com
"Scalp Jockey - MTF MA Cross Visual Strategizer by JayRogers"
Sladkaya Bulochka PosledovatelnostiSerial number of the same color candles - a popular method of how to find the exact entry zones and determine the trends and kickbacks.
The number of consecutive candles usually starts from 3 and up to 12 in some strategies.
5 candles in sequence - one of the most popular signals. Login at the close of the 5th candle.
---------------------------------------------
Последовательное число свечей одинакового цвета - популярный метод как поиска точных зон входа, так и определения трендов и откатов.
Число последовательных свечей, как правило, начинается с 3 и доходит до 12 в некоторых стратегиях.
5 свечей в последовательности - один из наиболее популярных сигналов. Вход на закрытии 5й свечи.
MACD trend heatmap (by ChartArt)This is an overlay indicator which uses the classic period settings and signals from the MACD (Moving Average Convergence/Divergence) indicator to overlay a heatmap using all the information the MACD generates with its three periods (12,26,9).
The first two moving averages which the MACD uses (12 and 26) can be plotted on the chart like usual EMAs.
In addition to the background color function (the heatmap) and the EMAs, there is an optional bar color alert when the uptrend or the downtrend as measured by the MACD appears to be very strong.
Stoch_VX2Nothing New about a Stochastic but maybe in how you use them ( Other than Over bought / Sold cross over & divergence signals )
Running 3 bands
Standard stoch & tops & bottoms swing band
Optimised variables 12, 5 , 3 or fib 13, 5, 3 / - 12 / 3 / 3 a little bit tighter to combine both smoothness & accuracy. These are my own personal setting inc. Strategy.
MACD Color Trawler (by ChartArt)This version of the MACD indicator is 'trawling' (checking) if the MACD histogram and the zero line crossing with the MACD line are both positive or negative. The idea behind this is to show areas with higher or lower risk.
Features:
1. Enable the bar color
2. Enable the background color
3. Change zero line value
FYI:
"The MACD-Histogram is an indicator of an indicator. In fact, MACD is also an indicator of an indicator. This means that the MACD-Histogram is the fourth derivative of price."
First derivative: 12-day EMA and 26-day EMA
Second derivative: MACD (12-day EMA less the 26-day EMA)
Third derivative: MACD signal line (9-day EMA of MACD)
Fourth derivative: MACD-Histogram (MACD less MACD signal line)
Source: stockcharts.com
IPDA Time (3, 6, 9) [Final v3]This Pine Script code defines a custom TradingView indicator called "IPDA Time (3, 6, 9)". It is designed to identify specific bars on the chart where the digital root of the current time (hour and minute) equals 3, 6, or 9, which are numbers often associated with cycles and market timing concepts in trading.
1. What the Code Does
The script calculates two main time values based on a concept known as the Digital Root (also called the "Digital Sum").
The Digital Root Function
The core logic uses a custom function, getDigitalRoot(number), which calculates the digital root of any number. The digital root is the single digit obtained by an iterative process of summing the digits of a number, repeatedly until a single digit is reached (e.g., the digital root of 48 is 4+8=12→1+2=3).
Signal Calculations
The script extracts the individual digits from the current chart's hour and minute (h, m) and performs two distinct digital root calculations:
hourPlusMinuteValue (High Confluence Check): Calculates the digital root of the sum of all four digits (two from the hour, two from the minute).
minuteOnlyValue (Minute Check): Calculates the digital root of the sum of the two minute digits only.
Logic and Signal Generation
The code generates three types of signals based on whether these digital roots equal 3, 6, or 9:
High-Importance (Green Square): Generated when BOTH the "Hour + Minute" check (isHourPlusMinuteSignal) and the "Minute Only" check (isMinuteOnlySignal) are true.
Hour + Minute Only (Blue Diamond): Generated when ONLY the "Hour + Minute" check is true.
Minute Only (Yellow Diamond): Generated when ONLY the "Minute Only" check is true.
2. Visual Output on the Chart
The indicator visualizes these signals directly on the price chart:
Signal Type Shape (Style) Color Location Additional Effect
High-Importance Square (shape.square) Green Above Bar Changes the bar's color to green (with 75% transparency).
Hour + Minute Only Diamond (shape.diamond) Blue Above Bar N/A
Minute Only Diamond (shape.diamond) Yellow Above Bar N/A
Export to Sheets
The visual markers appear above the bar/candle that corresponds to the specific time criteria being met, highlighting moments the indicator's logic deems significant.
Tools
Multi-Timeframe MACD ConfluenceMulti-Timeframe MACD Confluence Indicator
This indicator plots Buy and Sell signals based on the confluence of MACD histogram direction across three different timeframes. When the MACD histogram is bullish (above zero) on all selected timeframes, a Buy signal is triggered. When it's bearish (below zero) on all, a Sell signal is shown.
🧠 Key Features:
Customizable timeframes (default: 5min, 15min, 1hr)
Uses traditional MACD: 12/26/9 EMA
Works on any asset or timeframe
Provides visual plot signals and built-in alerts
📈 This tool is ideal for traders who rely on multi-timeframe analysis to validate trend momentum before taking entries.
34 EMA Cross Alert (Once per sequence)This script is used when 5-12 EMA is above 34-50 EMA and if price corrects to 34-50 cloud and bounces i.e. price crosses below 34 EMA and then cross above 34 EMA, it will trigger alert.
Smart Session Levels - Step 1 (NY Prep Lines)It shows three vertical lines at 6 PM 12 AM and 6 AM for preparation at New York session to determine Asian high and Asia low levels also London high and London low levels
EMA50 Flux LT (Daily/Weekly)// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © pizzalolodudu
//@version=6
indicator("EMA50 Flux LT (Daily/Weekly)", overlay=true)
// === Inputs ===
lenEMA = input.int(50, "Longueur EMA prix")
obvLen = input.int(20, "OBV MA length")
htf = input.timeframe("W", "Timeframe Flux (HTF)") // Par défaut : Weekly
lineWidth = input.int(6, "Épaisseur EMA", minval=1, maxval=12)
// === EMA50 sur la TF active (ex: Daily chart) ===
ema50 = ta.ema(close, lenEMA)
// === Flux HTF (Weekly ou Monthly) ===
obv_htf = request.security(syminfo.tickerid, htf, ta.cum(math.sign(ta.change(close)) * volume))
obv_ma_htf = request.security(syminfo.tickerid, htf, ta.sma(ta.cum(math.sign(ta.change(close)) * volume), obvLen))
imb_htf = request.security(syminfo.tickerid, htf, (close > open ? 1 : -1))
// === Signaux binaires ===
obv_signal = obv_htf > obv_ma_htf ? 1 : -1
imb_signal = imb_htf > 0 ? 1 : -1
// === Score total revisité ===
score = obv_signal + imb_signal
flux = score > 0 ? 1 : score < 0 ? -1 : 0
// === Couleurs ===
colFlux = flux > 0 ? color.lime : flux < 0 ? color.red : color.orange
colOutline = color.new(color.white, 70)
// === Tracé double couche ===
plot(ema50, color=colOutline, linewidth=lineWidth + 2, title="Contour EMA")
plot(ema50, color=colFlux, linewidth=lineWidth, title="EMA Flux LT")
Custom MACD (Normalized by ATR)This is a modified version of the classic MACD indicator.
Instead of using just the difference between EMA(12) and EMA(26), this version normalizes the MACD line by ATR(26) and scales it by 100:
* 100
This adjustment makes the MACD relative to market volatility, allowing for easier comparison across assets and timeframes.
The idea of normalizing MACD with ATR comes from Alex Spioglou, who suggested this improvement to enhance signal consistency in volatile markets.
Plots include the ATR-normalized MACD line, the signal line, and the histogram, with rising/falling color cues and built-in alert conditions.
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
SMC Volatility Liquidity Prothis one’s a confluence signaler. it fires “BUY CALL” / “BUY PUT” labels only when four things line up at once: trend, volatility squeeze, a liquidity sweep, and MACD momentum. quick breakdown:
what each block does
Trend filter (context)
ema50 > ema200 ⇒ trendUp
ema50 < ema200 ⇒ trendDn
Plots both EMAs for visual context.
Volatility compression (setup)
20-period Bollinger Bands (stdev 2).
bb_squeeze is true when current band width < its 20-SMA ⇒ price is compressed (potential energy building).
Liquidity sweep (trigger)
Tracks 20-bar swing high/low.
Long sweep: high > swingHigh ⇒ price just poked above the prior 20-bar high (took buy-side liquidity).
Short sweep: low < swingLow ⇒ price just poked below the prior 20-bar low (took sell-side liquidity).
MACD momentum (confirmation)
Standard MACD(12,26,9) histogram.
Bullish: hist > 0 and rising versus previous bar.
Bearish: hist < 0 and falling.
the actual entry signals
LongEntry = trendUp AND bb_squeeze AND liquiditySweepLong AND macdBullish
→ prints a green “BUY CALL” label below the bar.
ShortEntry = trendDn AND bb_squeeze AND liquiditySweepShort AND macdBearish
→ prints a red “BUY PUT” label above the bar.
alerts & dashboard
Alerts: fires when those long/short conditions hit so you can set TradingView alerts on them.
On-chart dashboard (bottom-right):
Trend (Bullish/Bearish/Neutral)
Squeeze (Yes/No)
Liquidity (Long/Short/None)
Momentum (Bullish/Bearish/Neutral)
Current Signal (BUY CALL / BUY PUT / WAIT)
(btw the comment says “2 columns × 5 rows” but the table is actually 5 columns × 2 rows—values under each label across the row.)
what it’s trying to capture (in plain english)
Trade with the higher-timeframe bias (EMA 50 over 200).
Enter as volatility compresses (bands tight) and a sweep grabs stops beyond a 20-bar extreme.
Only pull the trigger when momentum agrees (MACD hist direction & side of zero).
caveats / tips
It’s an indicator, not a strategy—no entries/exits/backtests baked in.
Signals are strict (4 filters), so you’ll get fewer but “cleaner” prints; still not magical.
The liquidity-sweep check uses the prior bar’s 20-bar high/low ( ), so on bar close it won’t repaint; intrabar alerts may feel jumpy if you alert “on every tick.”
Consider adding:
Exit logic (e.g., ATR stop + take-profit, or opposite signal).
Minimum squeeze duration (e.g., bb_squeeze true for N bars) to avoid one-bar dips in width.
Cool-down after a signal to prevent clustering.
Session/time or volume filter if you only want liquid hours.
if you want, I can convert this into a backtestable strategy() version with ATR-based stops/targets and a few toggles, so you can see stats right away.
MACD (The Moving Average Convergence Divergence)The Moving Average Convergence Divergence (MACD) is a momentum indicator used in technical analysis to identify trends, measure their strength, and signal potential reversals. It is calculated by subtracting the 26-period Exponential Moving Average (EMA) from the 12-period EMA, creating the MACD line. A 9-period EMA of the MACD line, known as the signal line, is then plotted to generate buy or sell signals. Positive MACD values suggest upward momentum, while negative values indicate downward momentum. Traders often watch for crossovers, divergences, and movements relative to the zero line to make informed decisions.