Trend der Zyklusposition nach der Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-17 17:05:11
Tags:

img

Übersicht

Die Cycle Position Trend Following Strategy ist eine quantitative Handelsstrategie, die die Trendrichtung basierend auf dem 200-tägigen einfachen gleitenden Durchschnitt (SMA) bestimmt. Sie bietet zwei Modi - Follow Uptrend und Follow Downtrend für Händler, aus denen sie nach ihren Vorlieben wählen können.

Wie die Strategie funktioniert

Der Kernindikator dieser Strategie ist der 200-Tage-SMA.

  1. Beim Aufwärtstrend-Modus: Long gehen, wenn der Schlusspunkt über der 200-Tage-SMA liegt; Close-Position, wenn Stop Loss oder Take Profit ausgelöst wird.

  2. Verfolgen Sie den Abwärtstrend-Modus: Gehen Sie lang, wenn der Schlusspunkt unter dem 200-Tage-SMA liegt; schließen Sie, wenn ein Stop-Loss oder ein Take-Profit ausgelöst wird.

Die lange Bedingung ist inlongConditionDie Schlusskondition wird definiert incloseConditionDie Variable basiert auf Stop Loss, Take Profit und SMA.

Genauer gesagt:strategy.entrywird verwendet, um Long-Positionen zu eröffnen, wenn die Long-Bedingung erfüllt ist.strategy.exitwird verwendet, um Positionen zu schließen, wenn die Schließbedingung ausgelöst wird.

Vorteile der Strategie

Zu den Vorteilen dieser Strategie gehören:

  1. Einfache und klare Logik, die leicht zu verstehen ist.

  2. Bietet zwei optionale Modus für verschiedene Marktumgebungen.

  3. Anpassbare Stop-Loss- und Take-Profit-Verfahren ermöglichen die Anpassung des Risiko-Rendite-Profils.

  4. Verwendet den bekannten 200-Tage-SMA-Indikator, um die Trendrichtung zu bestimmen.

  5. Generiert automatische Handelssignale ohne manuelles Eingreifen.

Risiken der Strategie

Zu den Risiken dieser Strategie gehören:

  1. Wenn man sich auf einen Indikator stützt, kann man auch andere Indikatoren wie MACD und KDJ zur Bestätigung verwenden.

  2. Stop-Loss- und Take-Profit-Niveaus, die zu eng oder zu breit sind, können zu einem vorzeitigen Stop-Out oder fehlenden idealen Ausgangspunkten führen.

  3. Die Verwendung von Schlusskurs für Signale hat Schlusskursverzerrungen.

  4. Es werden keine Handelskosten berücksichtigt.

Wie man die Strategie verbessert

Einige Möglichkeiten zur Verbesserung der Strategie:

  1. Hinzufügen anderer Indikatoren, um Signale zu bestätigen und falsche Signale zu vermeiden, z. B. MACD.

  2. Optimieren Sie Stop-Loss- und Take-Profit-Parameter, um durch Backtesting eine optimale Kombination zu finden.

  3. Hinzufügen eines Trendfilters, um nur in gut definierten Trends zu handeln, z. B. ADX.

  4. Verbessern Sie die Einstiegsmethode, indem Sie den Kerzenkörper berücksichtigen oder eine Bestätigung hinzufügen.

  5. Um die Signalzuverlässigkeit zu überprüfen, sollten Sie das Handelsvolumen berücksichtigen.

  6. Versuche verschiedene SMA-Perioden, um den optimalen Parameter zu finden.

Schlussfolgerung

Die Strategie hat eine klare und verständliche Logik mit praktischem Wert. Aber die Abhängigkeit von einem einzigen Indikator hat Einschränkungen. Für die Bestätigung sollten mehr Bedingungen hinzugefügt werden. Parameter müssen auch getestet und optimiert werden, um eine bessere Live-Performance zu erzielen. Darüber hinaus erfordern Handelskosten wie Slippage und Provisionen eine Berücksichtigung beim Live-Handel.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for selecting the mode
mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"])

// Input for customizing stop loss and take profit levels
stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01)
takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01)

// Calculate the 200-day Simple Moving Average (SMA)
sma = ta.sma(close, 200)

// Plot the SMA on the chart
plot(sma)

// Define the conditions for entering a long position based on the selected mode
longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma

// Define the conditions for closing a position based on the selected mode
closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05)

// Execute a long position if the longCondition is met
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// Close the position if the closeCondition is met
if (closeCondition)
    strategy.exit("Exit", limit = close)


Mehr