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

Tác giả:ChaoZhang, Ngày: 2024-02-23 14:46:37
Tags:

img

Tổng quan

Chiến lược đột phá đường trung bình là một chiến lược giao dịch định lượng điển hình theo dõi xu hướng. Chiến lược này sử dụng đường trung bình động và băng tần lệch chuẩn của chúng để đánh giá xu hướng thị trường và tạo ra tín hiệu giao dịch khi giá vượt qua các băng tần lệch chuẩn.

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

Chiến lược này đầu tiên tính toán SMA di chuyển đơn giản N ngày (mất 50 ngày) và sau đó tính toán độ lệch chuẩn StdDev của giá dựa trên SMA cho chu kỳ này. Với SMA là trục trung tâm và các đường ray trên và dưới là 2 lần StdDev, kênh lệch chuẩn được xây dựng. Khi giá vượt trên đường ray trên, đi ngắn; khi giá giảm xuống dưới đường ray dưới, đi dài.

Sau khi vào thị trường, chiến lược sẽ đặt điểm dừng lỗ và lấy lợi nhuận. Cụ thể, sau khi mua dài, đường dừng lỗ là giá đóng vào thời điểm nhập (100 - tỷ lệ giảm lỗ); sau khi mua ngắn, đường lấy lợi nhuận là giá đóng vào thời điểm nhập (100 + tỷ lệ lấy lợi nhuận).

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Khả năng theo dõi xu hướng mạnh mẽ. Sử dụng các kênh lệch chuẩn có thể theo dõi động biến động thị trường.

  2. Khả năng kiểm soát rút mạnh mẽ. Sử dụng các lỗ dừng di động có thể kiểm soát hiệu quả các lỗ đơn.

  3. Thực hiện đơn giản. Tiết kiệm rất nhiều tối ưu hóa tham số và rất dễ thực hiện.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Rủi ro đảo ngược xu hướng. Chiến lược theo dõi xu hướng có xu hướng thua lỗ và sau đó đảo ngược.

  2. Rủi ro độ nhạy của các tham số: Việc lựa chọn các tham số như thời gian trung bình động và nhân độ lệch chuẩn sẽ có tác động lớn hơn đến hiệu suất chiến lược.

  3. Stop loss quá mạnh để gây thêm tổn thất.

Các giải pháp cho các rủi ro tương ứng là như sau:

  1. Kết hợp các chỉ số biến động để tránh sự phá vỡ sai.

  2. Tối ưu hóa các tham số để tìm kết hợp tham số tối ưu.

  3. Điều chỉnh cơ chế dừng lỗ để ngăn chặn sự hung hăng quá mức.

Hướng dẫn tối ưu hóa

Vẫn còn chỗ để tối ưu hóa thêm chiến lược:

  1. Sử dụng nhiều khung thời gian trung bình động để xác minh để tránh đường cong quá nhạy cảm.

  2. Kết hợp các chỉ số khác như MACD để đánh giá xu hướng và chênh lệch.

  3. Đưa ra các thuật toán học máy để tối ưu hóa các tham số một cách năng động.

Tóm lại

Nhìn chung, chiến lược đột phá hồi quy trung bình động là một chiến lược giao dịch định lượng rất thực tế. Nó có những lợi thế theo dõi xu hướng và kiểm soát rút tiền, thực hiện đơn giản và đáp ứng nhu cầu giao dịch định lượng. Đồng thời, cũng nên chú ý đến các vấn đề như lựa chọn tham số và cài đặt dừng lỗ. Với phân tích trục thời gian đa và tối ưu hóa tham số, có thể đạt được hiệu suất chiến lược tốt hơn.


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

//@version=5
strategy("Standard Deviation Bands with Buy/Sell Signals", overlay=true)

// Input for the number of standard deviations
deviationMultiplier = input.float(2.0, title="Standard Deviation Multiplier")

// Input for the length of the moving average
maLength = input.int(50, title="Moving Average Length")

// Input for the stop loss percentage
stopLossPercentage = input.float(12, title="Stop Loss Percentage")

// Calculate the moving average
sma = ta.sma(close, maLength)

// Calculate the standard deviation of the price
priceDeviation = ta.stdev(close, maLength)

// Calculate the upper and lower bands
upperBand = sma + (priceDeviation * deviationMultiplier)
lowerBand = sma - (priceDeviation * deviationMultiplier)

// Plot the bands
plot(upperBand, color=color.green, title="Upper Band")
plot(lowerBand, color=color.red, title="Lower Band")

// Plot the moving average
plot(sma, color=color.blue, title="SMA", linewidth=2)

// Buy Signal
buyCondition = ta.crossover(close, lowerBand)
sellCondition = ta.crossunder(close, upperBand)

// Calculate stop loss level
stopLossLevelBuy = close * (1 - stopLossPercentage / 100)
stopLossLevelSell = close * (1 + stopLossPercentage / 100)

// Create Buy and Sell Alerts
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal - Price Crossed Below Lower Band")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal - Price Crossed Above Upper Band")

// Plot Buy and Sell Arrows on the chart
plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal Arrow")
plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal Arrow")

// Exit Long and Short Positions
var float stopLossBuy = na
var float stopLossSell = na

if ta.crossover(close, sma)
    stopLossBuy := stopLossLevelBuy
if ta.crossunder(close, sma)
    stopLossSell := stopLossLevelSell

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Take Profit Buy", from_entry = "Buy", stop = stopLossBuy)
strategy.entry("Sell", strategy.short, when = sellCondition)
strategy.exit("Stop Loss/Take Profit Sell", from_entry = "Sell", stop = stopLossSell)


Thêm nữa