
Strategi ini adalah sistem perdagangan cerdas yang didasarkan pada sinyal penurunan harga, yang menggabungkan fungsi stop-loss dan tracking stop-loss yang dinamis. Strategi ini mengidentifikasi peluang pembelian potensial dengan memantau penurunan harga, sambil menggunakan skema stop-loss yang fleksibel dan mekanisme tracking stop-loss untuk melindungi keuntungan.
Mekanisme operasi strategi ini terdiri dari tiga bagian utama: pertama, mengidentifikasi sinyal beli dengan menetapkan persentase penurunan harga (default -0.98%), dan memicu sinyal beli ketika harga terendah pada garis K tertentu lebih rendah dari harga bukaan kali lipat (default + 1%); kedua, menggunakan persentase tetap (default 1.23%) sebagai target profit untuk menetapkan harga stop; terakhir, memperkenalkan mekanisme stop loss tracking (default 0.6%); dan melindungi keuntungan yang telah diperoleh saat harga mundur; strategi ini juga terdiri dari komponen visual, yang menampilkan sinyal beli dengan menandai bentuk yang berbeda.
Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan mekanisme seperti pengenalan sinyal penurunan harga, stop-loss dinamis dan stop-loss pelacakan. Keuntungan dari strategi ini adalah keakuratan pengenalan sinyal, manajemen risiko yang sempurna, tetapi juga perlu memperhatikan risiko seperti false breakout dan sensitivitas parameter. Dengan cara menambahkan indikator tambahan, optimasi mekanisme penyesuaian parameter, dan lain-lain, stabilitas dan profitabilitas strategi dapat ditingkatkan. Ini adalah kerangka strategi yang memiliki nilai praktik yang baik, cocok untuk penelitian dan pengoptimalan yang mendalam.
/*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)