TRAMA – Doppelter gleitender Durchschnitt – Crossover – intelligente quantitative Handelsstrategie

SMA TRAMA
Erstellungsdatum: 2024-11-29 15:25:13 zuletzt geändert: 2024-11-29 15:25:13
Kopie: 0 Klicks: 663
1
konzentrieren Sie sich auf
1617
Anhänger

TRAMA – Doppelter gleitender Durchschnitt – Crossover – intelligente quantitative Handelsstrategie

Überblick

Die Strategie kombiniert die Erzeugung von Handelssignalen durch zwei Gleichgewichtssysteme und bietet einen Stop-Loss-Mechanismus zur Risikokontrolle. Die Strategie verwendet 4-Zyklus- und 28-Zyklus-SMA-Kreuzungen sowie die TRAMA-Indikator, um Handelssignale zu bestätigen und die Genauigkeit der Transaktionen durch mehrere Signalbestätigungen zu verbessern.

Strategieprinzip

Die Strategie verwendet zwei Kernkomponenten, um Handelssignale zu erzeugen. Zuerst basiert die Strategie auf einem Kreuzungssystem mit 4- und 28-Zyklus-SMA, das mehrere Signale erzeugt, wenn die kurzfristige Durchschnittslinie die langfristige Durchschnittslinie aufwärts durchquert, und ein Abbruchsignal, wenn sie nach unten durchquert. Als nächstes wird der TRAMA-Indikator als Hilfsbestätigungssystem eingeführt.

Strategische Vorteile

  1. Dual-Signal-Bestätigungsmechanismen erhöhen die Zuverlässigkeit von Transaktionen erheblich
  2. Der TRAMA-Indikator ist in der Lage, Veränderungen der Markttrends schneller zu erfassen
  3. Risikokontrollmechanismen, um Geld durch Stop Loss zu schützen
  4. Die Strategielogik ist klar, leicht zu verstehen und aufrechtzuerhalten
  5. Die Möglichkeit, gleichzeitig mehrfach in zwei Richtungen zu handeln, erhöht die Gewinnchancen

Strategisches Risiko

  1. In einem turbulenten Markt könnte es zu viele Handelssignale geben.
  2. Ein fester Stop-Loss-Ratio ist möglicherweise nicht für alle Marktbedingungen geeignet.
  3. Kurzfristige Durchschnittskurve könnte empfindlicher auf Preislärm reagieren
  4. Das Risiko eines Ausrutsches in einem stark schwankenden Markt
  5. Die Auswirkungen von Transaktionskosten auf die Strategie-Performance müssen berücksichtigt werden

Richtung der Strategieoptimierung

  1. Einführung eines Stop-Loss-Mechanismus, der sich an die Volatilität anpasst
  2. Hinzufügen von Marktumfeldfiltern und Anpassung der Strategieparameter an unterschiedliche Marktbedingungen
  3. Optimierung von TRAMA-Parametern mit Hilfe von Adaptionszyklen
  4. Hinzufügen von Messungen zur Bestätigung von Transaktionen, um die Signalsicherheit zu erhöhen
  5. Erwägen Sie die Verwendung von Trendstärkenfiltern und vermeiden Sie den Handel in schwachen Trends

Zusammenfassen

Es ist eine Strategie, die traditionelle technische Analyse und moderne quantitative Trading-Konzepte kombiniert. Die Strategie zeigt eine gute Praxis durch Multi-Signal-Erkennung und strenge Risikokontrolle. Obwohl es einige Optimierungsmöglichkeiten gibt, ist die Gesamtkonzeption des Rahmens vernünftig und hat gute Anwendungschancen.

Strategiequellcode
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ivanvallejoc

//@version=5
strategy("MANCOS2.0", overlay=true, margin_long=80, margin_short=80)

longCondition = ta.crossover(ta.sma(close, 4), ta.sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 4), ta.sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

// Parámetros de la TRAMA
length = input(1.5, title="TRAMA Length")
src = close
filt = 2 / (length + 1)
trama = 0.0
var tramaPrev = na(trama[1]) ? close : trama[1]
trama := (src - tramaPrev) * filt + tramaPrev

// Plot de la TRAMA
plot(trama, color=color.blue, linewidth=2, title="TRAMA")

// Señales de compra y venta basadas en TRAMA
buySignal = ta.crossover(close, trama)
sellSignal = ta.crossunder(close, trama)

// Configuración de Take Profit y Stop Loss
takeProfitPerc = input(2, title="Take Profit (%)") / 100
stopLossPerc = input(1, title="Stop Loss (%)") / 100

// Precios de TP y SL
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc)

// Condiciones de entrada en largo
if (buySignal)
    strategy.entry("Long", strategy.long)

// Condiciones de salida para posición larga (TP/SL)
if (strategy.position_size > 0)
    strategy.exit("TP/SL", "Long", limit=takeProfitPrice, stop=stopLossPrice)

// Entrada en corto basada en TRAMA
if (sellSignal)
    strategy.entry("Short", strategy.short)

// Precios de TP y SL para posiciones cortas
takeProfitPriceShort = strategy.position_avg_price * (1 - takeProfitPerc)
stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPerc)

if (strategy.position_size < 0)
    strategy.exit("TP/SL", "Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)