Esta estratégia é um sistema de negociação inteligente baseado em sinais de queda de preços, combinando recursos dinâmicos de take-profit e trailing stop-loss. A estratégia identifica oportunidades de compra potenciais monitorando quedas de preços, enquanto emprega esquemas flexíveis de take-profit e mecanismos de trailing stop para proteger os lucros. A ideia central é entrar em posições durante quedas significativas de preços e maximizar os retornos através de gestão inteligente de posições.
A estratégia opera através de três componentes principais: primeiro, ela identifica sinais de compra estabelecendo um limite de porcentagem de queda de preço (padrão -0,98%), desencadeando quando o preço baixo de uma vela cai abaixo do preço de abertura multiplicado por (1 + porcentagem de queda). Segundo, ela usa uma porcentagem fixa (padrão 1,23%) como o lucro alvo para definir níveis de take-profit. Finalmente, incorpora um mecanismo de trailing stop (padrão 0,6%) para proteger os lucros durante os retraços de preços. A estratégia inclui componentes de visualização, exibindo sinais de compra através de várias formas de marcador.
Esta estratégia constrói um sistema de negociação completo, combinando a identificação de sinais de queda de preço, mecanismos dinâmicos de take-profit e de stop-loss. Seus pontos fortes estão na identificação precisa de sinais e na gestão de riscos abrangente, embora tenha que ser dada atenção aos riscos de falhas e riscos de sensibilidade de parâmetros. A estabilidade e lucratividade da estratégia podem ser melhoradas adicionando indicadores auxiliares e otimizando 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)