Chiến lược phá vỡ Bull Flag dựa trên tỷ lệ rủi ro-lợi nhuận và phân tích kỹ thuật


Ngày tạo: 2024-05-28 10:47:51 sửa đổi lần cuối: 2024-05-28 10:47:51
sao chép: 1 Số nhấp chuột: 462
1
tập trung vào
1617
Người theo dõi

Chiến lược phá vỡ Bull Flag dựa trên tỷ lệ rủi ro-lợi nhuận và phân tích kỹ thuật

Tổng quan

Chiến lược này dựa trên hình dạng lá cờ bò, mua sau khi giá phá vỡ vùng cao của vùng lá cờ, đặt vị trí dừng lỗ ở vùng thấp của vùng lá cờ, mục tiêu lợi nhuận được thiết lập dựa trên tỷ lệ lợi nhuận rủi ro. Chiến lược sử dụng hàm giá cao nhất và giá thấp nhất để xác định vùng lá cờ và đánh giá phá vỡ bằng cách so sánh giá đóng cửa hiện tại với giá cao nhất của đường K trước đó.

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

  1. Xác định hình cờ bò: Sử dụng hàm giá cao nhất và giá thấp nhất để tính các điểm cao nhất và thấp nhất trong phạm vi cờ và đánh giá liệu giá hiện tại có phá vỡ điểm cao cờ hay không.
  2. Đăng nhập: Nếu giá đóng cửa hiện tại vượt qua mức giá cao nhất của một đường K trước đó và giá cao nhất của một đường K trước đó thấp hơn điểm cao hình cờ, hãy mua.
  3. Hạn chế: Giá dừng được thiết lập là điểm thấp hình cờ trừ một giá đệm.
  4. Chặn: Giá mục tiêu được tính dựa trên tỷ lệ lợi nhuận rủi ro. Giá mục tiêu = Giá nhập + (giá nhập - giá dừng) * Tỷ lệ lợi nhuận rủi ro

Lợi thế chiến lược

  1. Dựa trên hình dạng lá cờ bò cổ điển, nó có thể nắm bắt cơ hội đảo ngược trong một xu hướng mạnh mẽ.
  2. Vị trí dừng lỗ được đặt ở điểm thấp của hình cờ, rủi ro có thể kiểm soát được.
  3. Sử dụng lợi nhuận từ rủi ro để đạt được lợi nhuận cao hơn so với việc đặt giá mục tiêu.
  4. Mã logic rõ ràng, sử dụng hàm TradingView tích hợp, dễ hiểu và sửa đổi.

Rủi ro chiến lược

  1. Trong một thị trường chấn động hoặc một xu hướng không rõ ràng, giá có thể đảo ngược nhanh chóng sau khi phá vỡ hình cờ, dẫn đến một sự rút lui lớn hơn.
  2. Cài đặt giá trị đệm không chính xác có thể dẫn đến dừng lỗ sớm.
  3. Tỷ lệ lợi nhuận rủi ro thực tế có thể không đạt được giá trị thiết lập.
  4. Một số biểu tượng hình cờ bị biến dạng có thể không hoạt động.

Hướng tối ưu hóa chiến lược

  1. Có thể xem xét thêm các tín hiệu lọc điều kiện, chẳng hạn như thay đổi khối lượng giao dịch, hướng đường trung bình, để cải thiện chất lượng tín hiệu.
  2. Các tham số có thể được tối ưu hóa cho các đặc điểm thị trường khác nhau, chẳng hạn như độ dài khoảng cách cờ, tỷ lệ lợi nhuận rủi ro, giá trị đệm dừng lỗ.
  3. Có thể cân nhắc việc xây dựng kho hàng theo đợt và dừng động để giảm rủi ro tiếp xúc.
  4. Tham gia quản lý vị trí, kiểm soát rủi ro tổng thể.

Tóm tắt

Chiến lược này là một chiến lược đột phá dựa trên hình dạng lá cờ bò cổ điển, để nắm bắt cơ hội tiếp tục xu hướng bằng cách xác định các khu vực hình cờ và phá vỡ giá. Ưu điểm của chiến lược là logic rõ ràng, rủi ro có thể kiểm soát được, nhưng phải đối mặt với một số rủi ro khi thị trường rung động hoặc xu hướng đảo ngược.

Mã nguồn chiến lược
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bull Flag Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Параметры стратегии
riskRewardRatio = 3.0
flagLength = input.int(5, title="Flag Length")
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer", step=0.001)

// Функция для вычисления стоп-лосса и тейк-профита
calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio) =>
    takeProfitPrice = entryPrice + (entryPrice - stopLossPrice) * riskRewardRatio
    [stopLossPrice, takeProfitPrice]

// Найти минимум и максимум флага
flagLow = ta.lowest(low, flagLength)
flagHigh = ta.highest(high, flagLength)

// Условия для формирования бычьего флага
isBullFlag = high[1] < flagHigh and close > high[1]

// Условия для входа в сделку
if (isBullFlag)
    entryPrice = close
    stopLossPrice = flagLow - stopLossBuffer
    [calculatedStopLoss, calculatedTakeProfit] = calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio)
    
    // Открыть длинную позицию
    strategy.entry("Bull Flag Long", strategy.long)
    strategy.exit("Take Profit", "Bull Flag Long", limit=calculatedTakeProfit)
    strategy.exit("Stop Loss", "Bull Flag Long", stop=calculatedStopLoss)
    label.new(bar_index, high, "Buy", color=color.green, textcolor=color.white, style=label.style_label_down)