Chiến lược giao dịch cân bằng theo ngưỡng động lượng

BOP TA MA RSI THRESHOLD momentum LEVERAGE EQUITY
Ngày tạo: 2025-02-24 09:35:40 sửa đổi lần cuối: 2025-02-27 16:50:22
sao chép: 1 Số nhấp chuột: 368
2
tập trung vào
319
Người theo dõi

Chiến lược giao dịch cân bằng theo ngưỡng động lượng Chiến lược giao dịch cân bằng theo ngưỡng động lượng

Tổng quan

Chiến lược này là một hệ thống giao dịch dựa trên động lực, chủ yếu sử dụng chỉ số cân bằng sức mạnh để giao dịch trong chu kỳ thời gian 4 giờ. Bằng cách đo lường sức mạnh của cả hai bên mua và bán, nó sẽ kích hoạt tín hiệu giao dịch khi chỉ số vượt qua ngưỡng dự kiến. Chiến lược này bao gồm các tính năng như quản lý vị trí động, kiểm soát có thể điều chỉnh và theo dõi giao dịch trực quan, có thể nắm bắt hiệu quả các điểm biến đổi xu hướng thị trường.

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

Cốt lõi của chiến lược này là để đo sự cân bằng sức mạnh mua và bán của thị trường bằng cách tính toán ((giá đóng cửa-giá mở cửa) / ((giá cao nhất - giá thấp nhất). Khi giá trị này gần 1 thì biểu thị năng lượng đà tăng mạnh mẽ, và khi gần -1 thì biểu thị áp lực giảm mạnh mẽ.

  • Điều kiện mở vị trí: Khi chỉ số cân bằng sức mạnh đeo 0.8, cho thấy sức mạnh của người mua mạnh mẽ, mua thêm
  • Điều kiện mặc định: Khi chỉ số cân bằng sức mạnh vượt qua -0.8, cho thấy áp lực của người bán tăng lên, họ sẽ đi mặc định
  • Quản lý vị trí: Điều chỉnh động dựa trên quyền lợi của tài khoản và có thể thiết lập nhân số đòn bẩy

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

  1. Tín hiệu rõ ràng: sử dụng kích hoạt ngưỡng cố định, tránh giao dịch thường xuyên, tập trung vào tín hiệu độ tin cậy cao
  2. Kiểm soát rủi ro: Quản lý rủi ro linh hoạt thông qua vị trí động và đòn bẩy có thể điều chỉnh
  3. Khả năng hiển thị mạnh mẽ: cung cấp các dấu hiệu giao dịch và lịch sử để dễ dàng truy xuất và tối ưu hóa chiến lược
  4. Khả năng thích ứng: phù hợp với môi trường thị trường có nhiều biến động, có thể nắm bắt được sự thay đổi xu hướng kịp thời

Rủi ro chiến lược

  1. Rủi ro trượt: có thể gặp trượt lớn hơn khi biến động mạnh
  2. Rủi ro đột phá giả: có thể gây ra tín hiệu đột phá giả dẫn đến thiệt hại
  3. Xu hướng phụ thuộc: Thị trường có thể không hoạt động tốt trong thời kỳ biến động
  4. Rủi ro đòn bẩy: Đòn bẩy quá cao có thể dẫn đến tổn thất nghiêm trọng

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

  1. Tiếp theo, bạn có thể sử dụng một bộ lọc xu hướng để đánh giá xu hướng lớn, kết hợp các chỉ số kỹ thuật khác.
  2. Thiết lập tối ưu hóa ngưỡng: điều chỉnh ngưỡng theo các biến động của môi trường thị trường khác nhau
  3. Cải thiện cơ chế dừng lỗ: tăng các phương tiện kiểm soát rủi ro như theo dõi dừng lỗ
  4. Thêm bộ lọc thời gian: xem xét các yếu tố thời gian như phát hành dữ liệu kinh tế quan trọng

Tóm tắt

Chiến lược này nắm bắt sự thay đổi động lực của thị trường thông qua các chỉ số cân bằng sức mạnh, kết hợp với quản lý vị trí động và kiểm soát rủi ro, xây dựng một hệ thống giao dịch tương đối hoàn chỉnh. Mặc dù có một số rủi ro, nhưng sự ổn định và lợi nhuận của chiến lược có thể được nâng cao hơn nữa thông qua việc tối ưu hóa và hoàn thiện liên tục.

Mã nguồn chiến lược
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy(title="Balance of Power for US30 4H", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true, commission_value=0.01, max_labels_count=500, max_lines_count = 500)

leverage = input.float(5, "Leverage 1:", tooltip="Multiply your equity (100%) times the leverage.")

p = (close - open) / (high - low)
qty = strategy.equity * leverage / close

if ta.crossover(p, 0.8)
    strategy.entry("L", strategy.long, qty=qty)

if ta.crossunder(p, -0.8)
    strategy.close("L")

green   = color.new(#0097a7, 0)
red     = color.new(#ff195f, 0)
green90 = color.new(#0097a7, 85)
red90   = color.new(#ff195f, 85)

if strategy.position_size > strategy.position_size[1]
    label.new(bar_index, low * 0.999, text="▲", textcolor=green, size=size.normal, textalign=text.align_center, color=green90, style=label.style_text_outline)
    label.new(bar_index, low * 0.999, text="Buy", textcolor=green, size=size.tiny, textalign=text.align_center, color=green90, style=label.style_label_up)

if strategy.position_size < strategy.position_size[1]
    label.new(bar_index, high * 1.001, text="▼", textcolor=red, size=size.normal, textalign=text.align_center, color=red90, style=label.style_text_outline)
    label.new(bar_index, high * 1.001, text="Close", textcolor=red, size=size.tiny, textalign=text.align_center, color=red90, style=label.style_label_down)


var float tradeEntryPrice = na
var int   tradeEntryBar   = na

if strategy.position_size > 0 and strategy.position_size[1] == 0
    tradeEntryPrice := close
    tradeEntryBar   := bar_index


if strategy.position_size == 0 and strategy.position_size[1] > 0
    exitPrice = close
    exitBar   = bar_index
    tradeColor = (exitPrice - tradeEntryPrice > 0) ? green : red

    topPrice    = math.max(tradeEntryPrice, exitPrice)
    bottomPrice = math.min(tradeEntryPrice, exitPrice)

    box.new(tradeEntryBar, topPrice, exitBar, bottomPrice, border_width=0, bgcolor=color.new(tradeColor, 85))
    line.new(tradeEntryBar, topPrice, exitBar, topPrice, color=tradeColor, width=1)
    line.new(tradeEntryBar, bottomPrice, exitBar, bottomPrice, color=tradeColor, width=1)