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

Đường chéo trung bình chuyển động thích nghi với chiến lược dừng lỗ sau

Tác giả:ChaoZhang, Ngày: 2024-07-29 14:27:58
Tags:SMAMAEMAATRSLTP

img

Tổng quan

Chiến lược chuyển động trung bình thích nghi với chiến lược dừng lỗ theo sau là một phương pháp giao dịch định lượng kết hợp nhiều chỉ số kỹ thuật. Chiến lược này chủ yếu dựa trên các tín hiệu chéo giữa các chỉ số chuyển động trung bình đơn giản (SMA) nhanh và chậm cho các mục nhập giao dịch, trong khi sử dụng một chiến lược dừng lỗ theo sau thích nghi để quản lý rủi ro. Chiến lược cũng kết hợp các tính năng tiên tiến như kích thước vị trí dựa trên biến động và mức dừng lỗ thích nghi để tăng khả năng thích nghi và độ bền của nó trong các điều kiện thị trường khác nhau.

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

Logic cốt lõi của chiến lược này bao gồm các thành phần chính sau:

  1. Moving Average Crossover: Sử dụng hai Simple Moving Averages (SMA) với các khoảng thời gian khác nhau - một SMA nhanh (mất 5 khoảng thời gian) và một SMA chậm (mất 50 khoảng thời gian).

  2. Đánh giá vị trí: Chiến lược sử dụng phương pháp định giá vị trí năng động dựa trên số dư tài khoản và giá hiện tại.

  3. Trailing Stop-Loss: Thực hiện cơ chế stop-loss dựa trên tỷ lệ phần trăm. Mức stop-loss di chuyển lên khi giá tăng, khóa lợi nhuận và hạn chế rút tiền.

  4. Tính năng thích nghi: Nếu tùy chọn fancy_tests được bật, chiến lược sử dụng tỷ lệ stoploss động dựa trên độ lệch chuẩn, cho phép mức stoploss thích nghi với biến động thị trường.

  5. Logic Exit: Chiến lược chủ yếu dựa trên stop-loss cuối cùng để đóng vị trí, mà không thiết lập các điểm lợi nhuận cố định.

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

  1. Tiếp theo xu hướng: Bằng cách sử dụng chéo trung bình động, chiến lược có thể nắm bắt xu hướng trung bình đến dài hạn, có lợi cho lợi nhuận đáng kể trong các thị trường có xu hướng mạnh.

  2. Quản lý rủi ro: Cơ chế dừng lỗ cuối cùng kiểm soát hiệu quả rủi ro giảm trong khi cho phép lợi nhuận chạy.

  3. Khả năng thích nghi: Bằng cách kết hợp các yếu tố biến động để điều chỉnh mức dừng lỗ, chiến lược có thể thích nghi tốt hơn với các môi trường thị trường khác nhau.

  4. Quản lý vốn: Định kích thước vị trí năng động giúp tăng kích thước giao dịch khi tài khoản phát triển và tự động giảm rủi ro khi rút tiền tài khoản.

  5. Tính linh hoạt: Chiến lược cung cấp nhiều thông số có thể điều chỉnh, chẳng hạn như thời gian trung bình động và tỷ lệ stoploss, cho phép người dùng tối ưu hóa dựa trên các thị trường khác nhau và sở thích rủi ro cá nhân.

Rủi ro chiến lược

  1. Phá vỡ sai: Trong các thị trường dao động hoặc hỗn loạn, các sự phá vỡ sai thường xuyên của đường trung bình động có thể xảy ra, dẫn đến nhiều bước ra khỏi lỗ dừng.

  2. Sự chậm trễ: Mức trung bình động vốn là các chỉ số chậm trễ, có thể không phản ứng đủ nhanh trong các thị trường biến động cao.

  3. Giao dịch quá mức: Cài đặt tham số không chính xác có thể dẫn đến các bước vào và ra thường xuyên, làm tăng chi phí giao dịch.

  4. Nguy cơ rút vốn: Mặc dù dừng lỗ, chiến lược vẫn có thể phải đối mặt với các khoản rút vốn đáng kể trong các thị trường đảo ngược nhanh chóng.

  5. Giao dịch một chiều: Chiến lược hiện chỉ có các vị trí dài, có khả năng bỏ lỡ cơ hội hoặc chịu tổn thất trong xu hướng giảm.

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

  1. Phân tích nhiều khung thời gian: giới thiệu các chỉ số xu hướng dài hạn, chẳng hạn như trung bình động dài hạn, để giảm tín hiệu sai.

  2. Thêm logic bán ngắn: Mở rộng chiến lược để hỗ trợ các giao dịch ngắn, cải thiện tính toàn diện và cơ hội lợi nhuận.

  3. Tối ưu hóa thời gian nhập cảnh: Xem xét kết hợp các chỉ số kỹ thuật khác (ví dụ: RSI, MACD) để lọc các tín hiệu giao dịch và cải thiện độ chính xác nhập cảnh.

  4. Tối ưu hóa tham số động: Thực hiện các cơ chế điều chỉnh tham số thích nghi, chẳng hạn như điều chỉnh động các giai đoạn trung bình động dựa trên biến động thị trường.

  5. Giới thiệu cơ chế lấy lợi nhuận: Ngoài việc dừng lại, hãy xem xét thêm các quy tắc lấy lợi nhuận dựa trên các chỉ số kỹ thuật hoặc mục tiêu cố định.

  6. Cải thiện quản lý vị thế: Thực hiện các chiến lược định giá vị thế phức tạp hơn, chẳng hạn như dựa trên tiêu chí Kelly hoặc các phương pháp cân bằng rủi ro khác.

  7. Thêm các bộ lọc cơ bản: Đối với giao dịch chứng khoán, hãy xem xét kết hợp các chỉ số cơ bản làm điều kiện lọc giao dịch bổ sung.

Kết luận

Chiến lược chuyển động trung bình thích nghi với chiến lược dừng lỗ theo sau là một cách tiếp cận toàn diện tích hợp nhiều khái niệm giao dịch định lượng. Nó nắm bắt xu hướng thông qua các giao dịch chuyển động trung bình, quản lý rủi ro bằng cách sử dụng các điểm dừng, và tăng khả năng thích nghi thông qua các điều chỉnh tham số động. Trong khi rủi ro và hạn chế vốn có tồn tại, tối ưu hóa tham số cẩn thận và cải tiến chiến lược hơn nữa có khả năng biến nó thành một hệ thống giao dịch mạnh mẽ.


/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © chinmay.hundekari

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

// Calculate two moving averages with different lengths.
SLMA = input.int(50,"SMA",minval=10,step=1)
FSMA = input.int(5,"SMA",minval=1,step=1)
fancy_tests = input.bool(true,"Enable Fancy Changes")
longLossPerc = input.float(2, title="Trailing Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01
stdMult = input.float(2.0, title="Standard Deviation Multiplier",
     minval=0.0, step=0.01)

float fastMA = ta.sma(close, FSMA)
float slowMA = ta.sma(close, SLMA)
float closMA = ta.sma(close, 25)

confidence = 1.0
if (fancy_tests)
    longLossPerc := stdMult * ta.stdev(ohlc4, 20)/close
balance = strategy.initial_capital + strategy.netprofit
balanceInContracts = balance* confidence/close

// Enter a long position when `fastMA` crosses over `slowMA`.
if ta.crossover(fastMA, slowMA)
    strategy.entry("BUY", strategy.long, qty=balanceInContracts)
//longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
//Trailing Stop loss Code
longStopPrice = 0.0
percLoss = longLossPerc
longStopPrice := if strategy.position_size > 0
    //if (strategy.openprofit_percent/100.0 > longLossPerc)
    //    percLoss := math.min(strategy.openprofit_percent/200.0, longLossPerc)
    stopValue = close * (1 - percLoss)
    math.max(stopValue, longStopPrice[1])
else
    0
if strategy.position_size > 0
    strategy.exit("STP", stop=longStopPrice)
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_cross,
     linewidth=2, title="Long Stop Loss")
// Enter a short position when `fastMA` crosses under `slowMA`.
//if ta.crossunder(fastMA, closMA)
//    strategy.close_all("SEL")//strategy.entry("sell", strategy.short)

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)
plot((confidence)*(close), "Confidence", color=color.green, linewidth=2)


Có liên quan

Thêm nữa