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

Tác giả:ChaoZhang, Ngày: 2024-02-04 16:06:46
Tags:

img

Tổng quan

Chiến lược đột phá trung bình động kép là một xu hướng điển hình sau chiến lược giao dịch định lượng. Nó tạo ra tín hiệu giao dịch bằng cách tính toán trung bình động đơn giản của các giai đoạn khác nhau và kiểm tra xem giá có phá vỡ chúng để xác định vị trí hay không. Chiến lược này sử dụng trung bình động 20 ngày và 60 ngày làm tín hiệu giao dịch.

Chiến lược logic

Lý thuyết cốt lõi của chiến lược MA kép làsử dụng các đường trung bình động của các giai đoạn khác nhau để nắm bắt xu hướng giá và tạo ra các tín hiệu giao dịch khi giá vượt qua đường trung bình động.

Đặc biệt, chiến lược này sử dụng trung bình di chuyển đơn giản 20 ngày và 60 ngày. Hai trung bình di chuyển này có thể được xem là công cụ để nắm bắt xu hướng ngắn hạn và trung hạn tương ứng. Khi giá ngắn hạn phá vỡ giá trung hạn dài hạn, nó báo hiệu rằng thị trường đang có xu hướng tăng và do đó nên đi dài. Khi giá ngắn hạn giảm xuống dưới giá trung hạn dài hạn, nó báo hiệu rằng thị trường đang có xu hướng giảm và do đó các vị trí nên được giảm.

Mã sử dụngta.crossoverta.crossunderđể xác định xem giá đã phá vỡ hoặc giảm xuống dưới mức trung bình động.

Ưu điểm

Chiến lược phá vỡ trung bình di chuyển kép có những lợi thế sau:

  1. Khái niệm này rất đơn giản và dễ hiểu và thực hiện.
  2. Nó có thể theo dõi hiệu quả xu hướng thị trường và tránh nhiễu nhiễu.
  3. Một số tham số chiến lược và dễ tối ưu hóa.
  4. linh hoạt trong việc lựa chọn các giai đoạn trung bình động để điều chỉnh độ nhạy của thị trường.

Rủi ro

Ngoài ra còn có một số rủi ro với chiến lược:

  1. Có thể giảm bớt bằng cách tăng thời gian giữ.
  2. Không hiệu quả trong việc phát hiện sự đảo ngược thị trường nhanh chóng.
  3. Đường trung bình di chuyển vốn bị tụt hậu, không thể báo hiệu sớm những thay đổi giá.

Các lĩnh vực cải tiến

Chiến lược có thể được tăng cường từ các khía cạnh sau:

  1. Tối ưu hóa các khoảng thời gian trung bình động để tìm các tập hợp thông số tốt nhất.
  2. Thêm các chỉ số khác để lọc các tín hiệu sai, ví dụ: MACD, KD v.v.
  3. Thêm logic dừng lỗ.
  4. Bao gồm phân tích nhiều khung thời gian cho độ bền.

Tóm lại

Chiến lược breakout trung bình động kép là một chiến lược theo xu hướng đơn giản và thực tế. Nó có thể nắm bắt hiệu quả xu hướng trung dài hạn trong khi tránh tiếng ồn thị trường ngắn hạn. Ngoài ra, logic dễ hiểu và các tham số hạn chế làm cho nó rất phù hợp với giao dịch định lượng. Tất nhiên có nhiều phòng cải tiến, chẳng hạn như điều chỉnh tham số, lọc tín hiệu và dừng lỗ để làm cho nó ổn định và có lợi nhuận hơn.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)   


Thêm nữa