
“Chiến lược phá vỡ trễ hai đường trung bình” là một chiến lược giao dịch phân tích kỹ thuật thường được sử dụng. Chiến lược này kết hợp hai chỉ số trung bình di chuyển đơn giản (SMA) và trung bình sóng thực (ATR) của hai chu kỳ khác nhau, nhằm mục đích nắm bắt các điểm biến động của xu hướng thị trường và thực hiện giao dịch có lợi nhuận cao có rủi ro thấp. Ý tưởng cốt lõi của nó là sử dụng sự chậm trễ của đường trung bình và biến động của thị trường để tạo ra tín hiệu giao dịch khi giá phá vỡ đường trung bình và biến động trong phạm vi có thể kiểm soát được.
Các nguyên tắc chính của chiến lược này là:
Từ các nguyên tắc trên, có thể thấy rằng chiến lược này kết hợp với phán đoán xu hướng của hệ thống đường thẳng và đo lường tỷ lệ biến động của chỉ số ATR, chủ yếu theo dõi xu hướng, đồng thời kiểm soát rủi ro rút lui, là một chiến lược theo xu hướng.
Chiến lược phá vỡ chậm trễ hai đường đều có những lợi thế sau:
Mặc dù chiến lược này có một số lợi thế, nhưng nó cũng có những rủi ro:
Đối với các rủi ro trên, có thể tối ưu hóa và cải thiện các khía cạnh sau:
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Các tối ưu hóa trên có thể cải thiện khả năng thích ứng, ổn định và lợi nhuận của chiến lược, nhưng cần lưu ý rằng tối ưu hóa quá mức có thể dẫn đến sự phù hợp của đường cong chiến lược, hoạt động kém bên ngoài mẫu, do đó cần xác minh phản hồi đầy đủ trong và ngoài mẫu.
Chiến lược phá vỡ chậm trễ hai đường bằng phẳng là một chiến lược theo dõi xu hướng cổ điển, đánh giá xu hướng bằng hệ thống bằng phẳng, sử dụng chỉ số ATR để kiểm soát rủi ro và quản lý rủi ro trong khi nắm bắt xu hướng. Mặc dù có một số vấn đề về chậm trễ và giao dịch thường xuyên, nhưng bằng cách tối ưu hóa dừng lỗ, giới thiệu bộ lọc tín hiệu, tùy biến thích nghi, tối ưu hóa, quản lý vị trí, các phương pháp khác, có thể nâng cao hiệu suất của chiến lược, làm cho nó trở thành một chiến lược giao dịch định lượng thực tế.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="2 Moving Averages", shorttitle="2MA", overlay=true)
// Moving Averages
len = input(14, minval=1, title="Length MA1")
src = input(close, title="Source MA1")
ma1 = sma(src, len)
len2 = input(50, minval=1, title="Length MA2")
src2 = input(close, title="Source MA2")
ma2 = sma(src2, len2)
// Plotting Moving Averages
plot(ma1, color=#0b6ce5, title="MA1")
plot(ma2, color=#00ff80, linewidth=2, title="MA2")
// ATR Bands
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
upperBand = high + atr(atrLength) * atrMultiplier
lowerBand = low - atr(atrLength) * atrMultiplier
u =plot(upperBand, color=color.rgb(217, 220, 223, 84), title="ATR Upper Band")
l = plot(lowerBand, color=color.rgb(217, 220, 223, 84), title="ATR Lower Band")
fill(u, l, color=#471eb821, title="ATR Background")
// Conditions for plotting arrows
upArrowCondition = ma1 > ma2 and crossover(close, ma1)
downArrowCondition = ma1 < ma2 and crossunder(close, ma1)
// Plotting arrows
plotshape(upArrowCondition, style=shape.arrowup, color=color.rgb(66, 45, 255), size=size.normal, location=location.belowbar, title="Up Arrow")
plotshape(downArrowCondition, style=shape.arrowdown, color=color.red, size=size.normal, location=location.abovebar, title="Down Arrow")
// Checkbox for trade execution
showTrades = input(true, title="Hiển thị giao dịch")
// Buy Condition
if (upArrowCondition and showTrades)
strategy.entry("Buy", strategy.long)
// Sell Condition
if (downArrowCondition and showTrades)
strategy.entry("Sell", strategy.short)
// Stop Loss and Take Profit
stopLossBuy = low - atr(14) * atrMultiplier
takeProfitBuy = close + (close - stopLossBuy) * 2
stopLossSell = high + atr(14) * atrMultiplier
takeProfitSell = close - (stopLossSell - close) * 2
strategy.exit("Exit Buy", "Buy", stop=stopLossBuy, limit=takeProfitBuy)
strategy.exit("Exit Sell", "Sell", stop=stopLossSell, limit=takeProfitSell)