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


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

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

Tổng quan

Chiến lược phá vỡ đường hai chiều là một chiến lược giao dịch định lượng điển hình hơn theo xu hướng. Chiến lược này được đánh giá bằng cách tính toán đường trung bình di chuyển đơn giản trong các chu kỳ khác nhau và thiết lập tín hiệu giao dịch như đường trung bình di chuyển giá. Chiến lược này sử dụng đường 20 ngày và đường 60 ngày làm tín hiệu giao dịch.

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

Lập luận cốt lõi của chiến lược đột phá hai chiều là:Sử dụng trung bình di chuyển trong các chu kỳ khác nhau để nắm bắt xu hướng giá và phát tín hiệu giao dịch khi giá vượt qua trung bình di chuyển

Cụ thể, chiến lược này sử dụng đường trung bình di chuyển đơn giản 20 ngày và đường trung bình di chuyển đơn giản 60 ngày. Hai đường trung bình di chuyển có thể được coi là công cụ để nắm bắt xu hướng ngắn hạn và xu hướng trung hạn.

Quyết định trong mãta.crossoverta.crossunderĐể xác định xem giá có vượt qua hoặc giảm xuống một đường trung bình di chuyển nào không. Khi xảy ra sự phá vỡ, chỉ thị được đưa ra để tăng hoặc giảm.

Lợi thế chiến lược

Chiến lược phá vỡ hai đường đều có một số lợi thế:

  1. Khái niệm đơn giản, dễ hiểu và dễ thực hiện.
  2. Có thể theo dõi xu hướng thị trường một cách hiệu quả và tránh bị ảnh hưởng bởi tiếng ồn.
  3. Các tham số chiến lược ít hơn và dễ dàng tối ưu hóa.
  4. Có thể chọn chu kỳ trung bình di chuyển linh hoạt, điều chỉnh độ nhạy cảm của thị trường.

Rủi ro chiến lược

Tuy nhiên, chiến lược phá vỡ hai đường thẳng cũng có một số rủi ro:

  1. Khi thị trường đang trong xu hướng dao động, sẽ có nhiều tín hiệu sai. Điều này có thể được giảm bớt bằng cách tăng chu kỳ giữ vị trí.
  2. Các chỉ số khác có thể được kết hợp với nhau như là một bộ lọc.
  3. Đường trung bình di chuyển vốn có sự chậm trễ, không thể phản ứng trước với sự thay đổi giá.

Hướng tối ưu hóa chiến lược

Chiến lược đột phá hai đường đều có thể được tối ưu hóa từ các chiều sau:

  1. Tối ưu hóa các tham số chu kỳ của trung bình di chuyển để tìm các tham số tốt nhất.
  2. Thêm các chỉ số khác để tránh tín hiệu sai. Ví dụ MACD, KD, v.v.
  3. Thêm logic dừng lỗ.
  4. Kết hợp với phân tích chu kỳ thời gian, thực hiện nhiều khung thời gian.

Tóm tắt

Chiến lược phá vỡ đường hai chiều là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó có thể nắm bắt hiệu quả xu hướng trung hạn và dài hạn, tránh sự nhiễu loạn của tiếng ồn thị trường ngắn hạn.

Mã nguồn chiến lược
/*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)