Trendverfolgungsstrategie zur Gewinnmaximierung

Schriftsteller:ChaoZhang, Datum: 2023-10-11 14:38:40
Tags:

Übersicht

Diese Strategie berechnet den gleitenden Durchschnitt und die Standardabweichung CHANNEL des Preises, um dynamische obere und untere Schienen zu bilden, und kombiniert den Durchschnittswert der höchsten und niedrigsten Preise, um die mittlere Schiene zu bilden, um die aktuelle Trendrichtung zu beurteilen. Wenn der Preis durch die obere Schiene bricht, bedeutet es lang. Wenn der Preis durch die untere Schiene bricht, bedeutet es kurz. Dies implementiert eine Strategie, die auf Trendänderungen basiert.

Strategie Logik

  1. Berechnen Sie den 20-tägigen einfachen gleitenden Durchschnitt von close als Basis für die mittlere Referenzlinie
  2. Berechnen Sie die 20-tägige Standardabweichung von close als Basis für den Abstand zwischen der oberen und unteren Schiene und der mittleren Schiene
  3. Die mittlere Schienenbasis ± 2*dev bestimmt die obere Schienenoberfläche und die untere Schienenoberfläche.
  4. Berechnen Sie den Durchschnittswert der höchsten oberen2 und niedrigsten unteren2 Preise in den letzten 20 Tagen als Basis2 für die zweite mittlere Schiene
  5. Nehmen Sie den Durchschnittswert MB der beiden oben genannten Mittelschienen als endgültige Mittelschiene
  6. Wenn close größer ist als die mittlere Schiene MB, ist es ein langes Signal.
  7. Bestimmung der langen und kurzen Richtung gemäß dem Signal, um den Trend und den Gewinn zu verfolgen

Analyse der Vorteile

  1. Mit Hilfe dynamischer Standardabweichung kann der Kanal schnell Preis-Trend-Veränderungen erfassen
  2. Durch die Kombination der Informationen über die höchsten und niedrigsten Preise ist die mittlere Schiene sinnvoller
  3. Die doppelte Mittelschiene macht das Signal genauer und zuverlässiger
  4. Die Strategieidee ist einfach und klar, leicht zu verstehen und umzusetzen
  5. Es gibt nur wenige konfigurierbare Parameter, die für verschiedene Marktumgebungen geeignet sind

Risikoanalyse

  1. Bei dem Handel bei Ausbrüchen der oberen oder unteren Schiene müssen Stop-Loss-Strategien berücksichtigt werden, um Einzelverluste zu kontrollieren.
  2. Die Handelsfrequenz kann hoch sein und die Auswirkungen von Provisionen müssen berücksichtigt werden
  3. Parameter wie Periodenparameter müssen sorgfältig optimiert werden, um Überanpassung zu vermeiden
  4. Wenn sich der Trend ändert, besteht die Möglichkeit falscher Handelssignale
  5. Eine ordnungsgemäße Kapitalverwaltung ist erforderlich, übermäßige Hebelwirkung sollte nicht verwendet werden

Optimierungsrichtlinien

  1. Erwägen Sie, Filter hinzuzufügen, wenn Sie durch die oberen und unteren Schienen brechen, um falsche Ausbrüche zu vermeiden
  2. Dynamische Ausgänge auf Basis von ATR und anderen Indikatoren
  3. Einbeziehung von Informationen über das Handelsvolumen zur Überprüfung der Zuverlässigkeit von Ausbruchssignalen
  4. Optimieren von Parametern wie Berechnungszyklus, um sich an mehr Marktumgebungen anzupassen
  5. Überlegen Sie, ob Sie die Positionsgröße festlegen, um das Risiko eines Einmalverlusts zu kontrollieren.

Zusammenfassung

Die allgemeine Idee dieser Strategie ist klar und leicht zu verstehen. Durch die dynamische Erfassung von Trends über den Channel und die Erzeugung von Handelssignalen mit mehreren Mittelschienen-Designs kann sie effektiv die Trendrichtungen für den Handel verfolgen und gute Renditen erzielen. In der tatsächlichen Anwendung sollte auf Stop-Loss-Strategien, Kapitalmanagement, Parameteroptimierung usw. geachtet werden, um langfristig stabile Renditen zu erzielen.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



Mehr