Stratégie DCA de retournement de fin de mois


Date de création: 2023-10-08 16:12:29 Dernière modification: 2023-10-08 16:12:29
Copier: 1 Nombre de clics: 734
1
Suivre
1617
Abonnés

Aperçu

Le but de cette stratégie est d’identifier l’extrémité d’une tendance à la baisse à court terme d’un actif et d’investir un montant fixe à ce point pour acheter l’actif. Ainsi, après le début du retournement de l’actif, l’investissement fixe peut être effectué à un prix de coût inférieur.

Le principe

La stratégie est basée sur le fonctionnement d’un fuseau horaire mensuel. Il y a 240 lignes K d’une heure par mois pour déterminer le moment où la tendance est inversée.

Plus précisément, la stratégie consiste à calculer la différence entre l’EMA rapide et l’EMA lente._Le CD et l’EMA_Le signal de la CD, lorsqu’il traverse le signal sur la ligne rapide, détermine la fin d’une tendance baissière à court terme et émet un signal d’achat.

Après l’émission du signal d’achat, la stratégie se stabilise à la fin du mois. Puis, le mois suivant, le processus est répété, avec des achats réguliers et une tenue d’un mois.

Cela nous permettra de baisser la pression à la fin d’une baisse à court terme et de fixer nos investissements.

Les avantages

Le plus grand avantage de cette stratégie est qu’elle permet de filtrer les chocs et d’acheter uniquement au moment où la tendance est inversée, ce qui permet de fixer l’investissement à un prix avantageux.

En outre, l’EMA peut être utilisée pour déterminer le point de retournement de tendance, ce qui est plus stable et plus précis que le simple retour de la ligne K. L’EMA peut compenser l’impact du bruit du marché à court terme sur le moment d’achat.

Enfin, la mise en place d’un stop loss à la fin du mois permet de verrouiller le rendement de l’investissement sur un mois, limitant ainsi la perte maximale d’un mois.

Les risques

Le plus grand risque de cette stratégie est que les prix continuent de baisser après l’achat, ce qui entraîne des pertes de stop loss à la fin de l’année.

Le jugement peut être optimisé en ajustant les paramètres de la période EMA ou en combinant avec d’autres indicateurs tels que le RSI pour confirmer le signal de revers.

Un autre risque est la mise en place d’un point d’arrêt. Un point d’arrêt trop petit est plus susceptible d’être arrêté par des fluctuations à court terme, un point d’arrêt trop grand ne limite pas les pertes. Il faut tester différents points d’arrêt pour trouver les paramètres optimaux.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimiser les paramètres de l’EMA cyclique pour trouver la combinaison optimale de paramètres permettant de déterminer le renversement de tendance

  2. Ajouter des filtres sur d’autres indicateurs, tels que le RSI, pour confirmer les signaux de revers

  3. Tester différents points de stop pour trouver les meilleures positions de stop qui limitent les pertes et ne sont pas arbitragées

  4. On peut envisager d’ajouter un stop mobile sur une base de stop, en ajustant la position de stop en temps réel en fonction du prix

  5. On peut tester différentes périodes de temps, comme le jour, la circonférence, pour voir quelle période fonctionne le mieux.

Résumer

L’idée générale de cette stratégie est claire et simple, elle permet de juger le renversement de la tendance à court terme à l’aide de l’indicateur EMA et de fixer l’investissement à la fin du point de renversement, ce qui permet de filtrer efficacement les marchés de choc et d’investir à un prix inférieur. L’espace d’optimisation de la stratégie se situe principalement dans l’optimisation des paramètres et l’ajustement de la stratégie de stop loss.

Code source de la stratégie
/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 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            = 'DCA After Downtrend',
//  title                 = 'DCA After Downtrend (by BHD_Trade_Bot)',
//  overlay               = true,
//  calc_on_every_tick    = true,
//  calc_on_order_fills   = true,
//  use_bar_magnifier     = true,
//  pyramiding            = 100,
//  initial_capital       = 0,
//  default_qty_type      = strategy.cash,
//  default_qty_value     = 1000,
//  commission_type       = strategy.commission.percent,
//  commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2017)
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)

window() => true



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

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

// Count n candles after x long entries
var int nPastCandles = 0
var int entryNumber = 0
nPastCandles := nPastCandles + 1



// ENTRY CONDITIONS

// 8 hours per day => 240 hours per month
entry_condition1 = nPastCandles > entryNumber * 240

// End of downtrend
entry_condition2 = ta.crossover(emacd, emacd_signal)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


if ENTRY_CONDITIONS and window()
    entryNumber := entryNumber + 1
    entryId = 'Long ' + str.tostring(entryNumber)
    strategy.entry(entryId, strategy.long)
    
    

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast

if CLOSE_CONDITIONS
    strategy.close_all()


    
// Draw
plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)