Strategie für die Zeitframe-Verfolgung von Momentum

Schriftsteller:ChaoZhang, Datum: 2024-02-01 10:21:09
Tags:

img

Übersicht

Diese Strategie kombiniert die 123 Umkehrung und MACD-Indikatoren, um zeitlichen Momentum-Tracking zu erreichen. Die 123 Umkehrung bestimmt kurzfristige Trendumkehrpunkte, und der MACD bestimmt mittelfristige und langfristige Trends. Die Kombination erzeugt lange / kurze Signale, die mittelfristige und langfristige Trends verriegeln und gleichzeitig kurzfristige Umkehrungen erfassen.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

  1. 123 Umkehrteil: er erzeugt Kauf/Verkauf-Signale, wenn die letzten beiden Kerzen einen Höchststand/Trop bilden UND der Stochastics-Oszillator unter/über 50 liegt.

  2. MACD-Teil: er erzeugt Kaufsignale, wenn die MACD-Linie über die Signallinie kreuzt, und Verkaufssignale, wenn sie darunter kreuzt.

Das letzte Signal wird ausgelöst, wenn sich beide Parteien auf die Richtung des Handels einigen.

Analyse der Vorteile

Die Strategie kombiniert kurzfristige Umkehrungen mit mittelfristigen und langfristigen Trends, so dass sie Trendbewegungen festhalten kann.

Die Parameter können auch so eingestellt werden, dass sie Umkehr- und Trendsignale für verschiedene Marktbedingungen ausgleichen.

Risikoanalyse

Die Strategie hat eine gewisse Zeitverzögerung, insbesondere bei längeren MACD-Perioden, was zu fehlenden kurzfristigen Bewegungen führen kann.

Die Verkürzung der MACD-Periode oder das Hinzufügen von Stops können zur Risikokontrolle beitragen.

Optimierungsrichtlinien

Möglichkeiten zur Optimierung der Strategie:

  1. Abstimmen Sie die Umkehrparameter auf 123, um die Umkehr zu verbessern.

  2. Die MACD-Parameter werden angepasst, um eine bessere Identifizierung des Trends zu ermöglichen.

  3. Hinzufügen von Filtern mit anderen Indikatoren zur Verbesserung der Leistung.

  4. Hinzufügen von Stop-Loss zur Risikokontrolle.

Schlussfolgerung

Die Strategie kombiniert Parameter über Zeitrahmen hinweg zusammen mit mehreren technischen Indikatoren für die zeitliche Dynamikverfolgung, die die Vorteile von Umkehr- und Trend-Nachfolgungsstrategien ausgleicht. Parameter-Tuning und mehr Indikatoren oder Stopps können sie weiter optimieren.


/*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 )

Mehr