
Überblick
Die Hauptidee dieser Strategie ist es, einen Kauf zu tätigen, indem die Abwärtsbewegung der Preise überwacht wird. Wenn die Preise um mehr als 5% gegenüber der vorherigen Periode fallen, wird ein Kaufsignal ausgelöst, um eine bestimmte Anzahl von Positionen zum aktuellen Schlusskurs zu kaufen.
Strategieprinzip
- Berechnen Sie den Prozentsatz des Rückgangs des aktuellen Schlusskurses gegenüber dem Schlusskurs des Vorjahreszyklus.
- Wenn der Rückgang mehr als 5% beträgt, wird ein Kaufsignal ausgelöst, um eine bestimmte Anzahl von Positionen zum aktuellen Schlusskurs zu kaufen. Die Anzahl der Käufe wird nach dem aktuellen Kontostand und dem Kaufpreis berechnet.
- Der Kaufpreis und die Kaufmenge werden aufgezeichnet.
- Der Preis, der bei der Veräußerung erzielt wurde, ist höher als der Kaufpreis.
- Berechnung von Verlusten und Aktualisierung des Kontostandes.
- Die K-Linien, die bei einem Kaufsignal auftreten, sind in der Tabelle in Gelb markiert.
Analyse der Stärken
- Einfach und leicht zu verstehen: Die Strategie ist klar, leicht zu verstehen und umzusetzen.
- Trendfangung: Kurzfristige Aufschwungstrends in den Preisen können durch den Kauf von Sorten mit einer starken Abwärtsbewegung erfasst werden.
- Risikokontrolle: Die Anzahl der Käufe wird auf der Grundlage des Kontostandes und des aktuellen Preises berechnet und die Risikothek für jeden Handel wird kontrolliert.
- Das Ergebnis ist ein zeitgemäßer Abschluss: Wenn der Preis höher ist als der Kaufpreis, wird die Position entschieden ausgeglichen, keine Kämpfe geführt und das Risiko kontrolliert.
- Intuitive Darstellung: Kaufsignale sind in speziellen Farben auf den Diagrammen markiert, die für eine einfache Beobachtung und Analyse geeignet sind.
Risikoanalyse
- Häufige Transaktionen: Die Strategie zielt hauptsächlich auf kurzfristige Schwankungen ab. Die Transaktionsfrequenz kann hoch sein, und die Auswirkungen von Gebührenkosten auf die Erträge müssen beachtet werden.
- Tiefenrückzug: Ein gewisses Rückzugrisiko besteht, wenn der Preis nach dem Kauf weiter sinkt.
- Preisschwankungen: Die Strategie hängt hauptsächlich von der Volatilität der Preise ab, und in einem Marktumfeld mit geringer Volatilität kann die Wirksamkeit der Strategie reduziert werden.
- Gewinn- und Verlustbilanz: Die Strategie hat keine eindeutigen Anforderungen an die Gewinn- und Verlustquote und die Kontrolle. In der Praxis muss auf die Gesamtgewinn- und Verlustbilanz der Strategie geachtet werden.
Optimierungsrichtung
- Stop-Loss-Optimierung: Die derzeitige Strategie setzt keine Stop-Loss-Bedingungen nach dem Kauf ein. Es kann in Betracht gezogen werden, einige Stop-Loss-Logiken, wie z. B. Fixed-Percentage-Stop oder ATR-Stop, hinzuzufügen, um den maximalen Verlust eines einzelnen Handels weiter zu kontrollieren.
- Signalfilterung: Nach der Erzeugung eines Kaufsignals können zusätzliche Bedingungen zur Filterung der Qualität des Signals hinzugefügt werden, z. B. die Kombination von Gleichheitssystemen, RSI und anderen Indikatoren oder die Berücksichtigung von Preiswinkeln, Wattlinieformationen usw., um die Gewinnrate und Zuverlässigkeit des Signals zu verbessern.
- Positionsverwaltung: Die derzeitige Strategie verwendet ein Fixed-Funds-Verhältnis, um die Anzahl der Käufe zu bestimmen. Es kann in Betracht gezogen werden, das Positionsverwaltungsmodell für eine dynamischere Optimierung zu optimieren, z. B. um die Anzahl der Käufe pro Kauf anhand von Faktoren wie Preisschwankungen und der Konto-Netzwertkurve anzupassen.
- Mehrsprachige Synergie: Die Idee der Strategie kann für mehrere Sorten angewendet werden, was durch die Analyse der Wechselbeziehungen zwischen den Sorten und die Verwaltung der Mittelverteilung möglicherweise besser funktioniert.
Zusammenfassen
Die Strategie nutzt kurzfristige Preisrückgänge über eine bestimmte Bandbreite als Kaufsignal, um die Rebound-Chancen des Preises zu nutzen. Die Logik ist einfach und verständlich. Der Vorteil der Strategie besteht darin, Trends zu erfassen und Risiken zu kontrollieren, aber auch auf Risiken wie häufige Transaktionen, tiefe Rücknahmen und Preisschwankungen zu achten.
Strategiequellcode
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 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/
// © Thgoodtrader
//@version=5
strategy("TGT Falling Buy", overlay=true, margin_long=100, margin_short=100)
var float buy_price = na
var float open_price = na
var float open_weekend = na
var float close_weekend = na
var bool trade=false
var float balance = 1000
// Definir el precio de compra inicial y la cantidad inicial
var float qty = na
// Verificar si el día de la semana es sábado (6) o domingo (0)
es_sabado = dayofweek == 1
es_domingo = dayofweek == 7
es_viernes = dayofweek == 6
// Calcular el valor del saldo inicial
balance_initial = balance
change_percent = ((close - close[1]) / close[1]) * 100
is_last_candle_negative = close < open
is_change_above_threshold = change_percent < -5
// Cambiar el color de la última vela si cumple las condiciones
barcolor(is_last_candle_negative and is_change_above_threshold ? color.yellow : na)
bgcolor(is_last_candle_negative and is_change_above_threshold ? color.yellow : na, transp=80)
// Guardar el precio de compra cuando se cumpla la condición del 5%
if is_change_above_threshold
// Calcular la cantidad basada en el precio de compra y el saldo
qty := balance / close
// Guardar el precio de compra
buy_price := close
open_price := open
strategy.entry("Buy Trading",strategy.long,qty)
alert("Comprar BTC", alert.freq_once_per_bar_close)
trade :=true
//if (((close - strategy.position_avg_price) / strategy.position_avg_price) * 100 ) > 2
if close > strategy.position_avg_price
// Calcular el valor de ganancia o pérdida
pnl = (close - strategy.position_avg_price) * qty
// Actualizar el saldo
balance := balance_initial + pnl
strategy.close("Buy Trading")
alertcondition(is_change_above_threshold, title = "Buy 5% Discount", message = "Buy Position")
alertcondition(close > strategy.position_avg_price, title = "Close Trade", message = "Close Buy Position")