Chiến lược Bottom Hunter

Tác giả:ChaoZhang, Ngày: 2024-02-06 09:26:54
Tags:

img

Tổng quan

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ử.

Nguyên tắc chiến lược

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í.

Phân tích lợi thế

Chiến lược Bottom Hunter có những lợi thế sau:

  1. Việc sử dụng nhiều chỉ số để xác định đáy đảm bảo độ chính xác của việc xác định đáy
  2. Sử dụng sự phân kỳ MACD để đánh giá tín hiệu đảo ngược là một kỹ thuật giao dịch có kinh nghiệm
  3. Đánh giá cả quá bán và bất thường tránh nguy cơ phá vỡ sai
  4. Kiểm soát vị trí thận trọng, chỉ xây dựng các vị trí tại các điểm chính, tránh giao dịch quá mức

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Thị trường có thể giảm thêm nếu không có thời gian dừng lỗ
  2. Sự kết hợp của nhiều điều kiện để đánh giá đáy có thể bỏ lỡ đáy trong một số kịch bản
  3. Xác định bằng tay các thông số như ngưỡng RSI có thể ảnh hưởng đến hiệu suất chiến lược

Để đá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.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo các hướng sau:

  1. Tăng cơ chế dừng lỗ thích nghi để điều chỉnh linh hoạt vị trí dừng lỗ dựa trên biến động thị trường
  2. Kiểm tra và tối ưu hóa các tiêu chí để xác định tín hiệu mua để xác định các thông số tối ưu
  3. Tăng các thuật toán học máy để tự động xác định các thông số và quy tắc giao dịch
  4. Thêm một mô-đun đánh giá xu hướng để tránh tham gia vào các thị trường hợp nhất trong các thị trường xu hướng
  5. Bao gồm các chỉ số bổ sung như thay đổi khối lượng để cải thiện xác định đáy

Tóm lại

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)


Thêm nữa