
Cette stratégie est basée sur des indices bi-médianes et de force relative, associés à la volatilité historique des actions, permettant l’achat et la vente automatiques d’actions. L’avantage de la stratégie est la combinaison des lignes longues et courtes, permettant une gestion efficace des risques. Cependant, il existe une certaine marge d’amélioration, par exemple, l’ajout d’un mécanisme de stop-loss.
La stratégie utilise un système de double équilibre composé d’une moyenne linéaire de 150 semaines et d’une moyenne rapide de 50 jours, ainsi que d’une moyenne la plus rapide de 20 jours. Lorsque le prix franchit la ligne de 150 semaines, le cours est considéré comme en hausse et lorsque le prix franchit la ligne de 50 jours, il est considéré comme en baisse.
En outre, la stratégie utilise le prix le plus élevé de la volatilité annuelle et l’indicateur de force relative pour déterminer le moment précis de l’achat. Un signal d’achat n’est émis que lorsque le prix de clôture dépasse le prix le plus élevé calculé par la volatilité annuelle et que l’indicateur de force relative est positif.
Pour résoudre le risque, il est possible de définir un stop loss, ou d’utiliser le multiple de l’indicateur ATR comme amplitude de stop loss. En outre, il est possible d’optimiser les paramètres par un retour de test plus strict.
Cette stratégie est généralement une stratégie d’investissement en actions plus conservatrice. Elle utilise une double courbe pour juger des tendances principales et, combinée à la volatilité et à la force des indicateurs d’entrée, permet de filtrer efficacement les fausses ruptures. L’ajout d’une courbe rapide permet également de stopper les pertes plus rapidement.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap", title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)
//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)
fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)
fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)
monitorStrategy = close < close[20]
// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA and volume> 1.5* vol1
selltradecondition1 = close< 0.95 * fastEMA
selltradecondition2 = close< 0.90 * open
if (buytradecondition1)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
if (buytradecondition2)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
if (selltradecondition1)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
if (selltradecondition2)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price ",alert.freq_all)
//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")
plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)