Chiến lược Bottom Hunter là một chiến lược giao dịch ngắn hạn cho tiền điện tử.
Chiến lược này kết hợp nhiều chỉ số kỹ thuật để xác định đáy. Cụ thể, nó sử dụng chỉ số MACD để đánh giá các tín hiệu đảo ngược đáy, chỉ số RSI để xác định tình trạng bán quá mức và Bollinger Bands để xác định giá có dưới đường sắt dưới không. Một tín hiệu mua được tạo ra khi tất cả các điều kiện được đáp ứng.
Đầu tiên, chiến lược sử dụng sự khác biệt MACD để đánh giá đáy. Cái gọi là sự khác biệt có nghĩa là giá đạt mức thấp mới trong khi chỉ số MACD không đạt mức thấp mới. Tình huống này đại diện cho sự suy yếu của khối lượng giao dịch và thường báo trước một sự đảo ngược xu hướng sắp xảy ra.
Thứ hai, chiến lược yêu cầu chỉ số RSI dưới 31,1. RSI dưới 30 đại diện cho trạng thái bán quá mức, tạo cơ hội mua.
Cuối cùng, chiến lược yêu cầu giá đóng cửa nằm dưới đường sắt giữa của Bollinger Bands. Điều này cho thấy giá đã giảm xuống dưới phạm vi bình thường, do đó cung cấp một cơ hội mua tốt hơn.
Khi tất cả các điều kiện trên được đáp ứng cùng một lúc, chiến lược tạo ra tín hiệu mua và thiết lập một vị trí.
Chiến lược Bottom Hunter có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Để đáp ứng các rủi ro trên, theo dõi thời gian thực dừng mất mát, điều chỉnh phạm vi tham số, vv có thể được sử dụng để tối ưu hóa.
Chiến lược có thể được tối ưu hóa theo các hướng sau:
Chiến lược Bottom Hunter mua trên đáy chính để đạt được lợi nhuận dư thừa. Lý do để xác định đáy là mạnh mẽ, trong khi kết hợp nhiều điều kiện lọc để tránh tín hiệu sai. Với điều chỉnh tham số thích hợp và kiểm soát stop loss, chiến lược này có thể hoạt động tốt trong giao dịch tiền điện tử ngắn hạn.
/*backtest start: 2023-01-30 00:00:00 end: 2024-02-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD Divergence Strategy", shorttitle="Strategy: MACD Dive", overlay=true) // MACD设置 fastLength = input.int(12, "Fast Length") slowLength = input.int(26, "Slow Length") signalSmoothing = input.int(9, "Signal Smoothing") [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 计算99日EMA均线 ema99 = ta.ema(close, 99) // 计算RSI rsiLength = input.int(14, title="RSI Length") rsi = ta.rsi(close, rsiLength) // 计算布林带中轨 length = input.int(20, "BB Length") src = input(close, "Source") mult = input.float(2.0, "BB StdDev") basis = ta.sma(src, length) // 买入筛选条件 priceLow = ta.lowest(low[1], 60) macdLow = ta.lowest(macdLine[1], 60) divergence = low < priceLow and macdLine > macdLow allHighsBelowEma99 = true for i = 0 to 14 if high[i] > ema99 allHighsBelowEma99 := false rsiBelow = rsi < 31.1 priceDifference = (high - low) / low * 100 buySignal1 = divergence and allHighsBelowEma99 and rsiBelow buySignal2 = high < ema99 and priceDifference >= 3 and close < open and high < basis buySignal3 = buySignal1 or buySignal2 // 定义一个变量来存储买入时的价格 var float buyPrice = na // 买入逻辑 if buySignal3 buyPrice := close // 存储买入时的价格 strategy.entry("Buy", strategy.long) // 止盈和止损条件 longTakeProfit = buyPrice * 1.1 // 止盈设为买入价格的1.2倍 longStopLoss = buyPrice * 0.98// 止损设为买入价格的0.99倍 // 应用止盈和止损 strategy.exit("Exit", "Buy", limit=longTakeProfit, stop=longStopLoss) // 绘制买入信号 plotshape(series=buySignal3, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)