
Cette stratégie est basée sur une double ligne moyenne croisée. Elle combine une moyenne mobile simple rapide (SMA) et une moyenne mobile pondérée lente (VWMA) pour former des signaux d’achat et de vente.
Un signal de vente est généré lorsque le SMA rapide traverse le VWMA lent vers le haut.
La logique de base de cette stratégie est basée sur le système de double équilibre. Plus précisément, elle utilise simultanément les indicateurs techniques suivants:
Les paramètres SMA rapides dans les doubles moyennes sont plus courts, ce qui permet de répondre rapidement aux variations de prix; les paramètres VWMA lents sont plus longs et ont un effet d’entraînement. Lorsque les tendances à court et à long terme évoluent dans la même direction, les SMA rapides à la hausse traversent les VWMA lentes pour générer un signal d’achat.
La stratégie met en place un mécanisme de stop-loss. Lorsque le prix se déplace dans une direction défavorable, le stop-loss est effectué à temps pour contrôler le risque.
Les méthodes de contrôle des risques:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie est une stratégie de suivi de tendance très pratique dans son ensemble. Elle utilise un simple croisement de doubles moyennes intuitives pour générer des signaux de négociation et capte efficacement les changements de tendance du marché grâce à une combinaison de moyennes rapides et moyennes lentes. Le mécanisme de stop-loss lui permet également de bien contrôler les risques.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true, initial_capital=10000, currency='USD')
strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true)
// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/
// === GENERAL INPUTS ===
// short ma
maFastSource = input(defval = close, title = "Simple MA Source")
maFastLength = input(defval = 6, title = "Simple MA Length", minval = 1)
// long ma
maSlowSource = input(defval = high, title = "VW MA Source")
maSlowLength = input(defval = 7, title = "VW MA Period", minval = 1)
// === SERIES SETUP ===
// a couple of ma's...
maFast = sma(maFastSource, maFastLength)
maSlow = vwma(maSlowSource, maSlowLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = color.green, linewidth = 2, style = plot.style_line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = color.red, linewidth = 2, style = plot.style_line, transp = 30)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)
//enterLong = crossover(maSlow, maFast)
//exitLong = crossover(maFast, maSlow)
// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)
// === FILL ====
fill(fast, slow, color = maFast > maSlow ? color.green : color.red)
// === MRSI ===
//
//
basis = rsi(close, input(50))
ma1 = ema(basis, input(2))
ma2 = ema(basis, input(27))
oversold = input(32.6)
overbought = input(63)
//plot(ma1, title="RSI EMA1", color=blue)
//plot(ma2, title="RSI EMA2", color=yellow)
obhist = ma1 >= overbought ? ma1 : overbought
oshist = ma1 <= oversold ? ma1 : oversold
//plot(obhist, title="Overbought Highligth", style=columns, color=color.maroon, histbase=overbought)
//plot(oshist, title="Oversold Highligth", style=columns, color=color.yellow, histbase=oversold)
//i1 = hline(oversold, title="Oversold Level", color=white)
//i2 = hline(overbought, title="Overbought Level", color=white)
//fill(i1, i2, color=olive, transp=100)
// === LOGIC ===
enterLongMrsi = crossover(ma1, oversold)
exitLongMrsi = crossover(ma1, overbought)
// Entry //
strategy.entry(id="MRSI Long Entry", long=true, when=window() and enterLongMrsi)
strategy.entry(id="MRSI Short Entry", long=false, when=window() and exitLongMrsi)
//hline(50, title="50 Level", color=white)