Profitez de la stratégie de tendance

Auteur:ChaoZhang est là., Date: le 26 septembre 2023 11:22:04
Les étiquettes:

Résumé

La stratégie Take Profit on Trend vise à détecter les tendances à long terme et les retombées à court terme, en prenant des positions longues pendant les tendances globales à la hausse tout en capturant les baisses à court terme, avec des niveaux de stop loss et de profit raisonnables définis pour suivre la tendance et réaliser des bénéfices en temps opportun.

La logique de la stratégie

La stratégie utilise principalement l'EMA et le RSI pour déterminer les tendances à long terme et à court terme. Plus précisément, elle utilise l'EMA de 50 jours et l'EMA de 200 jours pour juger des tendances à long terme et le RSI pour mesurer la force de la tendance.

Après avoir entré dans une position, la stratégie définit des conditions de stop loss et de take profit. Lorsque le prix augmente de plus de 2x unités BHD au-dessus du prix d'entrée, les bénéfices sont pris. Lorsque le prix tombe de plus de 3x unités BHD en dessous du prix d'entrée, la position est arrêtée. L'unité BHD est calculée en fonction de l'amplitude des 200 derniers chandeliers.

De cette façon, la stratégie tient pleinement compte des caractéristiques de tendance à long et à court terme, en augmentant les bénéfices tout en contrôlant les risques, en suivant la tendance tout en réalisant des bénéfices en temps opportun.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Considère les tendances à long et à court terme, combinées à des indicateurs de force, évite les entrées aveugles sur des marchés variés.

  2. Les entrées suivent la tendance, taux de victoire plus élevé.

  3. Les points de prise de profit et de stop loss permettent une prise de profit et un contrôle des risques en temps opportun.

  4. TP et SL sont dynamiques, basées sur la volatilité, relativement raisonnables.

  5. Les tests antérieurs montrent de bons rendements et de la stabilité à travers les symboles et les délais.

  6. Une logique simple et claire, facile à comprendre et à mettre en œuvre pour tous les niveaux de compétences.

Analyse des risques

La stratégie comporte également certains risques:

  1. Une erreur de jugement à long terme ou à court terme conduisant à une mauvaise direction d'entrée.

  2. Des chutes de marché de type falaise peuvent pénétrer les arrêts.

  3. Un mauvais paramètre affecte négativement les performances.

  4. Le TP est trop serré, il peut sortir prématurément.

  5. Le backtest ≠ les performances en direct, une optimisation continue est nécessaire.

Les solutions:

  1. Optimiser les paramètres, ajuster les périodes de validation, ajouter des indicateurs de validation croisée.

  2. Des arrêts plus larges, des mesures de position, d'autres contrôles de risque.

  3. Des tests antérieurs pour évaluer les paramètres.

  4. Optimisation dynamique des TP en fonction des conditions du marché.

  5. Tests en cours, optimisation, réglage en direct.

Directions d'optimisation

La stratégie peut être encore optimisée par:

  1. Paramètre de réglage, périodes MA, périodes unités BHD, etc.

  2. Ajout d'indicateurs, MACD, KD, etc. pour une meilleure précision à court terme.

  3. Optimisation du TP/SL, taille dynamique basée sur la volatilité, etc.

  4. Ajout d'un dimensionnement des positions basé sur la force de la tendance.

  5. Je teste la robustesse sur plus de symboles et de délais.

  6. Ajout de filtres comme prix de clôture > ouvert pour éviter les pièges.

  7. Incorporer l'apprentissage automatique pour une automatisation et une intelligence accrues.

Ils peuvent améliorer le taux de réussite, le rendement, la stabilité, l'adaptabilité, etc.

Conclusion

Dans l'ensemble, la stratégie Take Profit on Trend présente les avantages de considérer les tendances longues/courtes, les tendances suivantes, le TP/SL clair. C'est une approche de suivi de tendance stable et efficace. Mais des risques existent, nécessitant une optimisation continue et un ajustement en direct. La logique est claire et facile à mettre en œuvre. Il vaut la peine d'étudier et d'appliquer pour les traders. Avec une optimisation ultérieure, elle peut devenir une stratégie quantitative robuste.


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))


Plus de