Chiến lược theo xu hướng dựa trên đường trung bình động và độ biến động thực trung bình


Ngày tạo: 2024-01-12 11:14:01 sửa đổi lần cuối: 2024-01-12 11:14:01
sao chép: 1 Số nhấp chuột: 539
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng dựa trên đường trung bình động và độ biến động thực trung bình

Tổng quan

Chiến lược này sử dụng đường trung bình di chuyển và tỷ lệ biến động thực tế trung bình để đánh giá xu hướng thị trường và theo dõi xu hướng giao dịch theo xu hướng.

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

Chiến lược này sử dụng trung bình di chuyển của chu kỳ len ma và trung bình biến động thực của chu kỳ len 2 lầnatr để đánh giá xu hướng thị trường. Quy tắc đánh giá cụ thể là:

Khi giá thấp lớn hơn giá trung bình di chuyển cộng với tỷ lệ biến động thực trung bình ((low > ma + atr), nó được coi là xu hướng tăng.
Khi giá cao hơn so với đường trung bình di chuyển trừ đi đường trung bình thực tế thì giá cao (high < ma - atr) được coi là xu hướng giảm.

Các trường hợp khác vẫn giữ nguyên phán đoán trước đó.

Khi đánh giá xu hướng tăng, khi được phép làm nhiều hơn, hãy làm nhiều hơn theo một tỷ lệ nhất định.
Trong việc đánh giá xu hướng giảm, khi cho phép thực hiện空白, hãy thực hiện空白 theo một tỷ lệ nhất định.

Điều kiện là đến ngày giao dịch kết thúc.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Sử dụng đường trung bình di chuyển để đánh giá xu hướng chung, tránh bị lừa bởi sự biến động ngắn hạn của thị trường.
  2. Sử dụng tỷ lệ biến động trung bình thực để thiết lập dừng động, có lợi cho việc kiểm soát rủi ro.
  3. Có khả năng nắm bắt được các cơ hội xu hướng và có tiềm năng thu nhập cao hơn.
  4. Các quy tắc tương đối đơn giản và dễ sử dụng.

Phân tích rủi ro

Chiến lược này có những rủi ro chính như sau:

  1. Trong một thị trường đầy biến động, rất dễ bị thua lỗ nhiều lần.
  2. Không có khả năng đánh giá hiệu quả điểm đảo ngược xu hướng, có thể có nguy cơ theo đuổi xu hướng tăng hoặc giảm.
  3. Thiết lập không đúng các tham số tỷ lệ biến động trung bình có thể dẫn đến điểm thoát quá thoải mái hoặc quá nghiêm ngặt.

Giải pháp:

  1. Điều chỉnh tham số trung bình di chuyển thích hợp, sử dụng tham số ổn định hơn.
  2. Kết hợp với các chỉ số khác để xác nhận tín hiệu, tránh theo đuổi cao và thấp.
  3. Kiểm tra tối ưu hóa các tham số của tỷ lệ dao động thực trung bình, đặt các tham số phù hợp.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kiểm tra các hệ thống trung bình khác nhau để tìm các tổ hợp tham số ổn định hơn.
  2. Thêm các chỉ số phụ trợ khác để đánh giá độ tin cậy của tín hiệu.
  3. Kiểm tra các tham số của tỷ lệ dao động thực trung bình để tìm các tham số tối ưu.
  4. Tối ưu hóa sử dụng vốn, tăng lợi nhuận thông qua đòn bẩy.
  5. Hoạt động tối ưu hóa các tham số kết hợp với các phương pháp như học máy.

Tóm tắt

Chiến lược tổng thể của chiến lược này rõ ràng, dễ hiểu, sử dụng đường trung bình di chuyển để xác định hướng xu hướng và sử dụng tỷ lệ biến động thực tế trung bình để thiết lập dừng để có thể theo dõi xu hướng hiệu quả. Tuy nhiên, có một số rủi ro cần thiết để tối ưu hóa thêm các tham số thiết lập và thêm các chỉ số phán đoán khác. Nói chung, chiến lược này cung cấp một cách suy nghĩ khả thi để theo dõi xu hướng giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()