Chiến lược chéo giữa nhiều đường trung bình động

Tác giả:ChaoZhang, Ngày: 2024-02-04 17:21:25
Tags:

img

Tổng quan

Chiến lược này tính toán các đường trung bình động của nhiều khung thời gian để xác định xu hướng qua các giai đoạn khác nhau. Nó đi dài khi giá vượt qua đường trung bình động và đi ngắn khi giá vượt dưới đường trung bình động. Ngoài ra, dừng lỗ và lấy lợi nhuận được kết hợp để cân bằng rủi ro và lợi nhuận.

Nguyên tắc

Chiến lược dựa trên các điểm chính sau:

  1. Tính toán trung bình di chuyển đơn giản 21 ngày, 50 ngày, 100 ngày và 200 ngày.

  2. Đi dài khi giá vượt qua bất kỳ trung bình động nào, và đi ngắn khi nó vượt qua dưới.

  3. Đặt lệnh dừng lỗ gần giá thấp nhất của thanh trước sau khi mở các vị trí dài và gần giá cao nhất sau khi mở các vị trí ngắn.

  4. Đặt mục tiêu lợi nhuận dưới mức giá thấp nhất cho dài và trên mức giá cao nhất cho ngắn trong một số phạm vi nhất định.

  5. Đóng các vị trí khi giá đạt mức dừng lỗ hoặc lấy lợi nhuận.

Việc đánh giá xu hướng trên nhiều khung thời gian có thể cải thiện độ tin cậy của tín hiệu giao dịch và cho phép chúng ta theo dõi xu hướng khi chúng tương đối rõ ràng.

Ưu điểm

Những lợi thế chính của chiến lược này là:

  1. Tăng độ tin cậy tín hiệu với phân tích nhiều khung thời gian.

  2. Dừng động tạo điều kiện kiểm soát rủi ro. Việc tính toán dừng dựa trên hành động giá cung cấp phạm vi hợp lý để giới hạn lỗ tối đa trên cơ sở mỗi giao dịch.

  3. Cấu trúc mã đơn giản và rõ ràng. cú pháp Pine cung cấp các cấu trúc dễ đọc để dễ dàng điều chỉnh tham số và tối ưu hóa.

  4. Ứng dụng thực tế dễ dàng. Moving average crossovers là một ý tưởng chiến lược cổ điển có thể dễ dàng được thực hiện trong giao dịch trực tiếp với điều chỉnh tham số thích hợp.

Rủi ro

Ngoài ra còn có một số rủi ro cần xem xét:

  1. Phán đoán xu hướng không chính xác. Trung bình động có thể tạo ra các tín hiệu hỗn hợp và chậm trễ, dẫn đến các tín hiệu giao dịch không phù hợp.

  2. Loss exposure in volatile markets. Stop losses có thể dễ dàng được kích hoạt trong khoảng cách giá lớn hoặc đảo ngược, gây ra tổn thất lớn.

  3. Thiết lập tham số không chính xác làm tăng tổn thất.

  4. Rủi ro nắm giữ dài: xu hướng theo chiến lược này không xem xét lợi nhuận dài hạn và có thể tiêu thụ vốn đáng kể theo thời gian.

  5. Sự khác biệt giao dịch thực tế. Chi phí giao dịch, trượt, vv có thể ảnh hưởng đến lợi nhuận khi được áp dụng trong các nền tảng giao dịch thực tế.

Giải pháp:

  1. Thêm xác nhận tín hiệu với các chỉ số khác như KDJ, MACD v.v.

  2. Điều chỉnh chiều rộng dừng dựa trên điều kiện thị trường để tránh kích hoạt sớm.

  3. Tối ưu hóa các tham số và đánh giá lợi nhuận và rút tiền dài hạn.

  4. Kiểm tra kỹ các chiến lược trong giao dịch giấy tờ và thêm dừng thủ công.

Cơ hội gia tăng

Có chỗ cải thiện thêm:

  1. Thêm các quy tắc nhập và xuất định lượng. ví dụ, kiểm tra mức cao và thấp mới để đảm bảo giao dịch theo xu hướng rõ ràng hơn.

  2. Bao gồm kích thước vị trí và quản lý rủi ro. Định kích thước vị trí dựa trên kích thước tài khoản và điều kiện thị trường.

  3. Tăng cường xác nhận xu hướng. Sử dụng các chỉ số như PRZ, ATR, DMI vv để lọc và chọn các xu hướng thích hợp.

  4. Chuyển đổi thời gian giữ dài và ngắn. Đặt dừng lại trên lợi nhuận để khóa lợi nhuận.

  5. Xây dựng hồ bơi cổ phiếu bằng cách sử dụng mô hình đầu tư yếu tố. Điểm và lọc cổ phiếu trên các yếu tố khác nhau.

  6. Thêm máy học để kiểm soát rủi ro. Sử dụng LSTM, RNN vv để hỗ trợ trong phán đoán và ngăn chặn lỗi của con người.

Kết luận

Chiến lược chéo trung bình di chuyển đơn giản này cung cấp việc thực hiện dễ dàng để theo xu hướng. Các điểm dừng động giúp kiểm soát rủi ro. Nhưng một số sự không chính xác tín hiệu và rủi ro chọc chích tồn tại. Việc tối ưu hóa thêm các thông số và các kỹ thuật bổ sung có thể dẫn đến hiệu suất mạnh mẽ hơn.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)


Thêm nữa