Il s’agit d’une stratégie de suivi de tendance basée sur la croisée des moyennes mobiles, combinée à la gestion de stop-loss et à l’effet de levier, qui vise à identifier les tendances sur plusieurs marchés et à maximiser les bénéfices.
La stratégie utilise le croisement des moyennes mobiles rapides et des moyennes mobiles lentes comme signal de négociation. Une position de tête multiple est prise lorsque la moyenne mobile rapide est traversée par la moyenne mobile rapide; une position de tête vide est prise lorsque la moyenne mobile rapide est traversée par la moyenne mobile lente.
Pour filtrer le bruit des transactions hors des principales tendances, la stratégie a également introduit la moyenne mobile sur 200 jours comme filtre de tendance. Un signal de transaction n’est émis que lorsque le prix est supérieur ou inférieur à la moyenne mobile sur 200 jours.
La stratégie utilise une stratégie de stop-loss pour les transactions intermédiaires. Après la transaction, un stop-loss et un stop-loss à proportion fixe sont définis, par exemple, le stop-loss est fixé à 1%, le stop-loss à 1%, et la position est levée lorsque le prix atteint le stop-loss ou le stop-loss.
Pour maximiser la rentabilité des transactions, la stratégie utilise le levier. Selon les caractéristiques des différents marchés, le ratio de levier approprié peut être choisi, par exemple 10 fois le levier.
L’un des avantages de la stratégie est qu’elle permet d’identifier les tendances sur de nombreux marchés, y compris les marchés des crypto-monnaies, des actions et des futures, élargissant ainsi l’applicabilité de la stratégie.
L’application de l’intersection rapide et moyenne et le filtrage de la tendance permettent de mieux identifier la direction de la tendance et d’obtenir un meilleur taux de victoire dans la tendance.
L’utilisation d’une stratégie de stop-loss intermédiaire permet de limiter les pertes individuelles à une plage acceptable, ce qui favorise la stabilité de la stratégie.
L’effet de levier peut augmenter les bénéfices des transactions et ainsi tirer le meilleur parti de la stratégie.
La conception de l’interface visuelle, l’utilisation de différentes couleurs d’arrière-plan pour identifier les marchés à plusieurs têtes et à vide, permet aux utilisateurs de juger de la situation actuelle du marché.
La stratégie est basée sur l’idée de la négociation tendancielle, qui réduit l’effet de la négociation dans un marché en perte de vitesse. La taille de la position doit être correctement contrôlée.
Le risque d’une arbitrage du stop-loss à taux fixe doit être adapté en fonction du marché.
L’effet de levier augmente la taille de la transaction et augmente le risque de la transaction. Le ratio d’effet de levier doit être contrôlé pour éviter de dépasser la plage de pertes acceptable.
Les moyennes mobiles sont elles-mêmes retardées, ce qui peut entraîner des problèmes de retard de signal de transaction.
Il est possible d’étudier la performance de la stratégie sous différentes combinaisons de paramètres, en choisissant la longueur de la ligne moyenne rapide et lente qui est la meilleure pour la combinaison de paramètres.
Il est possible de combiner d’autres indicateurs ou modèles comme signaux de filtrage pour améliorer l’exactitude de la stratégie. Par exemple, l’introduction d’un stop ATR, d’un indicateur RSI, etc.
Il est possible de développer des indicateurs de reconnaissance de tendances, tels que les indicateurs DC, afin d’améliorer encore la capacité de la stratégie à juger les tendances.
Les modèles d’apprentissage automatique peuvent être utilisés pour optimiser les signaux stratégiques et identifier les moments de transaction les plus efficaces.
On peut envisager d’ajuster dynamiquement l’amplitude du stop loss, en fonction de la volatilité et de la situation du marché, pour mettre en place un stop loss plus raisonnable.
Cette stratégie utilise globalement une méthode de suivi de la tendance plus scientifique et plus systématique, tout en s’appuyant sur des arrêts de perte et de levier pour contrôler les risques et maximiser les gains. Cette stratégie peut être largement utilisée dans de nombreux marchés, avec l’espoir d’obtenir des gains supplémentaires stables.
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
////////////////////////////////////////////////////////////////////////////////
// Bozz Strategy
// Developed for Godstime
// Version 1.1
// 11/28/2021
////////////////////////////////////////////////////////////////////////////////
//@version=4
// strategy("Bozz Strategy", "", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, margin_long=0, margin_short=0)
// ----------------------------- Inputs ------------------------------------- //
source_ma_type = input("EMA", "Source MA Type", options=["SMA", "EMA"])
source_ma_length = input(50, "Source MA Length")
fast_ma_length = input(20, "Fast MA Length")
slow_ma_length = input(50, "Slow MA Length")
use_trend_filter = input(true, "Trend Filter")
trend_filter_ma_type = input("EMA", "Trend Filter MA Type", options=["SMA", "EMA"])
trend_filter_ma_length = input(200, "Trend Filter MA Period")
show_mas = input(true, "Show MAs")
swing_trading_mode = input(false, "Swing Trading")
// -------------------------- Calculations ---------------------------------- //
fast_ma = ema(close, fast_ma_length)
slow_ma = ema(close, slow_ma_length)
source_ma = source_ma_type == "EMA"? ema(close, source_ma_length):
sma(close, source_ma_length)
trend_filter_ma = trend_filter_ma_type == "EMA"? ema(close, trend_filter_ma_length):
sma(close, trend_filter_ma_length)
// --------------------------- Conditions ----------------------------------- //
uptrend = not use_trend_filter or close > trend_filter_ma
buy_cond = crossover(fast_ma, slow_ma) and uptrend
downtrend = not use_trend_filter or close < trend_filter_ma
sell_cond = crossunder(fast_ma, slow_ma) and downtrend
// ---------------------------- Plotting ------------------------------------ //
bgcolor(use_trend_filter and downtrend? color.red: use_trend_filter? color.green: na)
plot(show_mas? fast_ma: na, "Fast MA", color.green)
plot(show_mas? slow_ma: na, "Slow MA", color.red)
plot(show_mas? source_ma: na, "Source MA", color.purple)
plot(show_mas? trend_filter_ma: na, "Trend Filter MA", color.blue)
// ---------------------------- Trading ------------------------------------ //
// Inputs
sl_perc = input(1.0, "Stop Loss (in %)", group="Backtest Control")/100
tp_perc = input(1.0, "Take Profit (in %)", group="Backtest Control")/100
leverage = input(10, "Leverage", maxval=100, group="Backtest Control")
bt_start_time = input(timestamp("2021 01 01"), "Backtest Start Time", input.time, group="Backtest Control")
bt_end_time = input(timestamp("2021 12 31"), "Backtest End Time", input.time, group="Backtest Control")
// Trading Window
in_trading_window = true
trade_qty = (strategy.equity * leverage) / close
// Long Side
strategy.entry("Long Entry", strategy.long, when=buy_cond and in_trading_window)
long_tp = strategy.position_avg_price * (1 + tp_perc)
long_sl = strategy.position_avg_price * (1 - sl_perc)
if not swing_trading_mode
strategy.exit("Long Exit", "Long Entry", limit=long_tp, stop=long_sl)
// Short Side
strategy.entry("Short Entry", strategy.short, when=sell_cond and in_trading_window)
short_tp = strategy.position_avg_price * (1 - tp_perc)
short_sl = strategy.position_avg_price * (1 + sl_perc)
if not swing_trading_mode
strategy.exit("Short Exit", "Short Entry", limit=short_tp, stop=short_sl)
// End of trading window close
strategy.close_all(when=not in_trading_window)