Chiến lược đảo ngược của mô hình Golden Cross Death Cross trung bình động kép


Ngày tạo: 2023-12-01 16:56:43 sửa đổi lần cuối: 2023-12-01 16:56:43
sao chép: 2 Số nhấp chuột: 613
1
tập trung vào
1619
Người theo dõi

Chiến lược đảo ngược của mô hình Golden Cross Death Cross trung bình động kép

Tổng quan

Chiến lược này sử dụng đường 9 và đường 14 trong hai chỉ số đường trung bình di chuyển để xây dựng tín hiệu mua và bán. Mua khi đường 9 phá vỡ đường 14 từ phía dưới và hình thành đường vàng, bán khi đường 9 phá vỡ đường 14 từ phía trên và hình thành đường chết. Để lọc tín hiệu giả, chiến lược này cũng đưa vào chỉ số đường 50 để đánh giá xem giá có phá vỡ hay không.

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

Chiến lược này chủ yếu dựa trên tín hiệu giao dịch của hai chỉ số đường trung bình di động. Trong hai đường trung bình di động, đường 9 đại diện cho xu hướng ngắn hạn và đường 14 đại diện cho xu hướng trung hạn, giao nhau của chúng là một chỉ số kỹ thuật hiệu quả để xác định xu hướng thị trường. Khi đường xu hướng ngắn hạn phá vỡ đường xu hướng trung hạn từ phía dưới và hình thành một đường giao dịch vàng, đường xu hướng ngắn hạn sẽ mạnh hơn và thuộc về tín hiệu mua; Khi đường xu hướng ngắn hạn phá vỡ và hình thành một đường giao dịch chết, đường xu hướng ngắn hạn sẽ yếu hơn và thuộc về tín hiệu bán.

Ngoài ra, chiến lược cũng giới thiệu đường 50 ngày để lọc các tín hiệu sai lệch. Chỉ khi giá cao hơn đường 50 ngày, mua sẽ xảy ra; Chỉ khi giá thấp hơn đường 50 ngày, bán sẽ xảy ra.

Lập luận của mã cốt lõi là:

// 买入条件:9日线上穿14日线 且 当前价格高于50日线
buyCondition = ta.crossover(sma9, sma14) and close > sma50  

// 卖出条件:9日线下穿14日线 且 当前价格低于50日线
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

Phân tích lợi thế

Những lợi thế của chiến lược đường trung bình di chuyển kép là rõ ràng:

  1. Dễ sử dụng, dễ hiểu và phù hợp cho người mới bắt đầu;
  2. Những người dân ở đây đã có những cuộc biểu tình và tranh luận về tình hình.
  3. Để tránh bị lừa bởi tiếng ồn thị trường ngắn hạn, các chỉ số trung và dài hạn được lọc ra từ các tín hiệu sai lệch.
  4. Có thể theo dõi xu hướng, có lợi nhuận cao và hiệu quả.

Phân tích rủi ro

Tuy nhiên, chiến lược hai đường trung bình di động cũng có một số rủi ro:

  1. Trong trường hợp cực đoan, chẳng hạn như sự sụp đổ của thị trường gấu, một sự sụt giảm lớn đã xảy ra trước khi bị chết. Tại thời điểm này, chiến lược sẽ giữ một số lượng lớn các vị trí thua lỗ cho đến khi bị chết.
  2. Trong tình huống chấn động, giao dịch có sự thay đổi giữa giao dịch vàng và giao dịch chết, liên tục mở và dừng vị trí.

Bạn có thể tối ưu hóa các rủi ro như sau:

  1. Tiếp tục giới thiệu các danh mục chỉ số khác để dừng lại nhanh chóng trong trường hợp sụp đổ.
  2. Thêm điều kiện lọc kho để tránh sự thay đổi của các giao dịch vàng và vàng trong tình trạng biến động.

Hướng tối ưu hóa

Chiến lược hai đường trung bình di chuyển có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số. Điều chỉnh tham số chu kỳ của đường trung bình di chuyển, tối ưu hóa tham số chỉ số.
  2. Các tín hiệu mở kho được lọc hơn nữa. Kết hợp nhiều chỉ số hơn để đánh giá tình hình và tránh gây hiểu lầm.
  3. Lập ra các cơ chế dừng lỗ. Thiết lập các phương thức dừng lỗ như dừng di chuyển, phá vỡ dừng lỗ.
  4. Kết hợp với các chiến lược giao dịch khác. Sử dụng kết hợp với chiến lược khối lượng giao dịch, chiến lược biến động.
  5. Sử dụng đúng đắn các bàn đạp. Tăng hiệu quả hoạt động.

Tóm tắt

Chiến lược đường trung bình di chuyển đôi là một chiến lược hiệu quả và lợi nhuận. Nó có thể được tiếp tục và tiếp tục; đồng thời có một số rủi ro cần được cải thiện hơn nữa. Hiệu quả của chiến lược có thể được tăng cường hơn nữa thông qua các tham số tối ưu hóa, phương thức dừng lỗ và kết hợp các chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("smaCrossReverse", shorttitle="smaCrossReverse", overlay=true)

// Define the length for the SMAs
sma9Length = input(9, title="SMA 9 Length")
sma14Length = input(14, title="SMA 14 Length")
sma50Length = input(50, title="SMA 50 Length")  // Add input for SMA 50

// Calculate SMAs
sma9 = ta.sma(close, sma9Length)
sma14 = ta.sma(close, sma14Length)
sma50 = ta.sma(close, sma50Length)  // Calculate SMA 50

// Buy condition: SMA 9 crosses above SMA 14 and current price is above SMA 50
buyCondition = ta.crossover(sma9, sma14) and close > sma50

// Sell condition: SMA 9 crosses below SMA 14 and current price is below SMA 50
sellCondition = ta.crossunder(sma9, sma14) and close < sma50

// Track the time since position was opened
var float timeElapsed = na
if (buyCondition)
    timeElapsed := 0
else
    timeElapsed := na(timeElapsed[1]) ? timeElapsed[1] : timeElapsed[1] + 1

// Close the buy position after 5 minutes
if (timeElapsed >= 5)
    strategy.close("Buy")

// Track the time since position was opened
var float timeElapsedSell = na
if (sellCondition)
    timeElapsedSell := 0
else
    timeElapsedSell := na(timeElapsedSell[1]) ? timeElapsedSell[1] : timeElapsedSell[1] + 1

// Close the sell position after 5 minutes
if (timeElapsedSell >= 5)
    strategy.close("Sell")

// Plot the SMAs on the chart
plot(sma9, title="SMA 9", color=color.blue)
plot(sma14, title="SMA 14", color=color.red)
plot(sma50, title="SMA 50", color=color.green)  // Plot SMA 50 on the chart

// Strategy entry and exit conditions using if statements
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)