
La stratégie de randomisation des indices bi-homogènes est une stratégie qui tente d’utiliser une combinaison d’indicateur homogène et d’indicateur aléatoire pour trouver des opportunités de trading. Elle génère un signal de transaction lorsqu’elle traverse un SMA lent sur une EMA rapide, tout en utilisant la valeur K de l’indicateur aléatoire pour déterminer s’il y a un surachat ou une survente pour éliminer certains signaux.
La stratégie est basée sur deux indicateurs techniques:
Ligne moyenne: calcul de la moyenne des trois paramètres différents: EMA rapide, SMA lente et VWMA lente, qui génère un signal de transaction lorsque l’EMA rapide est passée au-dessus ou au-dessous de la SMA lente.
Indicateur aléatoire: calcul de la valeur de %K, lorsque celle-ci dépasse le seuil de zone de survente ou de zone de survente, en supposant que la tendance pourrait s’inverser et en éliminant une partie du signal de négociation de la ligne moyenne.
En bref, la logique du signal stratégique est la suivante:
Faire plus lorsque l’EMA rapide traverse la SMA lente et que le %K est inférieur au seuil de la zone de survente. Faire plus lorsque l’EMA rapide traverse la SMA lente et que le %K est supérieur au seuil de la zone de survente.
Pour les positions ouvertes, la position est levée si la valeur de K% est réentrée dans la zone de survente ou si le prix a franchi la limite de rupture. Pour les positions ouvertes, la position est levée si la valeur de K% est réentrée dans la zone de survente ou si le prix a franchi la limite de rupture.
En combinant des indicateurs homogènes et des indicateurs aléatoires, la stratégie tente d’émettre un signal d’entrée à un point de signal homogène à haute probabilité, tout en exploitant les chances de mauvaise entrée de la partie filtrée des indicateurs aléatoires.
La stratégie présente les principaux avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
La stratégie peut être optimisée principalement dans les domaines suivants:
La stratégie de randomisation à deux lignes permet de suivre les tendances de manière plus stable en combinant les indicateurs de la ligne moyenne rapide et lente avec les indicateurs aléatoires. Cependant, il existe des possibilités d’optimisation, telles que la sélection des paramètres, les méthodes de stop-loss, etc. Si davantage d’indicateurs de jugement et d’optimisation sont introduits, la stratégie devrait obtenir des gains supplémentaires plus stables.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("TVIX MEAN REV V2 TREND", overlay=true)
length = input(16, minval=1)
OverBought = input(80)
OverSold = input(20)
TradeLong = input (true)
TradeShort = input (true)
OverBoughtClose = input(80)
OverSoldClose = input(20)
smoothK = 3
smoothD = 3
trail_points = input(50)
k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
k2 = sma(stoch(close, high, low, length), smoothK)
d2 = sma(k, smoothD)
// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval=close, title="Fast EMA Source")
maFastLength = input(defval=1, title="Fast EMA Period", minval=1)
// long Sma
maSlowSource = input(defval=close, title="Slow SMA Source")
maSlowLength = input(defval=100, title="Slow SMA Period", minval=1)
// longer Sma
maSlowerSource = input(defval=close, title="Slower SMA Source")
maSlowerLength = input(defval=30, title="Slower SMA Period", minval=1)
//ATR Stop Loss Indicator by Keith Larson
atrDays = input(7, "ATR Days Lookback")
theAtr = atr(atrDays)
atrModifier = input(5.0, "ATR Modifier")
//plot(atr * atrModifier, title="ATR")
LstopLoss = close - (theAtr * atrModifier)
SstopLoss = close + (theAtr * atrModifier)
// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)
// === PLOTTING ===
fast = plot(maFast, title="Fast MA", color=color.red, linewidth=2, style=plot.style_line, transp=30)
slow = plot(maSlow, title="Slow MA", color=color.green, linewidth=2, style=plot.style_line, transp=30)
slower = plot(maSlower, title="Slower MA", color=color.teal, linewidth=2, style=plot.style_line, transp=30)
// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
LongFilter = maFast > maSlow
ShortFilter = maSlow > maFast
BUY=crossover(k, d) and k < OverSold
SELL=crossunder(k, d) and k > OverBought
SELLCLOSE=crossover(k, d) and k < OverSoldClose
BUYCLOSE=crossunder(k, d) and k > OverBoughtClose
Open = open
if not na(k) and not na(d)
if crossover(k, d) and k < OverSold and LongFilter and TradeLong
strategy.entry("$", strategy.long, limit = Open, comment="Long")
strategy.close("$",when = crossunder(k, d) and k > OverBoughtClose or open < LstopLoss )
///strategy.close("$",when = open < LstopLoss )
if not na(k) and not na(d)
if crossunder(k, d) and k > OverBought and ShortFilter and TradeShort
strategy.entry("$1", strategy.short, limit = Open, comment="S")
strategy.close ("$1", when = crossover(k, d) and k < OverSoldClose or open > SstopLoss )
///strategy.close ("$1", when = open < SstopLoss)