Impulstrend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-30 11:36:26
Tags:

img

Übersicht

Diese Strategie verwendet den VIDYA (Variable Index Dynamic Average) Indikator, um die Trendrichtung in Kryptowährungsmärkten und Trades basierend auf dem Trend zu identifizieren.

Strategie Logik

Die Strategie berechnet zunächst den VIDYA-Indikator. Der VIDYA-Indikator basiert auf der Preisdynamik und kann schneller auf Trendänderungen reagieren. Insbesondere kombiniert er den Chande Momentum Oscillator (CMO) und den einfachen gleitenden Durchschnitt (SMA). CMO misst den Unterschied zwischen Aufwärts- und Abwärtsdynamik, um die Trendstärke zu messen. SMA glättet die Preisdaten. VIDYA passt die Gewichtung des SMA dynamisch an, basierend auf den CMO-Werten, was dem CMO zu Beginn der Trendänderungen mehr Gewicht und dem SMA mehr Gewicht verleiht, sobald der Trend festgelegt ist.

Nach der Berechnung von VIDYA beurteilt die Strategie die Trendrichtung basierend auf der Kurve von VIDYA.

Analyse der Vorteile

  • VIDYA reagiert schnell und kann Trendänderungen im Vergleich zu traditionellen Indikatoren wie SMA frühzeitig erfassen.

  • Durch die Kombination von Trendstärke und -richtung kann es starke und schwache Trends effektiv unterscheiden und falsche Trends in unterschiedlichen Märkten vermeiden.

  • Durch die ausschließliche Anwendung von VIDYA ist die Strategie einfach: Es gibt keine widersprüchlichen oder irreführenden Signale von mehreren Indikatoren.

  • Längere VIDYA-Einstellungen ermöglichen es, langfristige Trends zu verfolgen und die Haupttrendrichtung zu erfassen.

  • Gute Backtestergebnisse mit positiven erwarteten Renditen.

Risikoanalyse

  • VIDYA kann auf plötzliche Marktereignisse zurückbleiben und kurzfristige Handelsmöglichkeiten verpassen.

  • Lange VIDYA-Einstellungen machen sie weniger empfindlich für kurzfristige Trendänderungen und können zu größeren Abzügen führen.

  • Ein reiner Trend folgend funktioniert schlecht in unruhigen Märkten.

  • Begrenzte Backtestdaten können die Robustheit nicht vollständig überprüfen.

  • Hohe Volatilität auf den Kryptomarkt. Positionsgröße und Stop-Loss sollten sorgfältig kontrolliert werden, um ein strenges Risikomanagement zu gewährleisten.

Optimierungsrichtlinien

  • Testen von Volumen- oder Volatilitätsindikatoren, um die Empfindlichkeit gegenüber Trendänderungen zu verbessern.

  • Versuchen Sie, VIDYA mit anderen Trendindikatoren zu kombinieren, um einen Ensemble-Effekt zu erzielen.

  • Optimieren Sie die Stop-Loss-Strategie, um frühzeitig auszusteigen, wenn sich der Trend umkehrt.

  • Optimierung der dynamischen Positionsgröße basierend auf den Marktbedingungen.

  • Testen Sie die Robustheit in verschiedenen Kryptowährungen und Zeitrahmen.

Schlussfolgerung

Im Allgemeinen handelt es sich um eine quantitative Trendfolgestrategie. Es verwendet den VIDYA-Indikator, um die Trendrichtung zu bestimmen und Krypto-Trends einfach und effektiv zu erfassen. Es hat aber auch einige Einschränkungen, die weitere Optimierungen im Stop-Loss, Positionsgröße usw. erfordern, um die Strategie robuster und praktisch tragfähig zu machen. Im Allgemeinen bietet es einen grundlegenden Rahmen und Ansatz für den Aufbau von Krypto-Trendstrategien, aber umsichtige Einschätzungen sind für reale Anwendungen immer noch erforderlich.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
// @version=5
// Author = TradeAutomation


strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25,  commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time')
InDateRange = true

// Strategy Inputs //
len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings")
src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings")

// VIDYA Calculations //
valpha=2/(len+1)
vud1=src>src[1] ? src-src[1] : 0
vdd1=src<src[1] ? src[1]-src : 0
vUD=math.sum(vud1,9)
vDD=math.sum(vdd1,9)
vCMO=nz((vUD-vDD)/(vUD+vDD))
var VIDYA = 0.0
VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1])
plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2)

// Entry & Exit Signals //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1])
    strategy.close("Long", when = VIDYA<VIDYA[1])
if (not InDateRange)
    strategy.close_all()
    

Mehr