Xu hướng sau chiến lược dựa trên bao bì Nadaraya-Watson và chỉ số ROC

Tác giả:ChaoZhang, Ngày: 2024-01-19 15:14:23
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Dual Envelope Trend Following Strategy. Nó sử dụng phong bì Nadaraya-Watson (NW) và chỉ số ROC để xác định hướng xu hướng để theo xu hướng. Nó sẽ dài khi phong bì NW mở rộng và ROC là dương tính; đi ngắn khi phong bì NW co lại và ROC là âm. Các điều kiện dừng lỗ và lấy lợi nhuận cũng được cấu hình để kiểm soát rủi ro.

Chiến lược logic

Xu hướng bao bì kép theo chiến lược chủ yếu sử dụng bao bì NW và chỉ số ROC để xác định tín hiệu nhập cảnh.

Cụ thể, chiến lược này đầu tiên tính toán giới hạn trên và dưới của phong bì NW. Khi giá vượt qua giới hạn trên NW và ROC> 0, nó chỉ ra xu hướng tăng, do đó đi dài. Khi giá vượt qua giới hạn dưới NW và ROC <0, nó chỉ ra xu hướng giảm, do đó đi ngắn.

Sau khi nhập dài hoặc ngắn, điểm dừng lỗ và lấy lợi nhuận được thiết lập. Stop loss được cố định dưới mức giá nhập. Take profit là số nhân nhất định của các điểm dừng lỗ trên mức giá nhập. Điều này kiểm soát hiệu quả rủi ro cho mỗi giao dịch.

Tóm lại, chiến lược theo xu hướng phong bì kép kết hợp các phong bì NW và chỉ số ROC để đánh giá hướng xu hướng, và sử dụng dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro, nhận ra xu hướng sau khi giao dịch.

Phân tích lợi thế

Xu hướng hai phong bì sau chiến lược có những lợi thế sau:

  1. Sử dụng phong bì NW để xác định hướng xu hướng có thể xác định hiệu quả xu hướng giá và giảm các tín hiệu sai.

  2. Kết hợp với chỉ số ROC để đánh giá sức mạnh xu hướng tránh giao dịch sai trên các thị trường khác nhau.

  3. Thiết lập stop loss và take profit kiểm soát rủi ro, cho phép dừng lại trước khi lỗ mở rộng.

  4. Chiến lược có ít tham số và dễ hiểu và tối ưu hóa.

  5. Nó có thể được áp dụng cho bất kỳ thị trường bao gồm ngoại hối, tiền điện tử và cổ phiếu.

Phân tích rủi ro

Xu hướng hai phong bì sau chiến lược cũng có những rủi ro sau:

  1. Các chiến lược theo xu hướng dễ bị tổn thất nghiêm trọng trong quá trình đảo ngược xu hướng. Các thông số nên được điều chỉnh hoặc can thiệp bằng tay.

  2. Một stop loss quá rộng có thể mở rộng lỗ.

  3. Trong các thị trường biến động cao, dừng lỗ có thể bị xâm nhập, không thể kiểm soát lỗ.

  4. Chi phí giao dịch và trượt không được xem xét có thể làm tăng thêm lỗ trong giao dịch tần số cao.

Nói chung, các rủi ro có thể được giảm bằng cách tối ưu hóa các tham số, cải thiện chiến lược dừng lỗ và can thiệp thủ công thích hợp.

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

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

  1. Tối ưu hóa các thông số NW như thời gian cửa sổ và băng thông để tìm kết hợp tốt nhất.

  2. Tối ưu hóa kích thước cửa sổ ROC để giảm tín hiệu sai.

  3. Hãy thử các chỉ số khác như KDJ và MACD để đánh giá xu hướng và nhập cảnh.

  4. Kết hợp các mô hình học máy để tối ưu hóa stop loss và lợi nhuận một cách năng động.

  5. Thêm tín hiệu đảo ngược xu hướng để chủ động thoát khỏi khi xu hướng đảo ngược.

  6. Xem xét các chi tiết thực tế như trượt, phí, xác suất thất bại dừng lỗ để làm cho chiến lược gần hơn với giao dịch trực tiếp.

Tối ưu hóa tham số, giới thiệu chỉ số và thuật toán có thể cải thiện hơn nữa tính ổn định và lợi nhuận của chiến lược.

Tóm lại

Tóm lại, chiến lược này được đặt tên là Dual Envelope Trend Following Strategy. Nó sử dụng phong bì NW và chỉ số ROC để xác định hướng và mục xu hướng, và thiết lập dừng lỗ và lấy lợi nhuận cho xu hướng sau khi giao dịch. Chiến lược này đơn giản và hiệu quả, tốt trong việc theo dõi xu hướng và kiểm soát rủi ro, và có thể được áp dụng cho các thị trường khác nhau.


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

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

// --- Nadaraya-Watson Envelope [LUX] ---
length_NW = input.float(500, title='NW Window Size', maxval=500, minval=0)
h_NW = input.float(8.0, title='NW Bandwidth')
mult_NW = input.float(3.0, title='NW Multiplier')
src_NW = input(close, title='NW Source')
up_col_NW = input.color(#39ff14, title='NW Upper Color', inline='col')
dn_col_NW = input.color(#ff1100, title='NW Lower Color', inline='col')
disclaimer_NW = input(false, title='NW Hide Disclaimer')

// --- Rate Of Change (ROC) ---
length_ROC = input.int(9, title='ROC Window Size', minval=1)
source_ROC = input(close, title='ROC Source')

roc = 100 * (source_ROC - source_ROC[length_ROC]) / source_ROC[length_ROC]

// --- Calcola Stop Loss e Take Profit in Pips ---
pip_multiplier = input(0.0001, title="PIP Multiplier")  // Moltiplicatore per convertire da pips a valore numerico

stop_loss_pips = 4
take_profit_multiplier = 2.1

stop_loss_value = close - stop_loss_pips * pip_multiplier
take_profit_value = close + stop_loss_pips * take_profit_multiplier * pip_multiplier

// --- Conditions for Entry ---
entry_condition_long = src_NW + mult_NW * mult_NW > 0 and roc > 0 and close > close[1]
entry_condition_short = src_NW - mult_NW * mult_NW < 0 and roc < 0 and close < close[1]

// --- Strategy Logic ---
if (entry_condition_long)
    strategy.entry("Buy", strategy.long)

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

if (strategy.position_size > 0)
    strategy.exit("Stop Loss/Profit", from_entry="Buy", loss=stop_loss_value, profit=take_profit_value)

if (strategy.position_size < 0)
    strategy.exit("Stop Loss/Profit", from_entry="Sell", loss=stop_loss_value, profit=take_profit_value)

// --- Plotting ---
plot(roc, color=#2962FF, title="ROC")
hline(0, color=#787B86, title="Zero Line")



Thêm nữa