Trenderkennungsstrategie auf der Grundlage von Price Action-Prinzipien

Schriftsteller:ChaoZhang, Datum: 2023-09-20 11:11:46
Tags:

Übersicht

Die Kernidee dieser Strategie besteht darin, die aktuelle Trendrichtung basierend auf der Beziehung zwischen dem Höchstpunkt und dem Schlusskurs von K-Linienbarren zu bestimmen und die Ergebnisse mithilfe gleitender Durchschnittslinien zu glätten. Wenn es mehr hohe Schlusstangen gibt, wird es als Aufwärtstrend bestimmt. Wenn es mehr niedrige Schlusstangen gibt, wird es als Abwärtstrend bestimmt. Diese Strategie eignet sich für jedes digitale Vermögen mit einer bestimmten Liquidität und bessere Ergebnisse können durch Parameteroptimierung erzielt werden.

Strategie Logik

Diese Strategie verwendet M-Minutenbalken. Gemäß dem Positionsverhältnis zwischen dem Schlusskurs und den Höchst- und Tiefpunkten wird bestimmt, ob der M-Minuten-K-Linienbalken zu einem hohen Schlusstyp (Schlusskurs nahe dem Höchstpunkt), einem niedrigen Schlusstyp (Schlusskurs nahe dem Tiefpunkt) oder einem normalen Typ (Schlusskurs nahe der Mitte) gehört.

Konkret berechnen wir zunächst delt = high - close, das ist der Unterschied zwischen dem High Point und dem Schlusskurs, und Height = high - low, das ist der Unterschied zwischen High und Low. Wenn delt > height * 2/3, wird es als High-Closing-Typ bestimmt. Wenn delt < height/3, wird es als Low-Closing-Typ bestimmt, andernfalls ist es ein normaler Typ.

Dann zählen Sie die Anzahl der hohen Schließ-, niedrigen Schließ- und normalen Typen in den neuesten NK-Linienbalken, berechnen Sie den Prozentsatz, den sie ausmachen, und verwenden Sie EMA, um sie in Aufstiegs-, Fall- und Mittelkürben zu glätten.

Wenn die Anstiegskurve über die Fallkurve kreuzt, bedeutet dies, dass die hohen Schließbarren zunehmen, was darauf hindeutet, dass der Markt in einen Aufwärtstrend eintritt, und ein langes Signal ausgegeben wird. Wenn die Fallkurve unterhalb der Anstiegskurve kreuzt, bedeutet dies, dass niedrige Schließbarren zunehmen, was darauf hindeutet, dass der Markt in einen Abwärtstrend eintritt, und ein kurzes Signal ausgegeben wird.

Vorteile der Strategie

Diese auf Preisaktion basierende Trendbeurteilung hat folgende Vorteile:

  1. Das Prinzip ist klar und leicht zu verstehen und zu meistern.

  2. Sie stützt sich nicht auf Indikatoren, sondern beurteilt lediglich die Trendrichtung anhand der Merkmale des Preises selbst.

  3. Es gibt nur wenige konfigurierbare Parameter, hauptsächlich N- und EMA-Gleichungsparameter, die leicht zu optimieren sind.

  4. Es kann auf alle digitalen Vermögenswerte mit einer bestimmten Liquidität angewendet werden, einschließlich Aktien, Devisen, Kryptowährungen usw.

  5. Die Ergebnisse der Rückprüfung sind gut und die Risiken können streng kontrolliert werden.

  6. Es kann weiter mit Trendlinien, Unterstützungs-/Widerstandsniveaus und anderen technischen Optimierungsmethoden kombiniert werden.

  7. Stop-Loss-Strategien können so konfiguriert werden, dass einzelne Verluste kontrolliert werden.

Risiken der Strategie

Trotz der Vorteile birgt die Strategie auch folgende Risiken:

  1. Wenn sich der Markt in einem Schockzustand befindet, wechselt der K-Line-Typ häufig, was zu falschen Signalen führen kann.

  2. Die falsche Einstellung der N- und EMA-Parameter kann zu fehlenden Trends oder zu vielen ungültigen Signalen führen.

  3. Die Beurteilung der Trendrichtung ausschließlich anhand von K-Linientypen hat einige Verzögerungen.

  4. Es kann keine üblichen Chartmuster wie Dreieckskonvergenz, Flaggen usw. effektiv filtern, was das Risiko von umgekehrten Durchbrüchen birgt.

  5. Diese Strategie gehört zum Trendverfolgen und kann keine Umkehrchancen effektiv nutzen.

  6. Der Stop-Loss sollte verwendet werden, um das Verlustrisiko zu kontrollieren, sonst kann ein einzelner Verlust groß sein.

Richtungen für die Optimierung der Strategie

Um Risiken zu reduzieren und die Rentabilität zu verbessern, kann die Strategie in folgenden Aspekten optimiert werden:

  1. Kombination von Volatilitätsindikatoren wie ATR zur Anpassung der N- und EMA-Parameter anhand der Marktvolatilität und Vermeidung übermäßiger ungültiger Signale in den Bereichsmärkten.

  2. Zusätzliche Volumenanalyse zur Filterung falscher Ausbrüche unter hohen Volumenbedingungen.

  3. Kombination von Trendlinien und wichtigen Unterstützungs-/Widerstandsniveaus zur Bestimmung der Trendrichtung und der Echtheit des Durchbruchs.

  4. Hinzufügen mehrerer Zeitrahmenanalysen, um Fehleinschätzungen in einem einzigen Zeitrahmen zu vermeiden.

  5. Hinzufügen von Mustererkennungsmodulen, um Positionen rechtzeitig umzukehren, wenn signifikante Umkehrsignale auftreten.

  6. Optimierung von Stop-Loss-Strategien auf der Grundlage von Marktvolatilität und Risikopräferenz.

  7. Hinzufügen von Trailing Stop Loss, Moving Stop Loss usw., um Gewinne zu erzielen und zu verhindern, dass sie zurückgegeben werden.

Zusammenfassung

Diese Strategie beurteilt die Trendrichtung basierend auf der Preisbewegung. Die Logik ist klar und die Rücktestergebnisse sind gut. Sie kann weitgehend auf den Krypto-Handel angewendet werden. Es gibt aber auch einige Einschränkungen. Sie muss mit Stop-Loss und Optimierungen kombiniert werden, um das Risiko zu reduzieren. Insgesamt bietet diese Strategie eine einfache und praktische Idee für den Quant-Handel und ist es wert, daraus zu lernen. Mit kontinuierlichen Optimierungen und Kombinationen können stabile überschüssige Renditen erreicht werden.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("trend detect", overlay=false)


lenght = input(34)
ema_smooth = input(5)

delt = high - close
height = high - low

color_plot=black
state=0

if delt > height/3*2
    state := 1
    color_plot := red
else
    if delt > height/3
        state := 2
        color_plot := blue
    else 
        state := 3
        color_plot := green
//plot(state, color=color_plot, style=histogram)
percOfType(len, state_for_count) =>
    num = 0
    for i=1 to len
        if state[i]==state_for_count
            num := num+1
    num/len*100
    
rise = ema(percOfType(lenght, 3), ema_smooth)
fall = ema(percOfType(lenght, 1), ema_smooth)
plot(rise, color = green)
plot(ema(percOfType(lenght, 2), ema_smooth), color = blue)
plot(fall, color = red)
plot(10, color=black)
plot(60, color=black)

longCondition = crossover(rise, fall)
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(rise, fall)
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Mehr