Основная идея этой стратегии заключается в выполнении операции покупки путем мониторинга снижения цены. Когда цена падает более чем на 5% по сравнению с предыдущим периодом, запускается сигнал покупки, и определенное количество позиции покупается по текущей цене закрытия. Когда цена выше цены покупки, позиция закрывается, чтобы получить прибыль. Эта стратегия использует волатильность рынка и пытается использовать краткосрочные возможности восстановления цены для получения прибыли.
Эта стратегия использует краткосрочное падение цены, превышающее определенную амплитуду, в качестве сигнала покупки, захватывая возможность отскока цены для получения прибыли. Логика проста и легко понятна. Преимущества стратегии заключаются в захвате тренда и контроле рисков, но также необходимо учитывать такие риски, как частые торговли, глубокое снижение и волатильность цен. В будущем стратегия может быть дополнительно оптимизирована и улучшена с таких аспектов, как оптимизация стоп-лосса, фильтрация сигнала, управление позицией и многообразное сотрудничество, чтобы получить более надежные результаты.
/*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")