
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên lý thuyết phân loại giá, tự động hóa giao dịch bằng cách xác định cấu trúc phân loại đỉnh và đáy trong thị trường, kết hợp với các điều kiện kích hoạt và thiết lập điểm dừng với số điểm cố định. Cốt lõi của chiến lược là thiết lập nhiều điểm vào đơn trên phân loại đáy, thiết lập điểm vào đơn trống dưới phân loại đỉnh, đồng thời điều khiển rủi ro với các điểm dừng tương ứng.
Lập luận cốt lõi của chiến lược bao gồm các bước quan trọng sau:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh bằng cách kết hợp lý thuyết phân loại và ý tưởng đột phá động lực. Ưu điểm của chiến lược là mức độ khách quan và tự động hóa cao, nhưng cũng có một số vấn đề thích ứng với môi trường thị trường.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fractal Buy/Sell Strategy with 107 Pips Target", overlay=true)
// 输入参数
trigger_pips = input.int(107, title="Entry Distance (Pips)") // 入场点距离底分型或顶分型的距离
take_profit_pips = input.int(107, title="Take Profit (Pips)") // 止盈点数
pip_value = syminfo.mintick * 10 // 点值(每点等于多少价格单位)
// 计算分型
is_bottom_fractal = low[1] < low[2] and low[1] < low[0] // 判断是否为底分型
is_top_fractal = high[1] > high[2] and high[1] > high[0] // 判断是否为顶分型
// 存储分型位置
var float last_bottom_fractal = na
var float last_top_fractal = na
// 更新分型值
if is_bottom_fractal
last_bottom_fractal := low[1]
if is_top_fractal
last_top_fractal := high[1]
// 计算开盘价格
bottom_trigger_price = na(last_bottom_fractal) ? na : last_bottom_fractal + trigger_pips * pip_value
top_trigger_price = na(last_top_fractal) ? na : last_top_fractal - trigger_pips * pip_value
// 交易逻辑:底分型多单和顶分型空单
if not na(last_bottom_fractal)
if close <= bottom_trigger_price
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", from_entry="Buy", limit=bottom_trigger_price + take_profit_pips * pip_value)
if not na(last_top_fractal)
if close >= top_trigger_price
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", from_entry="Sell", limit=top_trigger_price - take_profit_pips * pip_value)
// 绘制分型和触发价格
plotshape(series=is_bottom_fractal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bottom Fractal")
plotshape(series=is_top_fractal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Top Fractal")
plot(bottom_trigger_price, title="Buy Trigger", color=color.green, linewidth=1)
plot(top_trigger_price, title="Sell Trigger", color=color.red, linewidth=1)