Stratégie de suivi de l'élan à travers les délais

Auteur:ChaoZhang est là., Date: 2024-02-01 10:21:09 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie combine l'inversion 123 et les indicateurs MACD pour obtenir un suivi de l'élan transversal. L'inversion 123 détermine les points d'inversion de tendance à court terme, et le MACD détermine les tendances à moyen et long terme.

La logique de la stratégie

La stratégie se compose de deux parties:

  1. 123 partie d'inversion: il génère des signaux d'achat/vente lorsque les deux derniers chandeliers forment un pic/trou ET que l'oscillateur stochastique est inférieur/supérieur à 50.

  2. Partie MACD: elle génère des signaux d'achat lorsque la ligne MACD traverse au-dessus de la ligne de signal, et des signaux de vente lorsqu'elle traverse en dessous.

Le signal final est déclenché lorsque les deux parties s'accordent sur la direction du commerce.

Analyse des avantages

La stratégie combine des renversements à court terme et des tendances à moyen et long terme, ce qui lui permet de localiser les mouvements de tendance.

Les paramètres peuvent également être ajustés pour équilibrer les signaux d'inversion et de tendance pour différentes conditions de marché.

Analyse des risques

La stratégie a un certain décalage de temps, en particulier avec des périodes MACD plus longues, ce qui peut entraîner des mouvements manquants à court terme.

Le raccourcissement de la période MACD ou l'ajout d'arrêts peuvent aider à contrôler les risques.

Directions d'optimisation

Des moyens possibles d'optimiser la stratégie:

  1. Ajustez les paramètres de retour pour améliorer les retours.

  2. Ajustez les paramètres MACD pour améliorer l'identification des tendances.

  3. Ajouter des filtres avec d'autres indicateurs pour améliorer les performances.

  4. Ajouter un stop loss au contrôle des risques.

Conclusion

La stratégie combine des paramètres à travers les délais ainsi que de multiples indicateurs techniques pour le suivi de l'élan à travers les délais, en équilibrant les avantages des stratégies d'inversion et de suivi des tendances.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// MACD – Moving Average Convergence Divergence. The MACD is calculated 
// by subtracting a 26-day moving average of a security's price from a 
// 12-day moving average of its price. The result is an indicator that 
// oscillates above and below zero. When the MACD is above zero, it means 
// the 12-day moving average is higher than the 26-day moving average. 
// This is bullish as it shows that current expectations (i.e., the 12-day 
// moving average) are more bullish than previous expectations (i.e., the 
// 26-day average). This implies a bullish, or upward, shift in the supply/demand 
// lines. When the MACD falls below zero, it means that the 12-day moving average 
// is less than the 26-day moving average, implying a bearish shift in the 
// supply/demand lines.
// A 9-day moving average of the MACD (not of the security's price) is usually 
// plotted on top of the MACD indicator. This line is referred to as the "signal" 
// line. The signal line anticipates the convergence of the two moving averages 
// (i.e., the movement of the MACD toward the zero line).
// Let's consider the rational behind this technique. The MACD is the difference 
// between two moving averages of price. When the shorter-term moving average rises 
// above the longer-term moving average (i.e., the MACD rises above zero), it means 
// that investor expectations are becoming more bullish (i.e., there has been an 
// upward shift in the supply/demand lines). By plotting a 9-day moving average of 
// the MACD, we can see the changing of expectations (i.e., the shifting of the 
// supply/demand lines) as they occur.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

MACD(fastLength,slowLength,signalLength) =>
    pos = 0.0
    fastMA = ema(close, fastLength)
    slowMA = ema(close, slowLength)
    macd = fastMA - slowMA
    signal = sma(macd, signalLength)
    pos:= iff(signal < macd , 1,
	       iff(signal > macd, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & MACD Crossover", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
fastLength = input(8, minval=1)
slowLength = input(16,minval=1)
signalLength=input(11,minval=1)
xSeria = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMACD = MACD(fastLength,slowLength, signalLength)
pos = iff(posReversal123 == 1 and posMACD == 1 , 1,
	   iff(posReversal123 == -1 and posMACD == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Plus de