
Стратегия является интеллектуальной торговой системой, основанной на сигналах снижения цен, в сочетании с динамическими остановками и отслеживанием остановок. Стратегия идентифицирует потенциальные возможности для покупки, отслеживая падение цен, а также использует гибкие остановки и отслеживание остановок для защиты прибыли.
Механизм действия стратегии состоит из трех основных частей: во-первых, выявление сигнала покупки путем установки процентной наценки снижения цены (по умолчанию - 0,98%), запуск сигнала покупки при минимальной цене на линии K ниже цены открытия умноженной на (по умолчанию - 1 + процент снижения). Во-вторых, использование фиксированной процентной доли (по умолчанию - 1,23%) в качестве целевой прибыли для установки стоп-цены.
Стратегия создает целостную торговую систему, объединяя механизмы, такие как распознавание сигналов падения цены, динамические остановки и отслеживание остановок. Преимущества стратегии заключаются в точности распознавания сигналов, совершенстве управления рисками, но также необходимо обращать внимание на такие риски, как ложные прорывы и чувствительность к параметрам.
/*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)