0% found this document useful (0 votes)
7 views5 pages

Xpips

usd

Uploaded by

sahraman819
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views5 pages

Xpips

usd

Uploaded by

sahraman819
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.

0
at https://mozilla.org/MPL/2.0/
// Join our channel for more free tools: https://t.me/mr DxB//@version=5
indicator("Xpips Trade Trend", overlay=true)

// --- Paramètres utilisateur ---


output_smoothing = input.int(10, "SR MA Length", minval=1)
trigger_smoothing = input.int(2, "Trigger Smoothing", minval=1)
atr_length = input.int(50, "ATR Length", minval=1)
range_multiplier = input.float(3, "Range Multiplier", minval=0.1)

// Choix entre MA direction ou MA cross


ma_type = input.string("MA direction", "MA Type", options=["MA direction", "MA
cross"])

// --- Sentiment Range MA [ChartPrime] ---


simple_filter(float source, int length, bool duel_filter)=>
switch duel_filter
false => ta.wma(source, length)
true => ta.wma(ta.sma(source, length), length)

sr_ma(float source = close, int output_smoothing = 3, int trigger_smoothing = 1,


int atr_length = 50, float multiplier = 1, string range_switch = "Body", bool
duel_filter = false)=>
candle_top = range_switch != "Body" ? high : math.max(open, close)
candle_bottom = range_switch != "Body" ? low : math.min(open, close)

smooth_top = ta.sma(candle_top, trigger_smoothing)


smooth_bottom = ta.sma(candle_bottom, trigger_smoothing)

tr = candle_top - candle_bottom
atr = ta.sma(tr, atr_length)

var float sr_ma = na


var float current_range = na
var float top_range = na
var float bottom_range = na

flag = smooth_top > top_range or smooth_bottom < bottom_range or


na(current_range)

if flag
sr_ma := source
current_range := atr * multiplier
top_range := sr_ma + current_range
bottom_range := sr_ma - current_range

out = simple_filter(sr_ma, output_smoothing, duel_filter)


smooth_top_range = simple_filter(top_range, output_smoothing, duel_filter)
smooth_bottom_range = simple_filter(bottom_range, output_smoothing,
duel_filter)

[out, smooth_top_range, smooth_bottom_range]

// --- Smoothed Heiken Ashi ---


import wallneradam/TAExt/8

ha_smooth_length = input.int(10, "Smooth Length", minval=1, group="Before HA")


ha_smooth_ma_type = input.string('DEMA', 'MA Type', options=['SMA', 'EMA', 'WMA',
"VWMA", "RMA", "DEMA", "TEMA", "ZLEMA", "HMA", "ALMA", "LSMA", "SWMA", "SMMA",
"JMA", "DONCHIAN", "ATRWSMA", "ATRWEMA", "ATRWRMA", "ATRWWMA"], group="Before HA")
ha_after_smooth_length = input.int(10, "After Smooth Length", minval=1,
group="After HA")
ha_after_smooth_ma_type = input.string('DEMA', 'After MA Type', options=['SMA',
'EMA', 'WMA', "VWMA", "RMA", "DEMA", "TEMA", "ZLEMA", "HMA", "ALMA", "LSMA",
"SWMA", "SMMA", "JMA", "DONCHIAN", "ATRWSMA", "ATRWEMA", "ATRWRMA", "ATRWWMA"],
group="After HA")

[o, h, l, c] = TAExt.heiken_ashi(smooth_length=ha_smooth_length,
smooth_ma_type=ha_smooth_ma_type, after_smooth_length=ha_after_smooth_length,
after_smooth_ma_type=ha_after_smooth_ma_type)

// --- Zero Lag Trend Signals ---


length = input.int(50, "Length", tooltip = "The Look-Back window for the Zero-Lag
EMA calculations", group = "Main Calculations")
mult = input.float(1.2, "Band Multiplier", tooltip = "This value controls the
thickness of the bands, a larger value makes the indicato less noisy", group =
"Main Calculations")
t1 = input.timeframe("1", "Time frame 1", group = "Extra Timeframes")
t2 = input.timeframe("3", "Time frame 2", group = "Extra Timeframes")
t3 = input.timeframe("5", "Time frame 3", group = "Extra Timeframes")
t4 = input.timeframe("15", "Time frame 4", group = "Extra Timeframes")
t5 = input.timeframe("60", "Time frame 5", group = "Extra Timeframes")
green = input.color(#00ffbb, "Bullish Color", group = "Appearance")
red = input.color(#ff1100, "Bearish Color", group = "Appearance")

src = close

lag = math.floor((length - 1) / 2)

zlema = ta.ema(src + (src - src[lag]), length)

volatility = ta.highest(ta.atr(length), length*3) * mult

var trend = 0

if ta.crossover(close, zlema+volatility)
trend := 1

if ta.crossunder(close, zlema-volatility)
trend := -1

zlemaColor = trend == 1 ? color.new(green, 70) : color.new(red, 70)


m = plot(zlema, title="Zero Lag Basis", linewidth=2, color=zlemaColor)
upper = plot(trend == -1 ? zlema+volatility : na, style = plot.style_linebr, color
= color.new(red, 90), title = "Upper Deviation Band")
lower = plot(trend == 1 ? zlema-volatility : na, style = plot.style_linebr, color =
color.new(green, 90), title = "Lower Deviation Band")

fill(m, upper, (open + close) / 2, zlema+volatility, color.new(red, 90),


color.new(red, 70))
fill(m, lower, (open + close) / 2, zlema-volatility, color.new(green, 90),
color.new(green, 70))

plotshape(ta.crossunder(trend, 0) ? zlema+volatility : na, "Bearish Trend",


shape.labeldown, location.absolute, red, text = "▼", textcolor = chart.fg_color,
size = size.small)
plotshape(ta.crossover(trend, 0) ? zlema-volatility : na, "Bullish Trend",
shape.labelup, location.absolute, green, text = "▲", textcolor = chart.fg_color,
size = size.small)

plotchar(ta.crossover(close, zlema) and trend == 1 and trend[1] == 1 ? zlema-


volatility*1.5 : na, "Bullish Entry", "▲", location.absolute, green, size =
size.tiny)
plotchar(ta.crossunder(close, zlema) and trend == -1 and trend[1] == -1 ?
zlema+volatility*1.5 : na, "Bearish Entry", "▼", location.absolute, red, size =
size.tiny)

s1 = request.security(syminfo.tickerid, t1, trend)


s2 = request.security(syminfo.tickerid, t2, trend)
s3 = request.security(syminfo.tickerid, t3, trend)
s4 = request.security(syminfo.tickerid, t4, trend)
s5 = request.security(syminfo.tickerid, t5, trend)

s1a = s1 == 1 ? "Bullish" : "Bearish"


s2a = s2 == 1 ? "Bullish" : "Bearish"
s3a = s3 == 1 ? "Bullish" : "Bearish"
s4a = s4 == 1 ? "Bullish" : "Bearish"
s5a = s5 == 1 ? "Bullish" : "Bearish"

if barstate.islast
var data_table = table.new(position=position.top_right, columns=2, rows=6,
bgcolor=chart.bg_color, border_width=1, border_color=chart.fg_color,
frame_color=chart.fg_color, frame_width=1)
table.cell(data_table, text_halign=text.align_center, column=0, row=0,
text="Time Frame", text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=0,
text="Signal", text_color=chart.fg_color)

table.cell(data_table, text_halign=text.align_center, column=0, row=1, text=t1,


text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=1,
text=s1a, text_color=chart.fg_color, bgcolor=s1a == "Bullish" ? color.new(green,
70) : color.new(red, 70))

table.cell(data_table, text_halign=text.align_center, column=0, row=2, text=t2,


text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=2,
text=s2a, text_color=chart.fg_color, bgcolor=s2a == "Bullish" ? color.new(green,
70) : color.new(red, 70))

table.cell(data_table, text_halign=text.align_center, column=0, row=3, text=t3,


text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=3,
text=s3a, text_color=chart.fg_color, bgcolor=s3a == "Bullish" ? color.new(green,
70) : color.new(red, 70))

table.cell(data_table, text_halign=text.align_center, column=0, row=4, text=t4,


text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=4,
text=s4a, text_color=chart.fg_color, bgcolor=s4a == "Bullish" ? color.new(green,
70) : color.new(red, 70))

table.cell(data_table, text_halign=text.align_center, column=0, row=5, text=t5,


text_color=chart.fg_color)
table.cell(data_table, text_halign=text.align_center, column=1, row=5,
text=s5a, text_color=chart.fg_color, bgcolor=s5a == "Bullish" ? color.new(green,
70) : color.new(red, 70))

/////////////////////////////////////////ALERTS FOR SMALL ARROWS (ENTRY SIGNALS)


alertcondition(ta.crossover(close, zlema) and trend == 1 and trend[1] == 1,
"Bullish Entry Signal",
message="Bullish Entry Signal detected. Consider entering a long position.")
alertcondition(ta.crossunder(close, zlema) and trend == -1 and trend[1] == -1,
"Bearish Entry Signal",
message="Bearish Entry Signal detected. Consider entering a short position.")

/////////////////////////////////////////ALERTS FOR TREND CONDITIONS


alertcondition(ta.crossover(trend, 0), "Bullish Trend")
alertcondition(ta.crossunder(trend, 0), "Bearish Trend")
alertcondition(ta.cross(trend, 0), "(Bullish or Bearish) Trend")

alertcondition(ta.crossover(s1, 0), "Bullish Trend Time Frame 1")


alertcondition(ta.crossunder(s1, 0), "Bearish Trend Time Frame 1")
alertcondition(ta.cross(s1, 0), "(Bullish or Bearish) Trend Time Frame 1")

alertcondition(ta.crossover(s2, 0), "Bullish Trend Time Frame 2")


alertcondition(ta.crossunder(s2, 0), "Bearish Trend Time Frame 2")
alertcondition(ta.cross(s2, 0), "(Bullish or Bearish) Trend Time Frame 2")

alertcondition(ta.crossover(s3, 0), "Bullish Trend Time Frame 3")


alertcondition(ta.crossunder(s3, 0), "Bearish Trend Time Frame 3")
alertcondition(ta.cross(s3, 0), "(Bullish or Bearish) Trend Time Frame 3")

alertcondition(ta.crossover(s4, 0), "Bullish Trend Time Frame 4")


alertcondition(ta.crossunder(s4, 0), "Bearish Trend Time Frame 4")
alertcondition(ta.cross(s4, 0), "(Bullish or Bearish) Trend Time Frame 4")

alertcondition(ta.crossover(s5, 0), "Bullish Trend Time Frame 5")


alertcondition(ta.crossunder(s5, 0), "Bearish Trend Time Frame 5")
alertcondition(ta.cross(s5, 0), "(Bullish or Bearish) Trend Time Frame 5")

alertcondition(ta.crossover(close, zlema) and trend == 1 and trend[1] == 1,


"Bullish Entry")
alertcondition(ta.crossunder(close, zlema) and trend == -1 and trend[1] == -1,
"Bearish Entry")

// --- Combine the Plots ---


[sr_ma_result, top_range, bottom_range] = sr_ma(close, output_smoothing,
trigger_smoothing, atr_length, range_multiplier, "Body", true)

// Calculer la direction (MA direction ou MA cross)


ma_direction = sr_ma_result > sr_ma_result[1] ? 1 : (sr_ma_result < sr_ma_result[1]
? -1 : 0)

color_sr_ma = ma_type == "MA direction" ? (ma_direction == 1 ? color.green :


(ma_direction == -1 ? color.red : color.gray)) : na

plot(sr_ma_result, title="Sentiment Range MA", color=color_sr_ma, linewidth=2)

// Affichage des bougies Heiken Ashi


plotcandle(o, h, l, c, title="Smoothed Heiken Ashi",
color=o > c ? color.new(color.red, 60) : color.new(color.lime, 60),
wickcolor=o > c ? color.new(color.red, 20) : color.new(color.lime, 20),
bordercolor=o > c ? color.new(color.red, 10) : color.new(color.lime, 10))
//
===================================================================================
=======

You might also like