Stan The Man - Une stratégie avancée de négociation d'actions basée sur une moyenne mobile et une volatilité doubles

Auteur:ChaoZhang est là., Date: 2023-12-20 14:54:41 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie utilise un double système de moyenne mobile et un indice de force relative, combiné à la volatilité historique du stock, pour automatiser les signaux d'achat et de vente pour le trading d'actions.

La logique de la stratégie

La stratégie tire parti de la moyenne mobile de 150 semaines et de la moyenne mobile rapide de 50 jours pour former un système de MA double. Elle utilise également une MA ultra-rapide de 20 jours. Lorsque le prix dépasse la moyenne mobile de 150 semaines, cela indique un début de tendance haussière. Lorsque le prix dépasse la moyenne mobile de 50 jours, cela indique une tendance baissière. Cela nous permet d'acheter en hausse et de vendre en baisse.

En outre, la stratégie utilise également le prix le plus élevé annualisé basé sur la volatilité et l'indice de force relative pour déterminer des points d'entrée spécifiques.

Les avantages

  1. Le double système MA permet d'identifier efficacement les changements de tendance pour poursuivre la hausse et arrêter la baisse.

  2. La mesure de la volatilité et le RSI nous aident à ne pas nous faire piéger sur les marchés.

  3. La MA rapide de 20 jours permet un stop loss plus rapide.

Les risques

  1. Il y a un certain retard, incapable de réaliser un stop loss rapidement.

  2. Aucun stop loss n'est défini, cela pourrait entraîner de grosses pertes.

  3. Manque d'optimisation des paramètres, paramètres définis plutôt arbitrairement.

Pour atténuer les risques, un stop loss peut être ajouté, ou utiliser des multiples d'ATR comme pourcentage de stop loss.

Des possibilités d'amélioration

  1. Ajouter un mécanisme de stop loss
  2. Trouver les paramètres optimaux par l'optimisation
  3. Pensez à ajouter d' autres filtres comme le volume
  4. On pourrait le construire en un modèle multifactoriel avec plus de facteurs

Résumé

En résumé, il s'agit d'une stratégie d'investissement d'actions plutôt conservatrice. Utilisant un système de double MA pour mesurer la tendance globale, combiné à des mesures de volatilité et de force à l'entrée dans le temps, il peut filtrer efficacement les fausses ruptures. Le MA rapide permet également des sorties rapides. Cependant, la stratégie peut être encore améliorée en ajoutant un stop loss, une optimisation des paramètres, etc. Dans l'ensemble, elle convient aux investisseurs d'actions à long terme.


/*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)

Plus de