Chiến lược giao cắt đường trung bình động


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

Chiến lược giao cắt đường trung bình động

Tổng quan

Chiến lược này tạo ra tín hiệu giao dịch dựa trên sự giao thoa của các đường trung bình di chuyển đơn giản và đường trung bình di chuyển trọng lượng, kết hợp với các điểm dừng và dừng để quản lý vị trí. Chiến lược này kết hợp các yếu tố động (các đường trung bình di chuyển) và các yếu tố tĩnh (số lượng điểm dừng và dừng cố định) để đạt được hiệu quả giao dịch tĩnh động.

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

Lập luận cốt lõi là tính toán các trung bình di chuyển của hai chu kỳ khác nhau, một là trung bình di chuyển đơn giản 9 ngày và một là trung bình di chuyển có trọng lượng 21 ngày. Một tín hiệu mua được tạo ra khi một trung bình di chuyển đơn giản 9 ngày của chu kỳ ngắn đi qua trung bình di chuyển có trọng lượng 21 ngày của chu kỳ dài; một tín hiệu bán được tạo ra khi một đường chu kỳ ngắn đi qua đường chu kỳ dài.

Sau khi nhận được tín hiệu, đặt hàng theo tỷ lệ dừng lỗ đã đặt. Ví dụ: nếu tỷ lệ dừng lỗ được đặt ở mức 5%, giá dừng lỗ sẽ được đặt ở mức 95% giá vào. Nếu tỷ lệ dừng là 5%, giá dừng sẽ được đặt ở mức 105% giá vào.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số kỹ thuật động và các tham số chiến lược tĩnh, có lợi thế của hệ thống động. Các chỉ số kỹ thuật có thể nắm bắt các đặc điểm của thị trường một cách động, có lợi cho việc nắm bắt xu hướng; trong khi các thiết lập tham số cung cấp sự kiểm soát rủi ro và lợi nhuận ổn định, có lợi cho việc giảm tính ngẫu nhiên của quản lý vị trí.

So với hệ thống động đơn thuần, chiến lược này an toàn hơn trong quản lý vị trí và có thể giảm tác động của các quyết định phi lý. So với hệ thống tĩnh đơn thuần, lựa chọn nhập cảnh của chiến lược này linh hoạt hơn và có thể thích ứng với sự thay đổi của thị trường. Vì vậy, chiến lược này an toàn hơn và có lợi nhuận hơn.

Phân tích rủi ro

Rủi ro của chiến lược này chủ yếu xuất phát từ hai khía cạnh: Một là khả năng moving average tạo ra tín hiệu sai. Khi thị trường đang trong tình trạng biến động, moving average có thể giao nhau thường xuyên, khiến chiến lược bị giam giữ. Hai là rủi ro khi dừng lỗ cố định không thể thích ứng với điều kiện thị trường đặc biệt.

Giải pháp thứ nhất là tránh các nút thời gian quan trọng, giảm khả năng tín hiệu sai. Giải pháp thứ hai là kích hoạt thuật toán dừng lỗ thích ứng dựa trên biến động thị trường và các sự kiện đặc biệt, để dừng lỗ được điều chỉnh theo thị trường.

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

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

  1. Kiểm tra các kết hợp khác nhau để tìm ra các tham số tốt nhất;

  2. Tăng điều kiện lọc để tránh tín hiệu vô hiệu;

  3. Sử dụng các thuật toán dừng lỗ thích ứng, kết nối với thị trường;

  4. Các chỉ số khác được sử dụng để đánh giá xu hướng mạnh và yếu, tránh thị trường chấn động.

  5. Sử dụng phương pháp học máy để tự động tối ưu hóa các tham số.

Bằng cách thử nghiệm các tham số khác nhau, tăng các điều kiện lọc, cải thiện các điểm dừng lỗ, đánh giá xu hướng, các phương pháp có thể làm tăng thêm sự ổn định và lợi nhuận của chiến lược.

Tóm tắt

Chiến lược này đã kết hợp thành công các chỉ số động và tham số tĩnh, đồng thời có tính linh hoạt và ổn định. Chiến lược này hoạt động tốt hơn so với các chiến lược động và tĩnh. Tất nhiên, vẫn còn không gian để tối ưu hóa, các phương pháp có thể làm cho chiến lược hiệu quả tốt hơn thông qua điều chỉnh tham số, điều kiện lọc, tự điều chỉnh, học máy.

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

//@version=5
strategy("WMA vs MMA Crossover Strategy with SL/TP", shorttitle="WMA_MMA_Cross_SL_TP", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Définition des périodes pour les moyennes mobiles
wmaLength = input.int(9, title="WMA Length")
mmaLength = input.int(21, title="MMA Length")

// Paramètres de Stop Loss et Take Profit en pourcentage
stopLossPercentage = input.float(5, title="Stop Loss (%)") / 100
takeProfitPercentage = input.float(5, title="Take Profit (%)") / 100

// Calcul des moyennes mobiles
wmaValue = ta.wma(close, wmaLength)
mmaValue = ta.sma(close, mmaLength)

// Conditions pour les signaux d'achat et de vente
buySignal = ta.crossover(wmaValue, mmaValue)
sellSignal = ta.crossunder(wmaValue, mmaValue)

// Génération des ordres en fonction des signaux
if buySignal
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=strategy.position_avg_price * (1 - stopLossPercentage), limit=strategy.position_avg_price * (1 + takeProfitPercentage))

if sellSignal
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=strategy.position_avg_price * (1 + stopLossPercentage), limit=strategy.position_avg_price * (1 - takeProfitPercentage))

// Affichage des moyennes mobiles sur le graphique
plot(wmaValue, color=color.blue, title="WMA")
plot(mmaValue, color=color.red, title="MMA")

// Affichage des signaux sur le graphique pour référence
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")