Die Hauptidee dieser Strategie besteht darin, eine Kaufoperation durchzuführen, indem der Preisrückgang überwacht wird. Wenn der Preis im Vergleich zur vorherigen Periode um mehr als 5% fällt, wird ein Kaufsignal ausgelöst und eine bestimmte Position zum aktuellen Schlusskurs gekauft. Wenn der Preis höher als der Kaufpreis ist, wird die Position geschlossen, um Gewinne zu erzielen. Diese Strategie nutzt die Marktvolatilität und versucht, kurzfristige Preiswiederholungsmöglichkeiten zu nutzen, um Gewinne zu erzielen.
Diese Strategie nutzt den kurzfristigen Preisrückgang, der eine bestimmte Amplitude übersteigt, als Kaufsignal und erfasst die Rebound-Gelegenheit des Preises, um Gewinne zu erzielen. Die Logik ist einfach und leicht zu verstehen. Die Vorteile der Strategie liegen in der Trend-Erfassung und Risikokontrolle, aber Risiken wie häufiger Handel, tieferer Rückzug und Preisvolatilität müssen auch beachtet werden. In Zukunft kann die Strategie aus Aspekten wie Stop-Loss-Optimierung, Signalfilterung, Positionsmanagement und Multi-Variety-Zusammenarbeit weiter optimiert und verbessert werden, um robustere Ergebnisse zu erzielen.
/*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")