3 10 Strategie zur Kennzeichnung des Oszillatorprofils

Schriftsteller:ChaoZhang, Datum: 2024-02-18 16:17:26
Tags:

img

Übersicht

Die 3 10 Oscillator Profile Flagging Strategie erzeugt Handelssignale, indem sie die Differenz zwischen 3-tägigen und 10-tägigen einfachen gleitenden Durchschnitten als MACD-Indikator berechnet und die Volumenanalyse kombiniert, um die Stärke von Käufern und Verkäufern auf dem Markt zu bestimmen.

Strategieprinzip

Der Kernindikator dieser Strategie ist der MACD, der aus einer schnellen gleitenden Durchschnittslinie und einer langsamen gleitenden Durchschnittslinie besteht. Die schnelle Linie ist ein 3-tägiger einfacher gleitender Durchschnitt und die langsame Linie ist ein 10-tägiger einfacher gleitender Durchschnittswert. Der Unterschied zwischen ihnen bildet das MACD-Histogramm. Wenn die schnelle Linie über die langsame Linie von unten kreuzt, repräsentiert sie eine Stärkung der Kaufkraft und erzeugt ein Kaufsignal. Umgekehrt, wenn die schnelle Linie unter die langsame Linie von oben kreuzt, stärkt sich die Verkaufskraft und ein Verkaufssignal wird erzeugt.

Darüber hinaus beinhaltet die Strategie eine Analyse der relativen Stärke des Kauf- und Verkaufsvolumens auf der Grundlage des Größenverhältnisses zwischen dem Kaufvolumen und dem Verkaufvolumen jedes Kerzenstäbels. Die spezifische Methode lautet: Kaufvolumen = Volumen x (Schließen - Niedrig) ÷ (Hoch - Niedrig); Verkaufvolumen = Volumen x (Hoch - Schließen) ÷ (Hoch - Niedrig). Wenn das Kaufvolumen signifikant größer ist als das Verkaufvolumen, bedeutet dies, dass der Kerzenstäbel mit relativ starker Kaufkraft schließt, was ein Kaufsignal ist.

Durch die Kombination des MACD-Indikators und der Volumenanalyse kann die Strategie effektiv das Angebot und die Nachfrage und die anstehende Richtung auf dem Markt bestimmen. Gleichzeitig überprüft die Strategie auch Bedingungen wie ob sich der Preis in einem Schlüsselbereich befindet, ob der MACD eine effektive Umkehrung hat und ob der Unterschied zwischen Kauf- und Verkaufsmenge groß genug ist, um etwas impulsives Rauschen auszufiltern und einen hohen Einstieg mit hoher Wahrscheinlichkeit und hoher Effizienz zu gewährleisten.

Analyse der Vorteile

  • Verwenden Sie den MACD-Indikator zur Beurteilung der laufenden Marktrichtung
  • Analyse des Volumenunterschieds zur Bestimmung der Stärke von Käufern und Verkäufern
  • Mehrzweck-Screening sorgt für eine hohe Betriebswahrscheinlichkeit
  • Annahme einer Stop-Profit- und Stop-Loss-Strategie zur Risikokontrolle

Der größte Vorteil dieser Strategie besteht darin, dass sie das Urteilsverhältnis von Angebot und Nachfrage vollständig berücksichtigt. Das MACD-Histogramm kann effektiv den Kontrast zwischen Kauf- und Verkaufskraft und der anstehenden Richtung auf dem Markt bestimmen; die Volumendifferenzanalyse kann die dominierende Kraft zwischen Käufern und Verkäufern eindeutig identifizieren. Gleichzeitig setzt die Strategie mehrere Bedingungen für die Überprüfung, um zu vermeiden, dass es nach Steigerungen und Rückgängen geht, um eine relativ hohe Gewinnwahrscheinlichkeit zu gewährleisten. Darüber hinaus kann der integrierte Stop-Profit- und Stop-Loss-Mechanismus der Strategie auch einzelne Verluste begrenzen.

Risikoanalyse

  • Wenn der Markt schwankt oder sich in einem flachen Muster konsolidiert, kann der MACD falsche Signale erzeugen.
  • Es kann zu Marktmanipulationen kommen, um das Handelsvolumen zu erhöhen, was die Genauigkeit der Volumenanalyse verringern würde.
  • Schwierigkeit der Optimierung von Parametern. Die Strategie enthält mehrere Parameter, die schwer zu optimieren sind, was sie für Anleger mit relativ schwachen Parameter-Tuning-Fähigkeiten ungeeignet macht.

Die oben genannten Risiken können vermieden werden, indem man: den Haupttrend des Marktes genau bestimmt, um diese Strategie bei Marktschwankungen zu vermeiden; auf Marktinformationen achtet, um künstlich aufgeblähte Handelsvolumina zu erkennen; die Parameter sorgfältig anpasst oder sich an Fachleute berät.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  • Verwendung von Indikatoren wie KD, Bollinger Bands usw. zur Ersetzung oder Unterstützung des MACD und zur Verbesserung der Urteilsgenauigkeit
  • Hinzufügen von Positionsmanagementmechanismen für die Anpassung dynamischer Parameter
  • Optimieren Sie Stop-Profit- und Stop-Loss-Punkte für einen höheren Einzelgewinn
  • Ausführen auf mehreren Zeitrahmen zur Verbesserung der Stabilität

Zusammenfassend lässt sich feststellen, daß für die Optimierung dieser Strategie viel Raum besteht, und daß die Anleger entsprechend ihrer eigenen Situation und Marktbedingungen entsprechende Anpassungen und Verbesserungen vornehmen können, um eine bessere Strategiewirksamkeit zu erzielen.

Zusammenfassung

Die 3 10 Oszillator Profile Flagging Strategie integriert erfolgreich die Ideen der MACD-Analyse, des Volumenvergleichs und der mehrbedingten Filterüberprüfung. Sie verfügt über starke Fähigkeiten zur Bestimmung von Angebots-Nachfrage-Beziehungen und Marktverlauf, während sie Risiken durch integrierte Stop-Profit- und Stop-Loss-Mechanismen kontrolliert. Die Strategie verfügt über einen großen Optimierungsraum und breite Anwendungsperspektiven, die eine wichtige Berücksichtigung und eingehende Forschung für Anleger wert sind.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

Mehr