Trendfolgestrategien basierend auf gleitenden Durchschnitten


Erstellungsdatum: 2024-01-18 12:23:59 zuletzt geändert: 2024-01-18 12:23:59
Kopie: 1 Klicks: 617
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgestrategien basierend auf gleitenden Durchschnitten

Überblick

Die Strategie basiert auf einer Trend-Tracking-Strategie, die auf einer durchschnittlichen Linie basiert. Sie nutzt die EMA-Gleichgewichte verschiedener Perioden, um mehrere Handelssignale zu erstellen und Trend-Tracking-Handlungen zu realisieren. Wenn der Preis unter die durchschnittliche Linie für längere Perioden fällt, wird nach und nach mehr gehandelt, um die durchschnittlichen Kosten für die Preise zu senken. Die Strategie setzt gleichzeitig Stop-Loss-Bedingungen und stoppt den Verlust, wenn die durchschnittliche Linie für kurze Perioden umschlägt, und sperrt den Gewinn.

Strategieprinzip

Die Strategie verwendet fünf EMA-Gehälter mit unterschiedlichen Perioden, um ein Handelssignal zu erstellen. Diese sind die 10-Tage-Gehälter, die 20-Tage-Gehälter, die 50-Tage-Gehälter, die 100-Tage-Gehälter und die 200-Tage-Gehälter.

Wenn der Preis unter der 20-Tage-Linie und über der 50-Tage-Linie ist, wird die erste Gruppe von Käufen ausgelöst; wenn der Preis unter der 50-Tage-Linie und über der 100-Tage-Linie ist, wird die zweite Gruppe von Käufen ausgelöst; wenn der Preis unter der 100-Tage-Linie und über der 200-Tage-Linie ist, wird die dritte Gruppe von Käufen ausgelöst; wenn der Preis unter der 200-Tage-Linie ist, wird die vierte Gruppe von Käufen ausgelöst. Die Anzahl der Käufe steigt auch allmählich an, und zwar qt1, qt2, qt3 und qt4.

Bei einem Verkauf verwendet die Strategie gleichzeitig zwei Arten von Stop-Loss-Bedingungen. Die erste Gruppe ist, wenn der Preis über der 10-Tage-Linie liegt und die 10-Tage-Linie über der anderen Durchschnittslinie liegt. Die zweite Gruppe ist, wenn der Preis unter der 10-Tage-Linie des Vortages liegt und die 10-Tage-Linie über der anderen Durchschnittslinie liegt.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass die automatische Verfolgung der Markttrends eine Long-Line-Haltung ermöglicht. Durch mehrere Gruppen von Kaufbedingungen und batchweise Einlagerungen können die Kaufkosten kontinuierlich gesenkt und die Überschüsse erzielt werden. Gleichzeitig wird das Preisrisiko eines einzelnen Kaufpunkts vermieden.

Die Strategie wurde auch optimiert, um die kurzfristigen Durchschnittswerte zu verfolgen, um schnell zu stoppen und Gewinne zu sichern. Dies vermeidet die Gefahr einer weiteren Ausweitung der Verluste.

Risikoanalyse

Die größte Gefahr für diese Strategie besteht darin, in einer langen Kurskorrektur festzuhalten. Ein Gleichgewichtssignal ist nicht zuverlässig, wenn die Großbörse in einem schwankenden oder abwärts gerichteten Kanal ist. Es ist möglich, weiterhin zu kaufen und Positionen zu halten und größere Verluste zu erleiden.

Ein weiterer Risikopunkt ist, dass die Mittellinie nicht immer genau ist. Kurzfristige Preisschwankungen oder Expansionsbewegungen können dazu führen, dass die Mittellinie falsche Signale sendet. Dies muss in Kombination mit anderen technischen Indikatoren überprüft und optimiert werden.

Optimierungsrichtung

Es kann in Erwägung gezogen werden, andere technische Indikatoren in die Kaufbedingungen aufzunehmen, wie z. B. Transaktionsvolumen, Bollinger Bands-Signale usw. Dies kann die Erfolgsrate des Kaufs weiter erhöhen.

In den Verkaufsbedingungen können auch Boll-Strecken oder wichtige Stützpunkte als zweite Stop-Line hinzugefügt werden. Dies kann unnötige kleine Stop-Lines reduzieren. Oder die mobile Stop-Funktion kann die Stop-Line in Echtzeit anpassen und die Gewinne weiter sperren.

Zusammenfassen

Die Strategie nutzt ein Gleichgewichtssystem, um Trends zu verfolgen. Durch Pyramidenpositionen kann der Gewinn aus Trends maximiert werden. Gleichzeitig werden Doppelstop-Bedingungen festgelegt, um die Sicherheit der Gelder zu schützen.

Strategiequellcode
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)