Chiến lược theo dõi xu hướng giao cắt trung bình động động

SMA MA TP SL
Ngày tạo: 2024-12-27 15:08:40 sửa đổi lần cuối: 2024-12-27 15:08:40
sao chép: 4 Số nhấp chuột: 398
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi xu hướng giao cắt trung bình động động

Tổng quan

Chiến lược này là một hệ thống theo dõi xu hướng dựa trên tín hiệu giao nhau của đường trung bình động kép, kết hợp với cơ chế dừng lỗ và dừng lãi động. Chiến lược này sử dụng đường trung bình động đơn giản (SMA) 5 kỳ và 12 kỳ để tạo tín hiệu giao dịch và tối ưu hóa tỷ lệ rủi ro-lợi nhuận bằng cách điều chỉnh động mức chốt lời và mức dừng lỗ. Mức chốt lời ban đầu được đặt ở mức 10% và mức dừng lỗ được đặt ở mức 5%. Khi giá di chuyển theo hướng thuận lợi, mức chốt lời được điều chỉnh thành 20% và mức dừng lỗ được thắt chặt thành 2,5%. để bảo vệ lợi nhuận.

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

Logic cốt lõi của chiến lược này dựa trên mối quan hệ giao thoa giữa đường trung bình động nhanh (5 kỳ) và đường trung bình động chậm (12 kỳ). Khi đường nhanh cắt đường chậm từ dưới lên trên, hệ thống sẽ tạo ra tín hiệu dài và mở một vị thế; khi đường nhanh cắt đường chậm từ trên xuống dưới, hệ thống sẽ đóng vị thế. Điểm độc đáo của chiến lược này nằm ở cơ chế quản lý rủi ro động: khi một vị thế được thiết lập, hệ thống sẽ theo dõi xu hướng giá theo thời gian thực và điều chỉnh mức chốt lời và dừng lỗ một cách linh hoạt theo những thay đổi về giá để tối đa hóa lợi nhuận trong khi vẫn kiểm soát được rủi ro. .

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

  1. Hệ thống áp dụng chiến lược giao cắt trung bình động kép cổ điển, với tín hiệu rõ ràng, dễ hiểu và dễ thực hiện.
  2. Cơ chế dừng lỗ và dừng lãi động có thể bảo vệ hiệu quả lợi nhuận đã thực hiện và tránh tình trạng rút tiền
  3. Các thông số chiến lược có thể được điều chỉnh linh hoạt theo các đặc điểm khác nhau của thị trường, có khả năng thích ứng mạnh mẽ
  4. Cơ chế quản lý rủi ro hoàn hảo và có thể kiểm soát hiệu quả rủi ro của một giao dịch duy nhất
  5. Cấu trúc mã rõ ràng, dễ bảo trì và tối ưu hóa

Rủi ro chiến lược

  1. Một thị trường biến động có thể tạo ra các tín hiệu sai, dẫn đến giao dịch thường xuyên
  2. Một sự thoái lui lớn có thể xảy ra trong một sự đảo ngược nhanh chóng
  3. Cài đặt tham số không phù hợp có thể ảnh hưởng đến hiệu suất chiến lược
  4. Thanh khoản thị trường không đủ có thể ảnh hưởng đến việc thực hiện lệnh dừng lỗ Các biện pháp sau đây được khuyến nghị để quản lý rủi ro:
  • Thêm bộ lọc xu hướng
  • Lựa chọn tham số tối ưu hóa
  • Theo dõi thanh khoản thị trường theo thời gian thực
  • Thiết lập hệ thống quản lý quỹ lành mạnh

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

  1. Giới thiệu các chỉ báo sức mạnh xu hướng để lọc các tín hiệu gây sốc của thị trường
  2. Hãy cân nhắc thêm các yếu tố âm lượng để cải thiện độ tin cậy của tín hiệu
  3. Tối ưu hóa các thông số dừng lợi nhuận và dừng lỗ để cải thiện tỷ lệ rủi ro-lợi nhuận
  4. Thêm cơ chế thích ứng với biến động thị trường
  5. Cải thiện hệ thống quản lý kho

Tóm tắt

Chiến lược này đạt được khả năng nắm bắt xu hướng hiệu quả và kiểm soát rủi ro linh hoạt bằng cách kết hợp các tín hiệu giao thoa trung bình động cổ điển với các cơ chế quản lý rủi ro linh hoạt sáng tạo. Khái niệm thiết kế chiến lược rõ ràng, phương pháp thực hiện ngắn gọn và hiệu quả, có tính thực tiễn và khả năng mở rộng tốt. Thông qua việc tối ưu hóa và cải tiến liên tục, chiến lược này dự kiến ​​sẽ đạt được hiệu suất lợi nhuận ổn định trong các giao dịch thực tế.

Mã nguồn chiến lược
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)