Handelsstrategie basierend auf adaptivem gleitendem Durchschnitt und Trendausbruch


Erstellungsdatum: 2023-09-19 15:49:37 zuletzt geändert: 2023-09-19 15:49:37
Kopie: 0 Klicks: 793
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie beurteilt den Eintritt, indem sie sich an die Moving Averages und Trendlinien anpasst, und entscheidet über den Ausstieg anhand des RSI. Ihr Ziel ist es, in den Markt einzutreten, wenn die Trendbedingungen erfüllt sind, und sich in überkauften Gebieten auszuhalten, während Sie kontrollieren, dass nur einmal pro Monat gehandelt wird.

Strategieprinzip

  1. Der Adaptive Moving Average mit einer Länge von 99 Jahren wird verwendet, um die allgemeine Trendrichtung zu bestimmen.

  2. Lokaler Peak mit einer berechneten Länge von 14, der als Drucklinie auf der Strecke dargestellt wird

  3. Wenn der Schlusskurs über den Kurs geht und im aktuellen Monat noch keine Bestellungen vorliegen, wird ein zusätzlicher Einstieg getätigt

  4. Berechnen Sie den 14-Zyklus-RSI, wenn der RSI über 70 (überkauft) ist, und legen Sie den Stop

  5. Verfolgen Sie den Monat der letzten Eingabe und stellen Sie sicher, dass Sie nur einmal im Monat handeln

Analyse der Stärken

  1. Adaptive Moving Averages können Trends dynamisch verfolgen

  2. Kombination mit Trendlinie-Break kann die Einstiegsgenauigkeit verbessern

  3. RSI-Indikatoren helfen bei Überkauf und Überverkauf und kontrollieren Risiken in Echtzeit

  4. Einmal im Monat zu handeln reduziert die Häufigkeit und die Gebühren

  5. Regeln sind einfach, klar und leicht zu verstehen und umzusetzen

Risikoanalyse

  1. Fehlgelegte Parameter können dazu führen, dass man einen besseren Einstiegspunkt verfehlt.

  2. Die Fix-Output-Indikatoren können nicht mit den Marktveränderungen mithalten.

  3. Ein gewisses Risiko für Rücktritte

  4. Nicht in der Lage, Risiken bei langfristigen Positionen zu kontrollieren

  5. Zu viele Filterbedingungen können zu einer Unzulässigkeit führen

Optimierungsrichtung

  1. Verschiedene Parameter-Einstellungen testen, um die optimale Parameter zu finden

  2. Hinzufügen von weiteren Filterindikatoren zur Steigerung der Strategie

  3. Entwicklung von dynamischen Stop-Loss- und Tracking-Strategien

  4. Optimierung der Eintrittslogik und Identifizierung stärkerer Durchbrüche

  5. Die Variante und die Periodiparameter, die für die Prüfung gelten

  6. Kombination von Trendindikatoren mit Filter für falsche Durchbruchsignale

Zusammenfassen

Die Strategie integriert Trendanalysen und Überkauf-Überverkauf-Indikatoren und ermöglicht eine relativ stabile Trendverfolgung. Durch weitere Optimierung der Parameter-Einstellungen, dynamische Ausstiegsmechanismen usw. kann sie zu einem zuverlässigen quantitativen Handelssystem werden. Insgesamt ist die Strategie sehr einfach zu bedienen und lohnt sich weiter zu verbessern und zu überprüfen.

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