La idea principal de esta estrategia es realizar una operación de compra mediante el monitoreo de la disminución del precio. Cuando el precio cae más del 5% en comparación con el período anterior, se activa una señal de compra y se compra una cierta cantidad de posición al precio de cierre actual. Cuando el precio es mayor que el precio de compra, la posición se cierra para obtener ganancias. Esta estrategia aprovecha la volatilidad del mercado e intenta capturar oportunidades de rebote de precios a corto plazo para obtener ganancias.
Esta estrategia utiliza la caída de precios a corto plazo que excede una amplitud específica como una señal de compra, capturando la oportunidad de rebote del precio para obtener ganancias. La lógica es simple y fácil de entender. Las ventajas de la estrategia se encuentran en la captura de tendencias y el control de riesgos, pero también se deben tener en cuenta riesgos como el comercio frecuente, la retirada profunda y la volatilidad de los precios. En el futuro, la estrategia puede optimizarse y mejorarse aún más desde aspectos como la optimización de stop-loss, el filtrado de señales, la gestión de posiciones y la colaboración de múltiples variedades, para obtener resultados más robustos.
/*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")