Tài nguyên đang được tải lên... tải...

Xu hướng chéo trung bình động động theo chiến lược với quản lý rủi ro thích nghi

Tác giả:ChaoZhang, Ngày: 2024-12-27 15:08:40
Tags:SMAMATPSL

img

Tổng quan

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

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

Lý thuyết cốt lõi dựa trên mối quan hệ chéo giữa các đường trung bình động nhanh (5 giai đoạn) và chậm (12 giai đoạn). Một tín hiệu mua được tạo ra khi MA nhanh vượt qua trên MA chậm, trong khi các vị trí được đóng khi MA nhanh vượt qua dưới MA chậm. Tính độc đáo của chiến lược nằm trong cơ chế quản lý rủi ro năng động của nó: sau khi nhập vị trí, hệ thống liên tục theo dõi chuyển động giá và điều chỉnh năng động mức lợi nhuận và dừng lỗ để tối đa hóa lợi nhuận trong khi kiểm soát rủi ro.

Ưu điểm chiến lược

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

Rủi ro chiến lược

  1. Có thể tạo ra tín hiệu sai trong các thị trường khác nhau, dẫn đến giao dịch thường xuyên
  2. Khả năng rút vốn đáng kể trong các kịch bản đảo ngược nhanh
  3. Cài đặt tham số không chính xác có thể ảnh hưởng đến hiệu suất chiến lược
  4. Các vấn đề thanh khoản thị trường có thể ảnh hưởng đến việc thực hiện lệnh dừng lỗ Khuyến nghị quản lý rủi ro:
  • Thêm bộ lọc xu hướng
  • Tối ưu hóa lựa chọn tham số
  • Theo dõi thanh khoản thị trường trong thời gian thực
  • Thiết lập hệ thống quản lý tiền tệ toàn diện

Hướng dẫn tối ưu hóa

  1. giới thiệu các chỉ số sức mạnh xu hướng để lọc các tín hiệu thị trường dao động
  2. Xem xét kết hợp các yếu tố âm lượng để cải thiện độ tin cậy tín hiệu
  3. Tối ưu hóa các thông số lợi nhuận/giữ lỗ để tăng tỷ lệ rủi ro-lợi nhuận
  4. Thêm cơ chế điều chỉnh biến động thị trường
  5. Cải thiện hệ thống định kích thước vị trí

Tóm lại

Chiến lược này có hiệu quả nắm bắt xu hướng và kiểm soát rủi ro một cách năng động bằng cách kết hợp các tín hiệu chéo trung bình động cổ điển với quản lý rủi ro năng động sáng tạo.


/*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)







Có liên quan

Thêm nữa