Động lực Chiến lược trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2023-11-17 17:00:32
Tags:

img

Tổng quan

Chiến lược này sử dụng phương pháp chéo trung bình di chuyển hai lần để thực hiện giao dịch rủi ro thấp. Nó sử dụng hai trung bình di chuyển của các giai đoạn khác nhau, một đường nhanh và một đường chậm, để xác định tín hiệu vào và ra dựa trên chéo của chúng. Mục tiêu của chiến lược này là nắm bắt sự thay đổi xu hướng và tạo ra lợi nhuận dài hạn trong các xu hướng chính.

Chiến lược logic

Chiến lược này tạo ra tín hiệu giao dịch dựa trên sự chéo chéo của một đường WMA nhanh và một đường WMA chậm. Thời gian của đường nhanh là một nửa thời gian của đường chậm. Một tín hiệu mua được tạo ra khi đường nhanh vượt qua đường chậm từ dưới. Một tín hiệu bán được tạo ra khi đường nhanh vượt qua đường chậm từ trên. Để lọc các tín hiệu sai, nó cũng kết hợp một chỉ số động lực dựa trên sự khác biệt giữa hai đường trung bình động. Một tín hiệu giao dịch chỉ được tạo ra khi sự chéo chéo MA xảy ra đồng thời với chỉ số động lực đáp ứng các yêu cầu hình dạng.

Cụ thể, logic chính bao gồm:

  1. Định nghĩa đầu vào giá và các tham số: lấy dữ liệu giá OHLC; xác định các tham số HullMA thời gian z, dữ liệu giá p.

  2. Tính toán hai MA: tính toán 2 giai đoạn MA n2ma, z giai đoạn MA nma.

  3. Tính toán chênh lệch MA: tính toán chênh lệch giữa hai MA khác nhau.

  4. Tính toán chỉ số động lượng: tính toán trung bình động của diff - n1, n2, n3 với thời gian sqn.

  5. Xác định giao diện: đánh dấu n1 trên n2 màu xanh lá cây, nếu không màu đỏ.

  6. Hình dạng đồ họa: đồ họa n1 và n2.

  7. Xác định tín hiệu: tạo tín hiệu khi n1, n2, n3 thẳng hàng theo cùng một hướng.

  8. Nhập và thoát: đi dài khi đường nhanh trên đường chậm và chỉ số động lực đồng ý; đi ngắn khi đường nhanh dưới đường chậm và chỉ số động lực đồng ý.

Ưu điểm

Kết hợp hai MA crossover và chỉ số động lực, chiến lược này có thể lọc hiệu quả các tín hiệu sai và chỉ tạo ra các giao dịch vào đầu những thay đổi xu hướng, do đó tạo ra hiệu suất chiến lược tốt.

  1. MA crossover phát hiện sự thay đổi trong xu hướng, lợi nhuận từ xu hướng.

  2. Chỉ số động lực lọc ra các tín hiệu sai, tránh bị đánh lừa bởi biến động ngắn hạn.

  3. Chỉ giao dịch theo những thay đổi xu hướng lớn sẽ làm giảm tần suất giao dịch không cần thiết.

  4. Tối ưu hóa tham số phù hợp với các đặc điểm của các sản phẩm khác nhau.

  5. Cho phép một mức độ nhất định của kim tự tháp kéo dài chu kỳ lợi nhuận.

Rủi ro

Ngoài ra còn có một số rủi ro cần lưu ý:

  1. Chuyển giao hai MA đã bị chậm trong việc phát hiện những thay đổi xu hướng, có khả năng bỏ lỡ thời điểm tốt nhất.

  2. Cài đặt tham số không chính xác trên chỉ số động lực có thể tạo ra tín hiệu xấu.

  3. Có sự mất cân bằng giữa thời gian giữ dài và ngắn.

  4. Chiến lược thiếu cơ chế để xử lý tốt điều kiện thị trường bất ổn.

  5. Có nguy cơ tối ưu hóa quá mức, đòi hỏi tối ưu hóa từng bước các thông số.

Một số giải pháp:

  1. Xem xét thêm các chỉ số hàng đầu khác để phát hiện sớm những thay đổi giá.

  2. Tối ưu hóa các tham số của chỉ số động lực để tìm kết hợp tốt nhất.

  3. Thêm chỉ số biến động vào thời gian kiểm soát.

  4. Giới hạn kích thước vị trí để giảm lỗ đơn.

  5. Kiểm tra độ bền của tham số để tránh tối ưu hóa quá mức.

Hướng dẫn cải thiện

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Kiểm tra các loại MA khác nhau để tìm các thông số tối ưu cho mỗi sản phẩm.

  2. Thêm các chỉ số khác như MACD, Bollinger Bands để xác định sự thay đổi xu hướng.

  3. Tối ưu hóa thời gian nhập cảnh để xác định chính xác các điểm chuyển hướng.

  4. Tối ưu hóa lối ra bằng cách sử dụng các điểm dừng để khóa lợi nhuận.

  5. Thực hiện tối ưu hóa tham số theo đặc điểm của sản phẩm.

  6. Sử dụng máy học để tìm kết hợp tham số tối ưu.

  7. Xây dựng các cơ chế định kích thước vị trí năng động để kiểm soát rủi ro.

  8. Thêm các chỉ số định lượng như tỷ lệ Sharpe, yếu tố lợi nhuận để đánh giá chiến lược.

  9. Đánh giá hiệu suất trên dữ liệu lịch sử bằng cách sử dụng công cụ backtesting.

Tóm lại

Tóm lại, chiến lược MA đúp đà này xác định các điểm đảo ngược xu hướng chính bằng cách sử dụng MA chéo và đà, cho phép giao dịch rủi ro thấp. Nó có những ưu điểm như lợi nhuận ổn định và thực hiện đơn giản, nhưng cũng có những vấn đề cần cải thiện như tối ưu hóa tham số và kiểm soát rủi ro. Chúng ta có thể tinh chỉnh các lĩnh vực như thời gian vào / ra, kích thước vị trí động để thích nghi tốt hơn với điều kiện thị trường. Xác thực và đánh giá rộng rãi là rất quan trọng để đảm bảo hiệu suất chiến lược mạnh mẽ. Nhìn chung, chiến lược này cung cấp một cách tiếp cận đơn giản nhưng hiệu quả đối với giao dịch định lượng, nhưng đòi hỏi tối ưu hóa và xác thực liên tục để tạo ra lợi nhuận đầu tư nhất quán.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//OCTOPUS Indicator Strategy
strategy("FAVEL corp. Indicator Strategy", shorttitle="FAVEL corp. Monarch", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=20, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
z=input(defval=60,title="HullMA cross")
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(z/2))
nma=wma(p,z)
diff=n2ma-nma
sqn=round(sqrt(z))
n2ma1=2*wma(p[1],round(z/2))
nma1=wma(p[1],z)
diff1=n2ma1-nma1
sqn1=round(sqrt(z))
n2ma2=2*wma(p[2],round(z/2))
nma2=wma(p[2],z)
diff2=n2ma2-nma2
sqn2=round(sqrt(z))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
n3=wma(diff2,sqn)
c=n1>n2?green:red
n1e=plot(n1, color=c, linewidth=1, offset=2)
n2e=plot(n2, color=c, linewidth=1, offset=2)
fill(n1e, n2e, color=c, transp=75)
plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4)
closelong = p<p[1] and n1<n3
if (closelong)
    strategy.close("BUY")
closeshort = p>p[1] and n1>n3
if (closeshort)
    strategy.close("SELL")
longCondition = strategy.opentrades<1 and n1>n2 and p>p[1] and n1>n3
if (longCondition)
    strategy.entry("BUY",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and p<p[1] and n1<n3
if (shortCondition)
    strategy.entry("SELL",strategy.short)

Thêm nữa