Trendbreakout-Strategie auf der Grundlage von Adaptive MA und Trendlinien

Schriftsteller:ChaoZhang, Datum: 2023-09-19 15:49:37
Tags:

Übersicht

Diese Strategie verwendet einen anpassungsfähigen gleitenden Durchschnitt und Trendline-Breakouts für Eintritte und RSI für Ausgänge.

Strategie Logik

  1. Berechnet die Adaptive MA für 99-Zeiträume zur Ermittlung des Gesamttrends.

  2. Berechnet 14-Perioden-Lokale Höchststände für den oberen Trendwiderstand.

  3. Wird lang, wenn der Trend über der Trendlinie liegt und keine Bestellung in diesem Monat.

  4. Berechnet den 14-Perioden-RSI und geht bei einem RSI über 70 (überkauft) aus.

  5. Der letzte Eintrittsmonat wird verfolgt, um einen Handel pro Monat sicherzustellen.

Analyse der Vorteile

  1. Adaptive MA verfolgt dynamisch Trendänderungen.

  2. Trendline-Ausbrüche verbessern die Einstiegsgenauigkeit.

  3. Der RSI beurteilt effektiv Überkauf/Überverkaufswerte zur Risikokontrolle.

  4. Ein Handel pro Monat reduziert die Häufigkeit und die Gebühren.

  5. Einfache und klare Logik, leicht zu verstehen und umzusetzen.

Risikoanalyse

  1. Falsche Parameter können zu fehlenden Einträgen führen.

  2. Feste Ausgangsindikatoren können sich nicht rechtzeitig an die Märkte anpassen.

  3. Möglichkeit von Rücknahmen.

  4. Keine Risikokontrolle für längere Haltezeiten.

  5. Zu viele Filter können Einträge verhindern.

Optimierungsrichtlinien

  1. Versuche verschiedene Parameter für optimale Einstellungen.

  2. Fügen Sie Filter hinzu, um die Robustheit der Strategie zu verbessern.

  3. Entwickeln dynamischer und nachlassender Stoppstrategien.

  4. Optimieren Sie die Eingangslogik, um stärkere Ausbrüche zu erkennen.

  5. Test geeignete Instrumente und Zeitrahmen.

  6. Fügen Sie einen Trendfilter hinzu, um falsche Ausbrüche zu vermeiden.

Zusammenfassung

Diese Strategie integriert Trendanalyse und Oszillatoren für einen stetigen Trendfolgeneffekt. Weitere Optimierungen an Parametern, dynamischen Ausgängen usw. können es zu einem zuverlässigen Quantensystem machen. Insgesamt hat es eine gute Bedienbarkeit und lohnt sich zu verbessern und zu überprüfen.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Bannos Strategy', shorttitle='Bannos', overlay=true)

//The provided script is an indicator for TradingView written in Pine Script version 5. The indicator is used to determine entry and exit points for a trading strategy. Here's a detailed breakdown of what the script does:

// Strategy Definition:

// Bannos Strategy is the full name, with a short title Bannos.
// The overlay=true option indicates that the strategy will be overlayed on the price chart.
// Tracking Entry Month:

// A variable lastEntryMonth is set up to track the month of the last entry.
// currentMonth identifies the current month.
// Trend Regularity Adaptive Moving Average (TRAMA):

// It takes an input of length 99 as default.
// It uses adaptive calculations to track trend changes.
// Trendlines with Breaks:

// Identifies local peaks over a given period (in this case, 14) and calculates a slope based on these peaks.
// Relative Strength Index (RSI):

// Uses a length of 14 (default) to calculate the RSI.
// RSI is an oscillation indicator that indicates overbought or oversold conditions.
// Strategy Logic for Long Entry:

// A long position is opened if:
// The close price is above the TRAMA.
// There's a crossover of the close price and the upper trendline.
// The position is taken only once per month.
// Strategy Logic for Long Exit:

// The long position is closed if the RSI exceeds 70, indicating an overbought condition.
// Plotting:

// The TRAMA is plotted in red on the chart.
// A horizontal line is also drawn at 70 to indicate the RSI's overbought zone.
// In summary, this strategy aims to enter a long position when certain trend and crossover conditions are met, and close the position when the market is considered overbought as per the RSI. Additionally, it ensures entries only occur once a month.
//



// Variable pour suivre le mois de la dernière entrée
var float lastEntryMonth = na
currentMonth = month(time)

// Parameters for Trend Regularity Adaptive Moving Average (TRAMA)
length_trama = input(99)
src_trama = close
ama = 0.
hh = math.max(math.sign(ta.change(ta.highest(length_trama))), 0)
ll = math.max(math.sign(ta.change(ta.lowest(length_trama)) * -1), 0)
tc = math.pow(ta.sma(hh or ll ? 1 : 0, length_trama), 2)
ama := nz(ama[1] + tc * (src_trama - ama[1]), src_trama)

// Parameters for Trendlines with Breaks
length_trend = 14
mult = 1.0
ph = ta.pivothigh(length_trend, length_trend)
upper = 0.
slope_ph = 0.
slope_ph := ph ? mult : slope_ph
upper := ph ? ph : upper - slope_ph

// Parameters for RSI
rsiLength = 14
up = ta.rma(math.max(ta.change(close), 0), rsiLength)
down = ta.rma(-math.min(ta.change(close), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// Strategy Logic for Long Entry
longCondition = close > ama and ta.crossover(close, upper) and (na(lastEntryMonth) or lastEntryMonth != currentMonth)
if (longCondition)
    lastEntryMonth := currentMonth
    strategy.entry('Long', strategy.long)

// Strategy Logic for Long Exit
exitCondition = rsi > 70
if (exitCondition)
    strategy.close('Long')

// Plotting
plot(ama, 'TRAMA', color=color.red)
hline(70, 'Overbought', color=color.red)


Mehr