La stratégie est basée sur la formation de signaux de retracement sur les forks des moyennes mobiles des 5e et 78e jours, et vise à saisir les opportunités offertes par la rupture du momentum des cours de la courte ligne.
Calculer les moyennes mobiles pondérées de 3, 78 et 195 jours.
Le signal d’achat est émis lorsque la ligne 3 passe la ligne 195.
Quand la ligne 3 est au-dessus de la ligne 78 et la ligne 78 est au-dessus de la ligne 195, elle est considérée comme étant dans le canal de la tendance haussière et émet un signal d’achat.
Le 6 ATR est un dispositif d’arrêt dynamique qui émet un signal d’arrêt en dessous de l’arrêt.
Un signal d’arrêt est émis lorsque la ligne 3 redescend et traverse la ligne 195.
La combinaison de multiples équivalents de croix permet de filtrer efficacement les fausses percées.
Le réglage de l’arrêt dynamique pour éviter la réversion de l’arrêt.
La période moyenne de détention de chaque transaction est de seulement 2 heures, ce qui est approprié pour les transactions Momentum à courte durée.
Le maximum de retraits contrôlables est d’environ 20%.
Les paramètres de la moyenne fixe ne peuvent pas s’adapter aux changements du marché.
La période de validité de l’échantillon est d’un an, il est nécessaire d’élargir la stratégie de validation de l’échantillon.
Les paramètres de stop-loss doivent être optimisés pour contrôler les risques.
Les prix ont explosé et il n’y a rien à faire.
Les frais de service et les frais de dépôt peuvent être plus élevés.
Test de différents paramètres de la ligne moyenne, optimisation des combinaisons.
Optimiser les paramètres de stop loss et de stop loss pour équilibrer les gains et les risques.
Les conditions de sélection pour l’admission réduisent la probabilité d’être enfermé.
Optimisation de la gestion des positions et augmentation progressive des positions en fonction des tendances.
Test de variétés différentes et de périodes plus longues.
Pour la simulation de Monte Carlo, le maximum de retrait est évalué.
La stratégie utilise la ligne moyenne multiple fourches pour déterminer la tendance à la hausse des cours des actions, la mise en place de règles de stop-loss dynamique, et le test de retour fonctionne bien. Cependant, la stratégie a une durée de vie de l’échantillon court, la stabilité des paramètres doit être vérifiée et ne peut pas gérer le saut en l’air.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// © FinTasticTrading 2021/2/14
// This is a 5 day moving average crossing long strategy, used in short term momentum trading strategy.
// Momentum trading Strategy: When S&P 500 index is at up trend (or above 60 sma), buy 10+ stocks in top 20% stock RS ranking at equal weight using this MA5X_L strategy. Change stocks when any stock exited by algorithm.
// Back test start since 2020/7/1, each long entry for condition 1 is $30000, condition 2 is $20000, with max of 2 long positions.
// Setup: 10 minutes chart
// Buy condition 1) 3 wma cross up 180 wma (5day) 2) 3wma > 60wma > 180wma UP Trend Arrangement (UTA)
// Exit condition 1) 3 wma cross under 180 wma 2) position profit > 20% and 3 wma cross under 6 ATRs line (green)
//@version=4
strategy("MA5X_L", overlay=true, pyramiding=2,default_qty_type=strategy.cash, default_qty_value=100000)
s_len = input( 3 )
m_len = input( 78 ) // 2 day moving average
l_len = input( 195) // equal to 5 Day moving average
xl_len = input(390) // 10 day moving average
//Draw WMAs
s_ma = wma(close,s_len)
m_ma = wma(close,m_len)
l_ma = wma(close,l_len)
xl_ma = sma(close,xl_len)
plot(s_ma, color=color.yellow, linewidth=2)
plot(m_ma, color=color.fuchsia, linewidth=2)
plot(l_ma, color=color.blue, linewidth=2)
plot(xl_ma, color = color.gray, linewidth=2)
//ATR Stop Profit , length = 40 or 1 day
Periods = input(title="ATR Period", type=input.integer, defval=40)
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=6.0)
sl=hl2-(Multiplier*atr(Periods))
sl1 = nz(sl[1], sl)
sl := s_ma[1] > sl1 ? max(sl, sl1) : sl
plot(strategy.position_size > 0 ? sl:na, title="Stop Loss", style=plot.style_linebr, linewidth=2, color=color.green)
//Backtest since
condition100 = time>=timestamp(2020, 07, 01, 00, 00)
//Long Entry Condition 1 : s_ma Cross UP l_ma
if crossover(s_ma, l_ma) and condition100
strategy.entry("X Up", strategy.long, qty = 30000/close, comment="X Up")
//Long Entry Condition 2 : s_ma > m_ma > l_ma
condition31 = s_ma>m_ma and m_ma>l_ma
condition32 = condition31[1]==false and condition31 == true and condition100
strategy.entry("UTA", strategy.long, qty = 20000/close, when = condition32, comment="UTA")
//Long Exit Condition 1 : 3 wma cross under 180 wma
condition50 = crossunder(s_ma, l_ma)
strategy.close_all(when = condition50, comment="X Dn")
//Long Exit Condition 2 : position profit > 20% and 3 wma cross under 6 ATRs line (green)
strategy.close_all(when = crossunder(close,sl) and strategy.openprofit>30000*0.2, comment="Stop")