EMA Crossover + ATR + PPSignal¿Qué hace este script?
Calcula tres EMAs (4, 9 y 18) con sus colores respectivos (verde, amarillo y rojo).
Calcula el ATR (con período 14) y lo dibuja en el gráfico como línea azul.
Agrega el indicador de Pivot Points (llamado PPSignal), calculados con datos del día anterior, y dibuja las líneas de soporte (S1, S2, S3), resistencias (R1, R2, R3) y el pivot central (PP).
Genera señales de compra/venta cuando la EMA de 4 periodos (ema4) cruza por encima o por debajo de las EMAs de 9 y 18 (ema9, ema18) y además el precio cierra por encima (o por debajo) de la ema9 ± ATR.
Establece un stop = ema4 a la entrada de cada operación.
Puedes ajustar los parámetros de ATR, la lógica de los cruces, o los niveles de Pivot Points según tu estrategia personal. Asimismo, si deseas visualizar estos Pivot Points en otro timeframe (por ejemplo semanal o mensual) o con más/menos pivotes, puedes cambiar el símbolo y el cálculo en la parte de request.security y en la fórmula de los Pivot Points.
Candlestick analysis
EMA 24/52//@version=5
indicator(title="EMA 24/52", overlay=true)
fast = ta.ema(close, 24)
slow = ta.ema(close, 52)
plot(fast, color=color.blue)
plot(slow, color=color.red)
gallant volumeDescription:
The "Gallant with Custom Volume" indicator is designed to enhance your technical analysis by integrating advanced volume metrics with Ichimoku components. This versatile tool allows traders to visualize various volume types, such as standard volume, dollar volume, On-Balance Volume (OBV), Volume Weighted Average Price (VWAP), and Accumulation/Distribution (A/D) line.
Key Features:
Customizable Volume Types: Select from multiple volume sources to suit your trading strategy, providing deeper insights into market dynamics.
Volume Candle Visualization: Color-coded volume candles make it easier to identify market trends at a glance.
Ichimoku Integration: The indicator includes traditional Ichimoku lines (Tenkan-Sen, Kijun-Sen, and Senkou Span A/B), helping you assess market momentum and potential reversals.
Trading Signals: Alerts and visual signals are generated when key crossovers occur, aiding in timely decision-making.
Use Cases:
This indicator is suitable for both day traders and long-term investors looking to incorporate volume analysis with ichimoku techniques. It provides a comprehensive view of market conditions, enhancing your ability to identify potential buy and sell opportunities.
Note: Customize the periods and settings to fit your specific trading style.
Feel free to reach out with feedback or suggestions for improvement
Ways to Use the Indicator:
Identifying Trends:
Use the color-coded volume candles to quickly identify bullish (green) and bearish (red) trends. A consistent color trend may indicate market momentum.
Volume Analysis:
Switch between different volume types based on your trading strategy. For example, using the On-Balance Volume can help confirm trends, while Dollar Volume can provide insight into the strength of buying or selling pressure.
Ichimoku Signals:
Monitor the Ichimoku lines for potential buy and sell signals. A crossover of the Tenkan-Sen above the Kijun-Sen may indicate a bullish signal, while a downward crossover could signal a potential bearish move.
Trading Alerts:
Set alerts based on the indicator’s buy/sell signals to notify you of potential trading opportunities without constantly monitoring the chart.
Custom Periods:
Adjust the Ichimoku settings and custom line periods to match your trading style, whether you're a day trader looking for quick entries or a long-term investor analyzing broader trends.
Integrate with Other Tools:
Combine this indicator with other technical analysis tools for a more comprehensive strategy. For instance, use it alongside moving averages or Fibonacci retracement levels to validate entry and exit points.
Day of the Week Indicator by rajk2186This scrip delineates each day with a fixed colour code and labels
Dynamic RSI-Based Grid Tradinglol ethings go up and i think it works with the candle sticks and the rsi.
If Bitcoin go down buy, bitcoin go up, rich!
Open-Close Range ComparisonTo find out stocks having range expansion.
Can be used as breakout for entering
Trend Following StrategyThis is a trend following strategy singal that produces buy or sell signals based off of moving averages and other areas of price inefficiency
GTATR_N PatternTrend Reversal from down to Raise from lower low to reversal lower high and higher high form N pattern in starting a day and End of day
BTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One DirectionBTC Trendline Strategy - 1min - One Direction
Longest Candles HighlighterDescription:
The Longest Candles Highlighter is a simple yet effective tool that identifies and highlights candles with significant price ranges. By visually marking candles that meet specific size criteria, this indicator helps traders quickly spot high-volatility moments or significant market moves on the chart.
Features:
1. Customizable Candle Range:
- Define the minimum and maximum candle size in pips using input fields.
- Tailor the indicator to highlight candles that are most relevant to your trading strategy.
2. Flexible for Different Markets:
- Automatically adjusts pip calculation based on the instrument type (Forex or non-Forex).
- Accounts for differences in pip values, such as the 0.01 pip for JPY pairs in Forex.
3. Visual Highlighting:
- Highlights qualifying candles with a customizable background color for easy identification.
- The default color is red, but you can choose any color to match your chart theme.
4. Precision and Efficiency:
- Quickly scans and identifies candles that meet your criteria, saving you time in analyzing charts.
- Works seamlessly across all timeframes and asset classes.
How It Works:
- The indicator calculates the range of each candle in pips by subtracting the low from the high and dividing by the appropriate pip value.
- It checks whether the candle's size falls within the user-defined minimum and maximum pip range.
- If the conditions are met, the background of the candle is highlighted with the specified color, drawing your attention to significant price movements.
Use Case:
- This indicator is ideal for identifying key market moments, such as breakouts, volatility spikes, or significant price movements.
- Traders can use it to quickly locate large candles on any chart, aiding in technical analysis and strategy development.
This tool simplifies the process of spotting important candles, empowering traders to make faster and more informed trading decisions.
Opening Candle High/Low with Time Zone and Minute Offset
Title: Opening Candle High/Low with Time Zone and Minute Offset
Description:
The Opening Candle High/Low with Time Zone and Minute Offset indicator is a versatile tool that highlights the high and low of the first candle of the trading session, adjusted for your preferred time zone and minute offset. It is particularly useful for traders who focus on opening ranges as key reference points for their trading strategies.
---
Features:
1. Time Zone and Minute Adjustment:
- Allows customization of the start time by applying a time zone offset (in hours) and a minute offset.
- Ideal for traders operating in different time zones or trading sessions that don't align with midnight UTC.
2. Dynamic First Candle Detection:
- Automatically captures the high and low of the first candle after the adjusted time.
- Resets daily, ensuring accurate levels for each new trading session.
3. Visual Representation:
- Plots the high and low levels of the first candle directly on the chart for easy reference.
- Uses distinct colors (green for the high and red for the low) and adjustable line widths for clarity.
4. Simplicity and Versatility:
- Works across all markets and timeframes, providing essential information for opening range breakout strategies, support/resistance analysis, or session-based trading.
---
How It Works:
1. Time Adjustment:
- The indicator adjusts the current chart time by applying the user-defined hour and minute offsets.
- This ensures the "opening candle" aligns with your specific trading session requirements.
2. First Candle Detection:
- When the adjusted time matches the start of a new day (midnight with offsets), the indicator captures the high and low of the first candle.
- These values are stored and remain static throughout the trading day.
3. Plotting:
- The high and low levels of the opening candle are plotted on the chart, providing visual reference points for traders.
---
Use Case:
- This indicator is ideal for traders who rely on the opening range of a session for planning trades, such as breakout or reversal strategies.
- It can also serve as a key tool for identifying significant price levels in session-based trading.
Simplify your trading analysis and align your strategy with this customizable and intuitive indicator.
FVG Breakout/BreakdownThe FVG Breakout/Breakdown indicator is designed to identify potential breakout and breakdown opportunities in the market, based on the concept of Fair Value Gaps (FVGs). FVGs are areas where price moves too quickly, leaving behind gaps between candlesticks, often seen as areas of inefficiency or imbalance that the market tends to revisit.
Key Concepts:
Fair Value Gaps (FVG):
FVG occurs when a price gap is created between candlesticks, typically when the high of one candle is lower than the low of the previous candle (for a bearish FVG) or the low of one candle is higher than the high of the previous candle (for a bullish FVG).
These gaps represent an imbalance between buying and selling pressure, and the market often revisits them, making them valuable for identifying potential entry points.
Bullish FVG: This occurs when the low of the current candle is higher than the high of the previous candle.
Condition: low > high
Bearish FVG: This occurs when the high of the current candle is lower than the low of the previous candle.
Condition: high < low
Breakout/Breakdown Signals:
Breakout: A bullish breakout signal occurs when the price breaks above a defined resistance level after an FVG gap. This suggests that the market may continue moving higher.
Breakdown: A bearish breakdown signal occurs when the price breaks below a defined support level after an FVG gap. This suggests that the market may continue moving lower.
NWOG (New Week Opening Gap):
The NWOG can be used as an additional factor to confirm the FVG signal. The gap between Friday's close and Monday's open is a crucial level for identifying the start of a new move for the week.
NWOG helps to further refine the timing of breakout or breakdown signals, only triggering them when price moves relative to the Monday Open and shows a new direction.
Enhanced Market Opportunity StrategyThe Enhanced Market Opportunity Strategy is a versatile Pine Script designed for trading various asset classes (forex, crypto, indices, etc.) and timeframes. It combines technical indicators like MACD, RSI, and EMA with dynamic risk management tools such as ATR-based stop-loss and take-profit levels. The script highlights buy/sell signals and includes features like partial profit targets, trailing stops, and performance tracking (wins/losses). It also provides customizable alerts and labels for price movements (+100 points) for effective trade execution
RAJ larg Daily, Weekly & Monthly OHLC Lines - Extra Longhjdgasdgkajfkudhf.sdndsc.jdwnfiljewinD.CN/lwiv/wklf /mwmecW
Trade Bulls//@version=5
indicator(title='Trade Bulls v1.2', shorttitle='Trade Bulls v1.2', overlay=true, max_boxes_count=20)
// Block Order
BO_on =input(defval=true, title='Enable Block Order', group='Block Order')
Senset = input.int(28, minval=1, title='Sensitivity', group='Block Order')
OB_mtype = input.string("Close", title="OB Mitigation Type", options= , group="Block Order")
colUpp = input.color(#50b090, title="Bullish OB Border", inline="1", group="Block Order")
colUpp_ob = input.color(color.new(#60C0A0, 85), title="BackGround", inline="1", group="Block Order")
colDnn = input.color(#4060b0, title="Bearish OB Border", inline="2", group="Block Order")
colDnn_ob = input.color(color.new(#5060D0, 85), title="BackGround", inline="2", group="Block Order")
bool BO_is = false
bool BO_is_Upp = false
boUpp = OB_mtype=="Close" ? close : low
boDnn = OB_mtype=="Close" ? close : high
var box Lbox = na
var box Sbox = na
var L_boxes = array.new_box()
var S_boxes = array.new_box()
var int jj = na
CrDt = (open - open ) / open * 100
Senset /= 100
if ta.crossover(CrDt, Senset)
BO_is_Upp := true
jj := bar_index
jj
if ta.crossunder(CrDt, -Senset)
BO_is := true
jj := bar_index
jj
if BO_is and jj - jj > 5 and BO_on
float Lgrn = 0
for i = 4 to 15 by 1
if close > open
Lgrn := i
break
Sbox := box.new(left=bar_index , top=high , bottom=low , right=bar_index , bgcolor=colDnn_ob, border_color=colDnn, extend=extend.right)
array.push(S_boxes, Sbox)
if BO_is_Upp and jj - jj > 5 and BO_on
float Lred = 0
for i = 4 to 15 by 1
if close < open
Lred := i
break
Lbox := box.new(left=bar_index , top=high , bottom=low , right=bar_index , bgcolor=colUpp_ob, border_color=colUpp, extend=extend.right)
array.push(L_boxes, Lbox)
if array.size(S_boxes) > 0
for i = array.size(S_boxes) - 1 to 0 by 1
sbox = array.get(S_boxes, i)
B_top = box.get_top(sbox)
B_bot = box.get_bottom(sbox)
if boDnn > B_top
array.remove(S_boxes, i)
box.delete(sbox)
if high > B_bot
alert('Price inside Bearish Block Order', alert.freq_once_per_bar)
if array.size(L_boxes) > 0
for i = array.size(L_boxes) - 1 to 0 by 1
sbox = array.get(L_boxes, i)
B_bot = box.get_bottom(sbox)
B_top = box.get_top(sbox)
if boUpp < B_bot
array.remove(L_boxes, i)
box.delete(sbox)
if low < B_top
alert('Price inside Bullish Block Order', alert.freq_once_per_bar)
// Sell/Buy/
BS_on =input(defval=true, title='Enable Buy/Sell', group='Buy/Sell')
LB_on =input(defval=true, title='Enable labels', group='Buy/Sell')
BS_type = input.string('Atr',options= ,inline='ln1', group='Buy/Sell')
BS_size = input(1.,'',inline='ln1', group='Buy/Sell')
BS_max = input(3,'Sequence Length', group='Buy/Sell')
var BS_fib = array.from(1,1)
var BS_dist = 0.
var BS_avg = 0.
var BS_fib_n = 1
var BS_os = 0
BS_src = close
BS_n = bar_index
if barstate.isfirst
for i = 1 to BS_max
array.push(BS_fib,array.get(BS_fib,i-1) + array.get(BS_fib,i))
if BS_type == 'Atr'
BS_dist := ta.atr(200)*BS_size*array.get(BS_fib,BS_fib_n)
else
BS_dist := BS_size*array.get(BS_fib,BS_fib_n)
BS_fib_n := math.abs(BS_src-BS_avg) > BS_dist ? BS_fib_n+1 : BS_fib_n
BS_avg := nz(BS_fib_n > BS_max+1 ? BS_src : BS_avg ,BS_src)
BS_fib_n := BS_fib_n > BS_max+1 ? 1 : BS_fib_n
BS_sell = BS_avg < BS_avg
BS_buy = BS_avg > BS_avg
BS_os := BS_buy ? 1 : BS_sell ? 0 : BS_os
BS_css = BS_os == 1 ? #00b010 : #fe1100
BS_stop = BS_avg != BS_avg ? na : BS_os == 0 ? BS_avg + BS_dist : BS_avg - BS_dist
BS_take = BS_avg != BS_avg ? na : BS_os == 1 ? BS_avg + BS_dist : BS_avg - BS_dist
p_0 = plot( BS_on? BS_src:na,color=na)
p_1 = plot( BS_on? BS_avg:na,color=na)
plot(BS_on ? BS_take:na,'Take',#00b010,1,plot.style_linebr)
plot(BS_on ? BS_stop:na,'Stop',#f01000,1,plot.style_linebr)
fill(p_0,p_1,color.new(BS_css,85))
plotshape(BS_on and BS_buy ? low : na,"Buy_Label",shape.labelup,location.absolute,#00b010,0,text="B",textcolor=color.white,size=size.tiny)
plotshape(BS_on and BS_sell ? high : na,"Sell_Label",shape.labeldown,location.absolute,#f01000,0,text="S",textcolor=color.white,size=size.tiny)
if BS_fib_n > BS_fib_n and BS_os == 1 and BS_src > BS_avg and BS_on and LB_on
label.new(BS_n,BS_src,str.tostring(array.get(BS_fib,BS_fib_n-1)) + ' ✅',yloc=yloc.abovebar,color=na,style=label.style_label_down,textcolor=color.gray,size=size.small)
else if BS_fib_n > BS_fib_n and BS_os == 1 and BS_src < BS_avg and BS_on and LB_on
label.new(BS_n,BS_src,str.tostring(array.get(BS_fib,BS_fib_n-1)) + ' ❌',yloc=yloc.belowbar,color=na,style=label.style_label_up,textcolor=color.gray,size=size.small)
if BS_fib_n > BS_fib_n and BS_os == 0 and BS_src < BS_avg and BS_on and LB_on
label.new(BS_n,BS_src,str.tostring(array.get(BS_fib,BS_fib_n-1)) + ' ✅',yloc=yloc.belowbar,color=na,style=label.style_label_up,textcolor=color.gray,size=size.small)
else if BS_fib_n > BS_fib_n and BS_os == 0 and BS_src > BS_avg and BS_on and LB_on
label.new(BS_n,BS_src,str.tostring(array.get(BS_fib,BS_fib_n-1)) + ' ❌',yloc=yloc.abovebar,color=na,style=label.style_label_down,textcolor=color.gray,size=size.small)
//Channel
CH_on =input(defval=true, title='Enable Channel', group='Channel')
CH_src = input(defval=close, title='Source', group='Channel')
CH_len = input.int(defval=100, title='Length', minval=10, group='Channel')
CH_divlen = input.float(defval=2., title='Deviation', minval=0.1, step=0.1, group='Channel')
CH_ext = input(defval=true, title='Extend Lines', group='Channel')
CH_shwfib = input(defval=false, title='Show Fibonacci Levels', group='Channel')
CH_shwbrk = input.bool(defval=true, title='Show Broken Channel', inline='brk', group='Channel')
CH_brkclr = input.color(defval=color.blue, title='', inline='brk', group='Channel')
CH_upclr = input.color(defval=color.lime, title='Up/Down Trend Colors', inline='trcols', group='Channel')
CH_dnclr = input.color(defval=color.red, title='', inline='trcols', group='Channel')
CH_lnwdt = input(defval=2, title='Line Width', group='Channel')
var CH_fiboln = array.new_float(0)
var CH_clrs = array.new_color(2)
if barstate.isfirst
array.push(CH_fiboln, 0.236)
array.push(CH_fiboln, 0.382)
array.push(CH_fiboln, 0.618)
array.push(CH_fiboln, 0.786)
array.unshift(CH_clrs, CH_upclr)
array.unshift(CH_clrs, CH_dnclr)
get_Channel(CH_src, CH_len) =>
md = math.sum(CH_src, CH_len) / CH_len
Ugl = ta.linreg(CH_src, CH_len, 0) - ta.linreg(CH_src, CH_len, 1)
ip = md - Ugl * math.floor(CH_len / 2) + (1 - CH_len % 2) / 2 * Ugl
lst = ip + Ugl * (CH_len - 1)
dev = 0.0
for x = 0 to CH_len - 1 by 1
dev += math.pow(CH_src - (Ugl * (CH_len - x) + ip), 2)
dev
dev := math.sqrt(dev / CH_len)
= get_Channel(CH_src, CH_len)
CH_break = Ugl > 0 and close < y2_ - dev * CH_divlen ? 0 : Ugl < 0 and close > y2_ + dev * CH_divlen ? 2 : -1
var CH_rlns = array.new_line(3)
var CH_fiblns = array.new_line(4)
if CH_on
for x = 0 to 2 by 1
if not CH_shwbrk or CH_break != x or nz(CH_break , -1) != -1
line.delete(array.get(CH_rlns, x))
else
line.set_color(array.get(CH_rlns, x), color=CH_brkclr)
line.set_width(array.get(CH_rlns, x), width=2)
line.set_style(array.get(CH_rlns, x), style=line.style_dotted)
line.set_extend(array.get(CH_rlns, x), extend=extend.none)
array.set(CH_rlns, x, line.new(x1=bar_index - (CH_len - 1), y1=y1_ + dev * CH_divlen * (x - 1), x2=bar_index, y2=y2_ + dev * CH_divlen * (x - 1), color=array.get(CH_clrs, math.round(math.max(math.sign(Ugl), 0))), style=x % 2 == 1 ? line.style_solid : line.style_dashed, width=CH_lnwdt, extend=CH_ext ? extend.right : extend.none))
if CH_shwfib
for x = 0 to 3 by 1
line.delete(array.get(CH_fiblns, x))
array.set(CH_fiblns, x, line.new(x1=bar_index - (CH_len - 1), y1=y1_ - dev * CH_divlen + dev * CH_divlen * 2 * array.get(CH_fiboln, x), x2=bar_index, y2=y2_ - dev * CH_divlen + dev * CH_divlen * 2 * array.get(CH_fiboln, x), color=array.get(CH_clrs, math.round(math.max(math.sign(Ugl), 0))), style=line.style_dotted, width=CH_lnwdt, extend=CH_ext ? extend.right : extend.none))
var label lbl1 = label.new(x=bar_index - (CH_len - 1), y=y1_, text='S', size=size.large)
lb_text = Ugl > 0 ? Ugl > Ugl ? '⇑' : '⇗' : Ugl < 0 ? Ugl < Ugl ? '⇓' : '⇘' : '⇒'
lb_style = Ugl > 0 ? Ugl > Ugl ? label.style_label_up : label.style_label_upper_right : Ugl < 0 ? Ugl < Ugl ? label.style_label_down : label.style_label_lower_right : label.style_label_right
if CH_on
label.set_style(lbl1, lb_style)
label.set_text(lbl1, lb_text)
label.set_x(lbl1, bar_index - (CH_len - 1))
label.set_y(lbl1, Ugl > 0 ? y1_ - dev * CH_divlen : Ugl < 0 ? y1_ + dev * CH_divlen : y1_)
label.set_color(lbl1, Ugl > 0 ? CH_upclr : Ugl < 0 ? CH_dnclr : color.blue)
DnTrend = math.sign(Ugl) != math.sign(Ugl ) and Ugl < 0
UpTrend = math.sign(Ugl) != math.sign(Ugl ) and Ugl > 0
alertcondition(CH_break, title='Channel Broken', message='Channel Broken')
alertcondition(DnTrend, title='Channel Down trend', message='Channel Down trend')
alertcondition(UpTrend, title='Channel Up trend', message='Channel Up trend')
// Support/Resistance
SR_on =input(defval=true, title='Enable Support/Resistance', group='Support/Resistance')
SR_lb = input(15, title='Left Bars ', group='Support/Resistance')
SR_rb = input(15, title='Right Bars', group='Support/Resistance')
SR_vol = input(20, title='Volume Threshold', group='Support/Resistance')
SR_high = fixnan(ta.pivothigh(SR_lb, SR_rb) )
SR_low = fixnan(ta.pivotlow(SR_lb, SR_rb) )
plot(SR_on?SR_low:na, color=ta.change(SR_low) ? na : #2030e0, linewidth=3, offset=-(SR_rb + 1), title='Support')
plot(SR_on?SR_high:na, color=ta.change(SR_high) ? na : #F00000, linewidth=3, offset=-(SR_rb + 1), title='Resistance')
SR_short = ta.ema(volume, 5)
SR_long = ta.ema(volume, 10)
SR_dlt = 100 * (SR_short - SR_long) / SR_long
alertcondition(ta.crossover(close, SR_high) and SR_dlt > SR_vol, title='Resistance Broken', message='Resistance Broken')
alertcondition(ta.crossunder(close, SR_low) and SR_dlt > SR_vol, title='Support Broken', message='Support Broken')