
Cette stratégie est basée sur la moyenne de la portée réelle (ATR) et l’indicateur de la tendance (DMI) sur la croix de l’indicateur de la tendance (DI +) et l’indicateur de la tendance négative (DI -). Cette stratégie appartient à la stratégie de suivi de la tendance, par la croix de DI + et DI - pour juger le point de basculement de la tendance, l’ATR est utilisé pour définir les prix de stop loss et stop loss.
Calculer l’ATR ((14): calculer la moyenne de la marge de fluctuation réelle en utilisant les hauts, les bas et les prix de clôture des 14 derniers jours
Calculer le DI+ et le DI-:
DI+ = 100 * RMA(MAX(UP,0),N) / ATNR
DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR
où UP est la différence entre le prix le plus élevé de la journée et le prix de clôture d’hier, DOWN est la différence entre le prix le plus bas de la journée et le prix de clôture d’hier, N est la longueur des paramètres, par défaut 14, ATNR est l’ATR obtenu par la précédente étape
Pour juger de l’achat et de la vente:
Lorsque DI+ est porté sur DI-, un signal d’achat est généré
Lorsque DI+ passe sous DI-, un signal de vente est généré
Réglage du stop-loss:
Le stop multiple est le prix d’entrée moins l’ATR multiplié par le multiple de stop
Le prix d’entrée est multiplié par l’ATR multiplié par le nombre d’arrêts.
Le prix d’entrée du billet est le stop-loss multiplié par l’ATR.
Le prix d’arrêt est le prix d’entrée moins l’ATR multiplié par le multiple de l’arrêt.
L’utilisation de DI+ et de DI-Cross pour juger des points de changement de tendance permet de saisir rapidement les nouvelles directions de tendance
L’ATR est un indicateur de stop-loss dynamique qui permet de définir un stop-loss raisonnable en fonction de la volatilité du marché.
Moins de paramètres stratégiques, plus facile à comprendre et à mettre en œuvre
Les données de retracement montrent que la stratégie a un facteur de gain positif et a une meilleure performance que la stratégie de prise en main.
Le DI croisé présente un risque de transaction erronée
Le point d’arrêt est trop proche.
Le marché de l’immobilier ne peut pas gérer efficacement les fluctuations des tendances
Les risques de retrait
Filtre les signaux croisés de DI avec des indicateurs tels que les moyennes mobiles pour éviter les erreurs de trading dans des conditions de choc
Augmentation des mécanismes de gestion des positions, tels que les quotas fixes et les martiges, pour contrôler les retraits et améliorer la rentabilité
Optimisation des paramètres ATR pour que le stop-loss soit plus adapté à la gamme de fluctuations des différentes variétés de transactions
Optimiser les paramètres pour trouver la meilleure combinaison de paramètres, comme les cycles DI, les cycles ATR et les multiples ATR
Augmentation de la logique de jugement des transactions pour les niveaux de nuit et de matin, permettant une stratégie de fonctionnement 24 heures sur 24
Cette stratégie est globalement simple et pratique, elle détermine le moment de l’achat et de la vente par le croisement de DI et définit le stop loss avec l’ATR. Le nombre de paramètres de la stratégie est réduit, il est facile à tester et à vérifier en direct, et il est pratique d’optimiser les ajustements.
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
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/
// © TheHulkTrading
//@version=4
strategy("DI Crossing Daily Straregy HulkTrading", overlay=true)
// ATR Multiplier. Recommended values between 1..4
atr_multiplier = input(1, minval=1, title="ATR Multiplier")
//Length of DI. Recommended default value = 14
length = input(14, minval=1, title="Length di")
up = change(high)
down = -change(low)
range = rma(tr, 14)
//DI+ and DI- Calculations
di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range)
di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range)
//Long and short conditions
longCond = crossover(di_plus,di_minus)
shortCond = crossunder(di_plus,di_minus)
//Stop levels and take profits
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14)
//Entries and exits
strategy.entry("Long", strategy.long, when=longCond)
strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond)
strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)