La stratégie intègre plusieurs indicateurs, tels que le MACD, la moyenne et la ligne de pêche, pour identifier la direction de la tendance du marché et effectuer des opérations de suivi de la tendance.
Les principales logiques de négociation:
Calculer les lignes rapides, les lignes lentes et les lignes colonnades du MACD
Déterminez la direction de la courbe MACD pour déterminer la direction de la tendance
Calculer plusieurs moyennes mobiles pour déterminer la position du prix sur la moyenne
L’indicateur de la ligne de pêche détermine la force de tendance
Lorsque ces facteurs sont tous dans le même sens, il faut faire plus ou faire moins.
Il s’agit d’un retrait de stop loss en cas de reprise de la tendance.
La stratégie vise à négocier dans une tendance forte et à arrêter les pertes lors d’un renversement précoce afin d’éviter l’expansion des pertes.
Le MACD détermine la tendance et la force à court terme
La position de la ligne moyenne détermine la tendance à moyen et long terme
La ligne de crocodile montre la force de la tendance globale
Une combinaison d’indicateurs multiples améliore la précision des jugements
Optimisation des paramètres de test répétitifs
Il est difficile de gérer les signaux de conflit si plusieurs indicateurs sont utilisés.
Indicateurs tels que la moyenne sont plus en retard
La stratégie tente de juger globalement de l’orientation du marché à l’aide d’une variété d’indicateurs et d’obtenir des tendances fortes sur la base de paramètres d’optimisation. Cependant, il faut être attentif aux problèmes de retard et aux conflits d’indicateurs.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("5MSM VISHNU", overlay=true,process_orders_on_close=true)
//indicator(title="mahakaal", shorttitle="mahakaal", timeframe="", timeframe_gaps=true)
green = #26A69A
red = #FF0000
Yellow = #fcf932
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src3 = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Plot colors
col_macd = input(#2962FF, "MACD Line ", group="Color Settings", inline="MACD")
col_signal = input(#FF6D00, "Signal Line ", group="Color Settings", inline="Signal")
col_grow_above = input(#26A69A, "Above Grow", group="Histogram", inline="Above")
col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src3, fast_length) : ta.ema(src3, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src3, slow_length) : ta.ema(src3, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
//hline(0, "Zero Line", color=color.new(#787B86, 50))
//@version=5
//indicator(title="Moving Average Exponential", shorttitle="EMA", overlay=true, timeframe="", timeframe_gaps=true)
len = input.int(200, minval=1, title="Length")
src2 = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
Bahubali = ta.ema(src2, len)
//plot(out, title="EMA", color=color.blue, offset=offset)
//@version=5
//indicator(title="Williams Alligator", shorttitle="Alligator", overlay=true, timeframe="", timeframe_gaps=true)
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
jawLength = input.int(13, minval=1, title="Jaw Length")
teethLength = input.int(8, minval=1, title="Teeth Length")
lipsLength = input.int(5, minval=1, title="Lips Length")
jawOffset = input(8, title="Jaw Offset")
teethOffset = input(5, title="Teeth Offset")
lipsOffset = input(3, title="Lips Offset")
jaw = smma(hl2, jawLength)
teeth = smma(hl2, teethLength)
lips = smma(hl2, lipsLength)
//plot(jaw, "Jaw", offset = jawOffset, color=#2962FF)
if (hist > 9)
hist := 10
if (hist < -9)
hist := -10
// Compose alert message
// Entry
alert_msg_long_entry =
"BUY 🟢 {{ticker}} CE " + str.tostring(math.floor((close - 100)/100)*100) + "\n" +
"####################\n\n" +
"{{strategy.order.id}}💹 Target 1: " + str.tostring(math.round(close + 35)) + "\n" +
"{{strategy.order.id}}💹 Target 2: " + str.tostring(math.round(close + 45)) + "\n" +
"\n" +
"{{strategy.order.id}} Stop Loss: " + str.tostring(math.round(close - 30)) + "\n\n" +
"\n" +
"ENTRY PRICE: " + str.tostring(math.round(close)) + "\n\n" +
"Current time: {{timenow}} \n" +
"Education purpose only"
// Entry
alert_msg_short_entry =
"BUY 🟢 {{ticker}} PE " + str.tostring(math.floor((close + 100)/100)*100) + "\n" +
"####################\n\n" +
"{{strategy.order.id}}💹 Target 1: " + str.tostring(math.round(close - 35)) + "\n" +
"{{strategy.order.id}}💹 Target 2: " + str.tostring(math.round(close - 45)) + "\n" +
"\n" +
"ENTRY PRICE: " + str.tostring(math.round(close)) + "\n\n" +
"{{strategy.order.id}} Stop Loss: " + str.tostring(math.round(close + 30)) + "\n\n" +
"Current time: {{timenow}} \n" +
"Education purpose only"
// EXIT
alert_msg_long_exit =
"🛑 EXIT {{ticker}} CE LONG POSITION ! \n" +
"EXIT PRICE: " + str.tostring(math.round(close)) + "\n" +
"\n" +
"Dont wait for exit msg in this 🆓 CHANNEL !! \n" +
"For 💯% accurate & profitable 💰💰💰 EXIT: \n" +
"BUY our 'triDEV' tradingview indicator strategy\n" +
"https://wa.me/917020641496"
// EXIT
alert_msg_short_exit =
"🛑 EXIT {{ticker}} PE Short POSITION ! \n" +
"EXIT PRICE: " + str.tostring(math.round(close)) + "\n" +
"\n" +
"Dont wait for exit msg in this 🆓 CHANNEL !! \n" +
"For 💯% accurate & profitable 💰💰💰 EXIT: \n" +
"BUY our 'triDEV' tradingview indicator strategy\n" +
"https://wa.me/917020641496"
tyme = time("1440", "0920-1515")
bullishtrend = ((hist > 0) and (close > lips ) and (low > lips ) and (close > Bahubali) and (lips > jaw) and tyme)
bearishtrend = ((hist < 0) and (close < lips ) and (high < lips ) and (close < Bahubali) and (lips < jaw) and tyme)
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist > 0 ? ( bullishtrend ? green : Yellow ) : ( bearishtrend ? red : Yellow ) ))
strategy.entry("long", strategy.long, when = bullishtrend , alert_message = alert_msg_long_entry )
strategy.entry("short",strategy.short,when = bearishtrend , alert_message = alert_msg_short_entry)
longexit = (close < lips) or time("1440", "1515-1530") or (hist <= 0) //or (close < Bahubali)
shortexit = (close > lips) or time("1440", "1515-1530")or (hist >= 0) //or (close > Bahubali)
//strategy.exit("long tsl", "long", trail_points = close * 0.01 / syminfo.mintick, trail_offset = close * 0.01 / syminfo.mintick)
//strategy.exit("shoty tsl", "short", trail_points = close * 0.01 / syminfo.mintick, trail_offset = close * 0.01 / syminfo.mintick)
strategy.exit("long TSL", "long", limit = lips ,when = (longexit), alert_message = alert_msg_long_exit)
strategy.exit("short TSL","short",limit = lips ,when = (shortexit), alert_message = alert_msg_short_exit)
//PLOT FIXED SLTP LINE
// LONG POSITION
long_take_level_1 = strategy.position_avg_price + 35
long_take_level_2 = strategy.position_avg_price + 40
long_stop_level = strategy.position_avg_price - 30
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? long_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")
//PLOT FIXED SLTP LINE
// SHORT POSITION
SHORT_take_level_1 = strategy.position_avg_price - 35
SHORT_take_level_2 = strategy.position_avg_price - 40
SHORT_stop_level = strategy.position_avg_price + 30
plot(strategy.position_size < 0 ? SHORT_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st SHORT Take Profit")
plot(strategy.position_size < 0 ? SHORT_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd SHORT Take Profit")
plot(strategy.position_size < 0 ? SHORT_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="SHORT Stop Loss")