
A estratégia é um sistema de negociação inteligente baseado em sinais de queda de preços, combinando paradas dinâmicas e rastreamento de paradas. A estratégia identifica potenciais oportunidades de compra monitorando a queda dos preços, enquanto protege os lucros com paradas flexíveis e mecanismos de rastreamento de paradas. A ideia central da estratégia é entrar em jogo quando há uma queda significativa nos preços e maximizar os lucros com o gerenciamento inteligente de posições.
O mecanismo de operação da estratégia consiste em três partes principais: primeiro, identificar o sinal de compra definindo o percentual de queda do preço para o valor de prejuízo (default -0.98%), acionar o sinal de compra quando o preço mínimo de uma linha K é inferior ao preço de abertura multiplicado por (default + 1%); segundo, usar uma porcentagem fixa (default 1.23%) como um lucro-alvo para definir o preço de parada; finalmente, introduzir o mecanismo de tracking stop loss (default 0.6%) e proteger os lucros obtidos quando o preço retrocede; a estratégia também inclui um componente de visualização, mostrando os sinais de compra com diferentes formas de marcação.
A estratégia de construir um sistema de negociação completo através da combinação de mecanismos como a identificação de sinais de queda de preços, parada dinâmica e rastreamento de stop loss. A vantagem da estratégia está na identificação de sinais de precisão, gestão de risco perfeito, mas também precisa ter em conta os riscos como a falsa ruptura e sensibilidade 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)