
La estrategia es un sistema de negociación inteligente basado en señales de caída de precios, que combina funciones de parada dinámica y seguimiento de las pérdidas. La estrategia identifica oportunidades de compra potenciales mediante la monitorización de la caída de los precios, mientras que protege los beneficios con un programa de parada flexible y un mecanismo de seguimiento de las pérdidas. La idea central de la estrategia es entrar en juego cuando los precios caen significativamente y maximizar los beneficios mediante la gestión inteligente de las posiciones.
El mecanismo de funcionamiento de la estrategia consiste principalmente en tres partes centrales: primero, la identificación de la señal de compra mediante el establecimiento de un porcentaje de descenso en el precio de la brecha (default -0.98%), la activación de la señal de compra cuando el precio mínimo de una línea K es inferior al precio de apertura por un factor (default + 1%) y, segundo, la adopción de un porcentaje fijo (default 1.23%) como ganancias objetivo para establecer el precio de parada. Finalmente, la introducción de un mecanismo de seguimiento de las pérdidas (default 0.6%) y la protección de las ganancias obtenidas cuando el precio retrocede.
La estrategia combina mecanismos como la identificación de señales de caída de precios, paradas dinámicas y seguimiento de paradas para construir un sistema de negociación completo. La estrategia tiene la ventaja de que la identificación de señales es precisa y la gestión de riesgos es perfecta, pero también se debe tener en cuenta los riesgos como la falsa ruptura y la sensibilidad de los parámetros. Se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia mediante la adición de indicadores auxiliares y la optimización de los mecanismos de ajuste de parámetros.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-26 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Price Drop Buy Signal Strategy", overlay=true)
// 输入参数
percentDrop = input.float(defval=-0.98, title="Price Drop Percentage", minval=-100, step=0.01) / 100
plotShapeStyle = input.string("shape_triangle_up", "Shape", options=["shape_xcross", "shape_cross", "shape_triangle_up", "shape_triangle_down", "shape_flag", "shape_circle", "shape_arrow_up", "shape_arrow_down", "shape_label_up", "shape_label_down", "shape_square", "shape_diamond"], tooltip="Choose the shape of the buy signal marker")
targetProfit = input.float(1.23, title="目标利润百分比", step=0.01) / 100
trailingStopPercent = input.float(0.6, title="Trailing Stop Percentage", step=0.01) / 100
// 计算每根K线的涨跌幅
priceDrop = open * (1.0 + percentDrop)
isBuySignal = low <= priceDrop
// 在当前K线下方标注买入信号(可选)
plotshape(series=isBuySignal, location=location.belowbar, color=color.green, style=plotShapeStyle, size=size.small, title="Buy Signal", text="Buy")
// 显示信息
if bar_index == na
label.new(x=bar_index, y=na, text=str.tostring(percentDrop * 100, format.mintick) + "% Drop", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_down, color=color.new(color.green, 0))
else
label.delete(na)
// 策略逻辑
if (isBuySignal)
strategy.entry("买入", strategy.long)
// 目标卖出价
if (strategy.position_size > 0)
targetSellPrice = strategy.position_avg_price * (1 + targetProfit)
strategy.exit("卖出", from_entry="买入", limit=targetSellPrice, trail_offset=strategy.position_avg_price * trailingStopPercent)