Chiến lược Golden Cross và Death Cross Double MA


Ngày tạo: 2024-01-31 11:29:45 sửa đổi lần cuối: 2024-01-31 11:29:45
sao chép: 0 Số nhấp chuột: 577
1
tập trung vào
1617
Người theo dõi

Chiến lược Golden Cross và Death Cross Double MA

Tổng quan

Chiến lược này là một chiến lược giao dịch dựa trên hai đường trung bình di chuyển. Nó sẽ hoạt động theo hai đường trung bình di chuyển dài và dài mà người dùng đặt, tức là phát ra tín hiệu giao dịch khi đường di chuyển nhanh vượt qua đường trung bình di chuyển hoặc đi xuống đường trung bình di chuyển chậm.

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

Lập luận cốt lõi của chiến lược này dựa trên nguyên tắc giao chéo của hai đường trung bình di chuyển. Điểm trung bình di chuyển là giá trung bình thu được khi tính trung bình giá đóng cửa trong một khoảng thời gian nhất định.

Trong chiến lược này, MA ngắn hạn đại diện cho xu hướng ngắn hạn của giá, MA dài hạn đại diện cho xu hướng dài hạn của giá. MA ngắn hạn nhạy cảm hơn với sự thay đổi giá so với MA dài hạn và có thể nắm bắt được sự đảo ngược giá nhanh hơn.

Cụ thể, chiến lược sử dụng ta.sma để tính toán trung bình di chuyển đơn giản cho một chu kỳ được chỉ định và sử dụng nó như một tín hiệu giao dịch. Người dùng có thể tùy chỉnh hai tham số MA, tức là chu kỳ đường dài long_period và chu kỳ đường ngắn short_period. Chiến lược sử dụng ta.crossover và ta.crossunder để đánh giá chéo vàng và chéo chết của MA.

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

Chiến lược này có một số ưu điểm:

  1. Nó hoạt động đơn giản và dễ nắm bắt.
  2. Các tham số có thể tùy chỉnh để phù hợp với nhiều môi trường thị trường.
  3. Sử dụng nguyên tắc giao chéo MA kép, lọc hiệu quả tiếng ồn, nắm bắt xu hướng đảo ngược.
  4. Các nhà đầu tư cũng có thể sử dụng các công cụ này để đánh giá giá cả của các cổ phiếu.

Rủi ro chiến lược

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

  1. Khoảng cách MA đôi quá nhỏ có thể tạo ra tín hiệu sai.
  2. Không đúng cách cắt đứt chu kỳ MA, bỏ lỡ xu hướng chính.
  3. Một sự đảo ngược không nhất thiết phải là một sự thay đổi trong xu hướng, và có thể là một tín hiệu sai.
  4. Cần điều chỉnh các tham số để tránh tối ưu hóa quá mức.

Đối với các rủi ro trên, có thể được tối ưu hóa bằng cách điều chỉnh tham số MA, thiết lập trạm dừng lỗ hoặc kết hợp với các chỉ số khác.

Tối ưu hóa không gian

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số chu kỳ MA, sử dụng chu kỳ MA thích ứng.
  2. Tăng bộ lọc lưu lượng truy cập để tránh đột phá giả mạo
  3. Kết hợp với các chỉ số kỹ thuật khác như MACD, KDJ.
  4. Thêm logic Stop Loss Stop Stop để kiểm soát tổn thất đơn.
  5. Cấu trúc mã được tối ưu hóa, thêm không gian mở rộng ở giai đoạn sau của mô-đun.

Tóm tắt

Chiến lược này nói chung rất phù hợp với chiến lược nhập cảnh của giao dịch định lượng. Nó chỉ cần tham số MA đôi đơn giản để hoạt động, hoạt động đơn giản, dễ hiểu, có thể phản ánh trực quan thời gian biến đổi của thị trường. Trong khi đó, chiến lược vẫn có nhiều không gian tối ưu hóa, có thể điều chỉnh tham số hoặc thêm logic khác để cải thiện theo nhu cầu thực tế.

Mã nguồn chiến lược
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))