Die Ressourcen sind geladen. Beförderung...

Die Strategie basiert auf der Kreuzung von zwei gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-05-14 15:37:54
Tags:EMASMADEMATEMAWMAVWMA

基于双移动平均线交叉策略

Übersicht

Die Doppel-Moving-Average-Cross-Strategie ist eine häufig verwendete Quantitative-Trading-Strategie. Die Strategie verwendet zwei unterschiedlich periodische Moving-Averages als Kauf- und Verkaufssignale, wenn die kurzfristige Durchschnittslinie über die langfristige Durchschnittslinie verläuft, und verkauft, wenn die langfristige Durchschnittslinie über die langfristige Durchschnittslinie verläuft. Die Strategiecode unterstützt verschiedene gängliche Moving-Average-Typen, wie einfache Moving-Averages (SMA), Index-Moving-Averages (EMA), Doppel-Index-Moving-Averages (DEMA), Drei-Index-Moving-Averages (TEMA), Gewichtungs-Moving-Averages (WMA) und Handelsindizes (VWMA), und ermöglicht die flexible Auswahl von Kurz- und Langzeit-Moving-Averagen.

Die Strategie

Der Kern der Strategie besteht darin, die Trendmerkmale und die Verzögerung von zwei unterschiedlich zyklischen gleitenden Durchschnitten zu nutzen, um die Preisentwicklung zu erfassen. Im Allgemeinen sind kurzfristige Durchschnitte preisempfindlicher, während langfristige Durchschnitte relativ verzögerlich sind. Wenn der Preis im Aufwärtstrend ist, geht die kurzfristige Durchschnittslinie vor der langfristigen Durchschnittslinie nach oben und schließlich durch die langfristige Durchschnittslinie, um ein Kaufsignal zu erzeugen; wenn der Preis im Abwärtstrend ist, geht die kurzfristige Durchschnittslinie vor der langfristigen Durchschnittslinie nach unten und schließlich durch die langfristige Durchschnittslinie, um ein Verkaufssignal zu bilden.

Strategische Vorteile

  1. Einfach und einfach zu bedienen: Die doppelte schwebende Durchschnitts-Kreuzung ist eine einfache, verständliche, leicht umsetzbare, quantitative Trading-Strategie, die für Neuling-Trader geeignet ist, sie zu lernen und zu verwenden.

  2. Breite Anwendbarkeit: Die Strategie kann für verschiedene Finanzmärkte und Handelsindizes wie Aktien, Futures, Devisen, Kryptowährungen verwendet werden.

  3. Flexible Parameter: Der Strategiecode unterstützt verschiedene gängige Moving Average-Typen und Preis-Typen, und Benutzer können die Parameter flexibel anpassen, um sich an verschiedene Marktumgebungen und Handelsstile anzupassen.

  4. Trendverfolgung: Durch die Kreuzung von zwei unterschiedlichen periodischen Gleichlinien kann die Strategie die wichtigsten Preistrends besser erfassen und hilft, auf dem Bogen zu bleiben und Rückschläge zu vermeiden.

Strategische Risiken

  1. Verzögerung: Das gleitende Durchschnitt ist im Wesentlichen ein Trend-Tracking-Indikator, bei dem es eine gewisse Verzögerung gibt, die möglicherweise die besten Ein- und Ausstiegszeiten verpasst.

  2. Fehlwirkung in pulsierenden Märkten: In pulsierenden Märkten oder in horizontalen Rechnungslegungsmärkten sind hohe Preisschwankungen und häufige Gleichen-Kreuzungssignale möglich, was zu strategisch häufigem Handel führen kann, was zu hohen Transaktionskosten und Kapitalverlusten führt.

  3. Parameteroptimierung ist schwierig: Die Wahl des Gleichlinienzyklus hat einen großen Einfluss auf die strategische Wirkung, aber die optimalen Parameter variieren häufig je nach Marktlage. Es ist schwierig, die optimale Kombination von Parametern zu finden, die alle gleich sind.

Strategische Optimierung

  1. Einführung von Trendfiltern: Auf der Grundlage von Querschnittssignalen kann Trendfiltern in Kombination mit anderen Trendindikatoren wie MACD, ADX usw. durchgeführt werden, um nur zu handeln, wenn der Trend klar ist, um häufiges Handeln in einem schwankenden Markt zu vermeiden.

  2. Optimierte Stopp-Loss: Einbeziehung vernünftiger Stopp-Loss-Logik in die Strategie, wie beispielsweise bewegliche Stopp-Loss, Volatilitäts-Stopp-Loss, um das Risiko eines einzigen Handels zu kontrollieren und das Risiko-Gewinn-Verhältnis der Strategie zu erhöhen.

  3. Dynamische Parameteroptimierung: Für verschiedene Marktumgebungen können regelmäßig Parameter wie den Durchschnittszyklus dynamisch optimiert werden, um die Strategie an Marktänderungen anzupassen und die Stabilität zu verbessern.

  4. Multifaktorkombination: Die Kombination von zwei beweglichen Durchschnitts-Kreuzungen mit anderen wirksamen Quantitativfaktoren (z. B. Mobilität, Wert, Verkehrsvolumen usw.) bildet eine stabilere und wirksamere Multifaktorstrategie.

Zusammenfassung

Die Doppel-Moving-Average-Kreuzungsstrategie ist eine einfache klassische Trend-Tracking-Strategie, die durch die Kreuzung von zwei verschiedenen periodischen Ebenen der Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-Trend-


/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © SustainableInvestment

//@version=5
strategy("Moving average strategy (이동평균선 전략)", overlay=true)

// === INPUTS ===

basisType   = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"])
shortLen    = input.int(defval = 1, title = "Short MA Period", minval = 1)
longLen    = input.int(defval = 20, title = "Long MA Period", minval = 1)
price       = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"])

// === BASE FUNCTIONS ===
// 가격 종류 설정
priceType(price) =>
    Typical = (high+low+close)/3
    Center  = (high+low) / 2
    price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close

// 이동평균선 종류 설정
variant(type, src, len) =>
    v1 = ta.sma(src, len)                                                  // Simple
    v2 = ta.ema(src, len)                                                  // Exponential
    v3 = 2 * v2 - ta.ema(v2, len)                                          // Double Exponential
    v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len)         // Triple Exponential
    v5 = ta.wma(src, len)                                                  // Weighted
    v6 = ta.vwma(src, len)                                                 // Volume Weighted
    
    type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1

longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (longCondition)
    strategy.entry("Long Entry", strategy.long)

exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (exitCondition)
    strategy.close("Long Entry","Long Exit")


Inhalte dazu

Weitere Informationen