Long- und Short-Strategien basierend auf K-Line-Einheiten


Erstellungsdatum: 2023-11-16 17:14:48 zuletzt geändert: 2023-11-16 17:14:48
Kopie: 0 Klicks: 649
1
konzentrieren Sie sich auf
1617
Anhänger

Long- und Short-Strategien basierend auf K-Line-Einheiten

Überblick

Diese Strategie basiert auf der Länge der K-Linien-Einheiten, um die Hohlräume zu bestimmen. Sie berechnet die durchschnittliche Länge der letzten 30 K-Linien-Einheiten, indem sie mehr als die durchschnittliche Länge der Sonnenstrahl-Einheiten und weniger als die durchschnittliche Länge der Sonnenstrahl-Einheiten berechnet.

Strategieprinzip

Die Strategie berechnet zunächst die Körperlänge der K-Linien und den Durchschnitt der 30 K-Linien-Einheitenlängen sbody.

Wenn die heutige K-Linie eine negative Linie ((bar==-1) ist und die Länge der Einheit größer als die Länge der durchschnittlichen Einheit ist, wird das Mehrfachprogramm ((up1)) geöffnet.

Wenn die heutige K-Linie die Y-Linie ist und die Länge des Objekts größer ist als die durchschnittliche Länge des Objekts, öffnen Sie das leere Blatt ((dn1) ).

Nach dem Eröffnen der Position wird die Position platziert, wenn die heutige K-Linie die Y-Linie ist und die aktuelle Position profitabel ist

Nach dem Öffnen der leeren Karte, wenn die heutige K-Linie negativ ist und die aktuelle Position gewinnbringend ist, wird die leere Karte platziert.

Die Strategie nutzt die Länge der K-Linien-Einheiten einfach und effektiv, um einen Trend zu beurteilen. Je länger die Einheiten sind, desto stärker ist der Trend. Daher wird die Länge der Einheiten als Grundlage für die Beurteilung von Leerräumen verwendet.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Strategie ist einfach, leicht zu verstehen und umzusetzen.

  2. Trends werden anhand der Länge der K-Linien-Einheiten beurteilt, um Geräuschstörungen zu vermeiden.

  3. Die Berechnung der dynamischen Durchschnitte kann an Veränderungen des Marktes angepasst werden.

  4. Das Setzen von Gewinn-Plating-Bedingungen kann die strategische Rendite erhöhen.

  5. Konfigurierbare Strategieparameter für unterschiedliche Marktumgebungen.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Eine längere Einheit ist nicht unbedingt ein starker Trend, sondern eine normale Schwankung.

  2. Eine falsche Einstellung der Zeitfenster für die Länge der durchschnittlichen Einheit kann zu verpassten Handelsmöglichkeiten führen.

  3. Ein Unvorhergesehenes könnte zu strategischen Verlusten führen.

  4. Eine zu lange Haltung einer übermäßig freien Position kann zu einer Ausweitung der Verluste führen.

Die Risiken können mit folgenden Lösungen begegnet werden:

  1. In Kombination mit anderen Indikatoren können Trends beurteilt werden, um falsche Trades zu vermeiden.

  2. Tests mit verschiedenen Parameterwerten zur Optimierung der Berechnung der durchschnittlichen Körperlänge.

  3. Setzen Sie eine Stop-Loss-Stop-Bedingung, um einmalige Verluste zu kontrollieren.

  4. Optimierung der Logik für die Eröffnung und Bewahrung von Positionen, um eine zu lange Haltedauer zu vermeiden

Optimierungsrichtung

Diese Strategie kann optimiert werden durch:

  1. Der MACD, RSI und andere Indikatoren werden verwendet, um Trends zu beurteilen, um Fehlsignale durch normale Schwankungen zu vermeiden.

  2. Verschiedene Parameter der Zeitfenster mit mittlerer Entity-Längen werden getestet, um die optimale Kombination zu finden.

  3. Hinzugefügt wurde eine Logik zur Kontrolle der Anzahl der offenen Positionen, um die Anzahl der offenen Positionen nach und nach zu reduzieren, wenn die Anzahl der Verluste steigt.

  4. Setzen Sie eine mobile Stop-Loss- oder Profit-Rate-Stop-Loss-Ausstiegsbedingung und steuern Sie die Einmalverlustquote.

  5. Optimieren Sie die Bedingungen für die Eröffnung und Bewahrung von Positionen, um ungültige Geschäfte zu vermeiden.

  6. Vermeiden Sie den Handel während einer bestimmten Zeit oder vor der Veröffentlichung wichtiger Daten, um die Verluste durch Wechselkursschläge zu kontrollieren.

Zusammenfassen

Die Gesamtkonzeption der Strategie ist klar und verständlich, um die Eintrittszeit zu beurteilen, indem die K-Linie-Einheiten mit ihrer durchschnittlichen Länge verglichen werden. Die Strategie hat einen großen Optimierungsraum und kann von mehreren Seiten aus optimiert werden, so dass die Strategieparameter besser an die verschiedenen Marktumgebungen angepasst werden. Insgesamt ist die Strategie einfach und zuverlässig genug, um als eine quantitative Eintrittsstrategie für Anfänger zu handeln.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()