Strategi ini adalah sistem perdagangan cerdas berdasarkan sinyal penurunan harga, menggabungkan fitur take profit dan trailing stop-loss yang dinamis. Strategi ini mengidentifikasi peluang pembelian potensial dengan memantau penurunan harga sambil menggunakan skema profit-taking yang fleksibel dan mekanisme trailing stop untuk melindungi keuntungan.
Strategi ini beroperasi melalui tiga komponen inti: pertama, mengidentifikasi sinyal beli dengan menetapkan ambang persentase penurunan harga (default -0,98%), yang dipicu ketika harga rendah lilin jatuh di bawah harga pembukaan dikalikan dengan (1 + persentase penurunan). Kedua, menggunakan persentase tetap (default 1,23%) sebagai target keuntungan untuk menetapkan tingkat take-profit. Akhirnya, menggabungkan mekanisme trailing stop (default 0,6%) untuk melindungi keuntungan selama retracements harga. Strategi ini mencakup komponen visualisasi, menampilkan sinyal beli melalui berbagai bentuk penanda.
Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan identifikasi sinyal penurunan harga, mekanisme mengambil keuntungan dinamis, dan mekanisme stop-loss. Kekuatannya terletak pada identifikasi sinyal yang akurat dan manajemen risiko yang komprehensif, meskipun perhatian harus diberikan pada gangguan palsu dan risiko sensitivitas parameter. Stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut dengan menambahkan indikator tambahan dan mengoptimalkan mekanisme penyesuaian parameter.
/*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)