Strategie zur Erfassung von Trends mit Horizontal-Linien-Breakout

Schriftsteller:ChaoZhang, Datum: 2024-04-26 15:22:06
Tags:

img

Übersicht

Diese Strategie verwendet horizontale Linien als Unterstützungs- und Widerstandsniveaus und erzeugt Handelssignale, wenn der Preis diese Linien durchbricht. Die Hauptidee ist: zunächst horizontale Linien auf der Grundlage bestimmter Bedingungen zu zeichnen, lange zu gehen, wenn der Preis über die Linie bricht, und Positionen zu schließen, wenn der Preis unter die Linie bricht. Gleichzeitig gibt es entsprechende Bedingungen für die Erzeugung horizontaler Linien, wie z. B. dass der niedrige Preis der vorherigen Kerze größer ist als der aktuelle Schlusskurs.

Strategieprinzip

  1. Auf der Grundlage der Bedingung, dass der niedrige Preis der vorherigen Kerze größer ist als der aktuelle Schlusskurs, ziehen Sie eine horizontale Linie mit einer Länge von 20 am niedrigen Preis der vorherigen Kerze und halten Sie immer nur die letzten 10 Linien.
  2. Wenn der aktuelle Kurs über die letzte horizontale Linie bricht, schließen Sie alle früheren Long-Positionen und eröffnen Sie neue Long-Positionen.
  3. Wenn eine neue horizontale Linie gezogen wird, schließt man sie zuerst, wenn eine Position vorhanden ist, und eröffnet dann eine neue Long-Position.

Strategische Vorteile

  1. Die Strategielogik ist einfach und klar, leicht verständlich und umsetzbar.
  2. Durch die Verwendung des Durchbruchs der horizontalen Linienunterstützung und Widerstandsniveaus, um Signale zu erzeugen, kann es Trends gut erfassen.
  3. Wenn eine neue horizontale Linie erzeugt wird, schließt sie zuerst die vorherigen Positionen und öffnet dann neue, was das Risiko verringern kann, das die vorherigen Positionen mit sich bringen können.
  4. Die Strategie kann durch Anpassung der Länge und Anzahl der horizontalen Linien optimiert werden.

Strategische Risiken

  1. Bei schwankenden Märkten können häufige Durchbrüche in horizontalen Linien zu Überhandelungen führen, die zu großen Schwankungen und Transaktionsgebühren führen.
  2. Die Definition der horizontalen Linien in der Strategie ist relativ einfach und kann nicht mit anderen Indikatoren überprüft werden, was zu falschen Signalen führen kann.
  3. Es geht nur lang und nicht kurz und kann Abwärtstrends nicht voll ausnutzen.

Strategieoptimierungsrichtlinien

  1. Andere Indikatoren können kombiniert werden, um die Gültigkeit der horizontalen Linien zu bestätigen, z. B. Veränderungen des Handelsvolumens, um falsche Signale zu reduzieren.
  2. Bei schwankenden Märkten kann die Häufigkeit des Handels reduziert werden, indem die Größe der horizontalen Linienüberschreitungen erhöht wird.
  3. Hinzu kommt ein Leerverkaufsmechanismus, um von Abwärtstrends zu profitieren.
  4. Es sollte in Betracht gezogen werden, die Länge und Anzahl der horizontalen Linien dynamisch an die unterschiedlichen Marktbedingungen anzupassen.

Zusammenfassung

Diese Strategie verwendet horizontale Linien als wichtige Unterstützungs- und Widerstandsniveaus und erzeugt Handelssignale durch Liniendurchbrüche. Der Vorteil ist, dass die Logik einfach und einfach zu implementieren ist und Trends gut erfassen kann. Der Nachteil ist jedoch, dass sie überhandeln, falsche Signale erzeugen und nur lang gehen kann, aber nicht kurz. In Zukunft kann sie optimiert und verbessert werden, indem andere Indikatoren kombiniert, die Handelsfrequenz reduziert, Leerverkaufmechanismen hinzugefügt und Parameter dynamisch angepasst werden.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 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/
// © Traderxprox

//@version=5
strategy("Alarm Trader_ALL", overlay=true)

// Yatay çizgi oluşum
yatayc = low[1] > close[0]

if yatayc
    if strategy.opentrades > 0
        strategy.close("AL", comment = "Fiyat:" + str.tostring(low[1], "#.##") + "\n" + timeframe.period +"\n Yatay Direnç Oluştu")
    else
        strategy.entry("AL", strategy.long, comment = "Fiyat:" + str.tostring(low[1], "#.##") + "\n" + timeframe.period +"\n Yatay Direnç Oluştu")


//YATAY ÇİZGİ
int cizgilen = input.int(20, "Çizgi uzunluğu?", group = "Yatay Çizgi Ayarları")
var array<line> lines = array.new<line>()
int numberOfLines = input.int(10, "Son Kaç Çizgi?", 0, group = "Yatay Çizgi Ayarları")
kural22 = low[1] > close[0]
// if kural22
//     newLine = line.new(bar_index-2, low[1], bar_index+cizgilen, low[1] ,color=color.red, width=1, style=line.style_solid)
//     // Push the `newLine` into the `lines` array.
//     lines.push(newLine)
//     // Delete the oldest line when the size of the array exceeds the specified `numberOfLines`.
//     if array.size(lines) > numberOfLines
//         line.delete(lines.shift())
    
// Alarm kırılım için koşul

var float lastLinePrice = na
if not na(close) and array.size(lines) > 0 
    lastLinePrice := line.get_price(array.get(lines, array.size(lines) - 1), bar_index)
if open < lastLinePrice and close > lastLinePrice
    if strategy.opentrades > 0
        strategy.close("AL", comment = "Fiyat:" + str.tostring(lastLinePrice, "#.##") + "\n" + timeframe.period +" \n Yatay çizgi yukarı kırılımı")
    else
        strategy.entry("AL", strategy.long, comment = "Fiyat:" + str.tostring(lastLinePrice, "#.##") + "\n" + timeframe.period +" \n Yatay çizgi yukarı kırılımı")



Mehr