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


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

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

Tổng quan

Chiến lược này là một chiến lược chéo trung bình di chuyển đơn giản (SMA) dành cho thị trường tiền điện tử. Nó sử dụng ba nhóm SMA nhanh, trung bình và chậm để xác định tín hiệu mua và thoát tiềm năng. Khi SMA nhanh vượt qua SMA trung bình, nó tạo ra tín hiệu mua; khi SMA nhanh vượt qua SMA trung bình, nó tạo ra tín hiệu bán.

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

Cài đặt tham số

Chiến lược cho phép các nhà giao dịch đặt các tham số quan trọng sau:

  • Nguồn dữ liệu giá: giá đóng cửa hoặc giá khác
  • Có tính đến đường K không hoàn chỉnh không
  • Phương pháp dự đoán SMA: dự đoán phẳng hoặc dự đoán hồi quy tuyến tính
  • Độ dài SMA nhanh: mặc định là 7
  • Độ dài SMA trung bình: mặc định là 30
  • Độ dài SMA chậm: 50 mặc định
  • Tài khoản
  • Tỷ lệ rủi ro trên mỗi giao dịch

Tính toán SMA

Theo chiều dài SMA được thiết lập bởi người dùng, tính toán SMA nhanh, SMA trung bình và SMA chậm.

Tín hiệu giao dịch

Khi SMA nhanh vượt qua SMA trung bình, nó tạo ra tín hiệu mua; khi SMA nhanh vượt qua SMA trung bình, nó tạo ra tín hiệu bán.

Quản lý rủi ro và vị trí

Chiến lược kết hợp số tiền tài khoản và tỷ lệ rủi ro cho mỗi giao dịch, tính toán số vốn danh nghĩa cho mỗi giao dịch. Sau đó kết hợp với ATR để tính toán mức dừng lỗ, và cuối cùng xác định vị trí cụ thể cho mỗi giao dịch.

Phân tích lợi thế

  • Sử dụng nhiều nhóm SMA để xác định xu hướng, có sự phán đoán tốt hơn
  • Các phương pháp dự đoán SMA có thể được lựa chọn, có khả năng thích ứng hơn
  • Các tín hiệu giao dịch đơn giản, rõ ràng và dễ thực hiện
  • Tích hợp quản lý rủi ro và vị trí, khoa học hơn

Phân tích rủi ro

  • Đường SMA tự nó sẽ trượt điểm biến động giá
  • Chỉ tính đến các chỉ số kỹ thuật mà không kết hợp các yếu tố cơ bản
  • Không tính đến tác động của sự kiện bất ngờ

Các chỉ số khác có thể được tối ưu hóa bằng cách rút ngắn chu kỳ SMA một cách thích hợp.

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

  • Kết hợp các chỉ số khác để lọc tín hiệu sai
  • Tham gia phán quyết cơ bản
  • Tối ưu hóa tham số chu kỳ SMA
  • Tối ưu hóa các tham số tính toán rủi ro và vị trí

Tóm tắt

Chiến lược này tích hợp nhiều chức năng phán đoán chéo SMA, quản lý rủi ro và tối ưu hóa vị trí, là một chiến lược theo dõi xu hướng phù hợp với thị trường tiền điện tử. Các nhà giao dịch có thể điều chỉnh các tham số và thực hiện tối ưu hóa theo các yếu tố như phong cách giao dịch và môi trường thị trường của họ.

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

//@version=4
strategy("Onchain Edge Trend SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Configuration Parameters
priceSource = input(close, title="Price Source")
includeIncompleteBars = input(true, title="Consider Incomplete Bars")
maForecastMethod = input(defval="flat", options=["flat", "linreg"], title="Moving Average Prediction Method")
linearRegressionLength = input(3, title="Linear Regression Length")
fastMALength = input(7, title="Fast Moving Average Length")
mediumMALength = input(30, title="Medium Moving Average Length")
slowMALength = input(50, title="Slow Moving Average Length")
tradingCapital = input(100000, title="Trading Capital")
tradeRisk = input(1, title="Trade Risk (%)")

// Calculation of Moving Averages
calculateMA(source, period) => sma(source, period)
predictMA(source, forecastLength, regressionLength) => 
    maForecastMethod == "flat" ? source : linreg(source, regressionLength, forecastLength)

offset = includeIncompleteBars ? 0 : 1
actualSource = priceSource[offset]

fastMA = calculateMA(actualSource, fastMALength)
mediumMA = calculateMA(actualSource, mediumMALength)
slowMA = calculateMA(actualSource, slowMALength)

// Trading Logic
enterLong = crossover(fastMA, mediumMA)
exitLong = crossunder(fastMA, mediumMA)

// Risk and Position Sizing
riskCapital = tradingCapital * tradeRisk / 100
lossThreshold = atr(14) * 2
tradeSize = riskCapital / lossThreshold

if (enterLong)
    strategy.entry("Enter Long", strategy.long, qty=tradeSize)

if (exitLong)
    strategy.close("Enter Long")

// Display Moving Averages
plot(fastMA, color=color.blue, linewidth=2, title="Fast Moving Average")
plot(mediumMA, color=color.purple, linewidth=2, title="Medium Moving Average")
plot(slowMA, color=color.red, linewidth=2, title="Slow Moving Average")