Chiến lược DCA hàng ngày với liên quan đến EMA

Tác giả:ChaoZhang, Ngày: 2024-01-16 15:30:17
Tags:

img

Tổng quan

Chiến lược kịch bản Pine này thực hiện phương pháp trung bình hóa chi phí đô la hàng ngày trên nền tảng TradingView, kết hợp các tín hiệu cảm ứng EMA để xác định các điểm nhập. Nó theo phương pháp trung bình hóa chi phí đô la để đầu tư số tiền cố định mỗi ngày, phân tán mua theo thời gian để giảm rủi ro.

Chiến lược logic

Chiến lược có các đặc điểm chính sau:

  1. Trung bình chi phí mỗi ngày bằng đô la

    • Đầu tư cố định hàng ngày bất kể xu hướng tăng và giảm của thị trường
    • Đầu tư hàng loạt dài hạn để giảm rủi ro giao dịch duy nhất
  2. EMA cho tín hiệu nhập cảnh

    • Tín hiệu mua được kích hoạt khi giá đóng vượt trên EMA 5, 10, 20 v.v.
    • Các đường EMA phục vụ như là hỗ trợ để tránh giảm ngắn hạn
  3. Đánh lỗ dừng động

    • Bán tất cả các vị trí nếu giá đóng giảm dưới SMA 20 ngày
    • Tránh thêm tổn thất
  4. Giới hạn số lượng giao dịch

    • Caps max giao dịch ở mức 300 để kiểm soát kích thước vị trí
    • Ngăn chặn đầu tư quá mức vượt quá năng lực tài sản

Cụ thể, mỗi ngày chiến lược đầu tư một số tiền cố định và tính toán cổ phiếu để mua dựa trên giá đóng. Nếu giá đóng vượt trên bất kỳ EMA 5, 10, 20 ngày nào, một tín hiệu mua sẽ được kích hoạt. Một khi số lượng giao dịch tích lũy đạt giới hạn 300, sẽ không có mua thêm. Ngoài ra, nếu giá đóng dưới SMA 20 ngày hoặc đạt đến ngày ra khỏi đã đặt trước, tất cả các vị trí sẽ được xóa.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Sự đa dạng hóa rủi ro

    • Các khoản đầu tư nhỏ định giá hàng ngày bất kể xu hướng thị trường
    • Tránh theo đuổi những điều cao
  2. Sự kết hợp EMA tránh sự rút lui

    • EMA crossovers ngăn chặn mua vào thời kỳ giảm
    • Tiếp tục mua trong thời gian rút vốn đa dạng hóa rủi ro
  3. Động lực dừng lỗ Kiểm soát lỗ

    • Stop loss cho phép ra khỏi kịp thời
    • Ngăn ngừa tổn thất lớn
  4. Kiểm soát giới hạn thương mại rủi ro

    • Kích thước vị trí tối đa được đặt trước để ngăn chặn đầu tư quá mức
    • Giữ đầu tư trong phạm vi khả năng tài sản
  5. Hình ảnh EMA trực quan

    • EMA được vẽ trên biểu đồ giá
    • Cho phép giám sát dễ dàng bởi nhà khai thác
  6. Khả năng tùy biến cao

    • Các đầu vào tùy chỉnh cho số tiền đầu tư, thời gian EMA, dừng, v.v.
    • Các điều chỉnh dựa trên sở thích rủi ro cá nhân

Phân tích rủi ro

Chiến lược cũng mang một số rủi ro cần lưu ý:

  1. Mối đe dọa hệ thống vẫn còn

    • Các sự kiện thiên nga đen có thể dẫn đến thiệt hại lớn
    • Sự đa dạng hóa chỉ làm giảm nhưng không loại bỏ rủi ro
  2. Số tiền đầu tư cố định

    • Đầu tư cố định hàng ngày có thể bỏ lỡ lợi nhuận nếu giá tăng vọt
    • Sự điều chỉnh số tiền động có thể giúp
  3. EMA không thể phản ứng với các động thái cực đoan

    • EMA phản ứng chậm hơn với các sự kiện đột ngột và không thể ngăn chặn lỗ kịp thời
    • Kết hợp với KD, BOLL có thể giúp xác định những điều cực đoan
  4. Giới hạn giao dịch Tăng khả năng lợi nhuận

    • Giới hạn tối đa cho các giao dịch có thể đạt được
    • Cần phải cân bằng rủi ro và lợi ích
  5. Đặt Stop Loss đòi hỏi sự cẩn thận

    • Dừng quá gần có xu hướng được đưa ra sớm trong khi dừng quá lỏng lẻo không bảo vệ kịp thời
    • Cần thử nghiệm rộng rãi để tìm sự cân bằng đúng

Những cải tiến trong tương lai

Các tối ưu hóa tiếp theo:

  1. Số tiền đầu tư hằng ngày động

    • Cơ sở đầu tư hàng ngày trên các chỉ số
    • Tăng khi tăng, giảm khi giảm
  2. Các tín hiệu nhập cảnh thêm

    • Hoàn thành EMA bằng các chỉ số khác như KD, BOLL
    • Cải thiện nhận dạng các động thái cực đoan
  3. Mức trung bình di chuyển theo cấp số

    • EMA phản ứng chậm với các sự kiện đột ngột, DEMA, TEMA có thể giúp
    • Nắm bắt nhanh hơn các xu hướng mới
  4. Giới hạn vị trí động

    • Tăng giới hạn dựa trên lợi nhuận chiến lược
    • Cho phép rủi ro cao hơn ở định giá hợp lý
  5. Đánh dấu Stop Loss

    • Thị trường chiến lược hiện tại bán tất cả, trailing dừng lại có thể giúp tránh khoảng cách xuống
    • Giảm nguy cơ dừng chạy

Kết luận

Tóm lại, chiến lược DCA hàng ngày kết hợp EMA này thực hiện khái niệm đầu tư định kỳ dài hạn, phân phối rủi ro qua nhiều mục nhỏ so với mua một lần lớn. EMA giúp tránh rủi ro rút ngắn hạn ở một mức độ nhất định, trong khi dừng lỗ kiểm soát lỗ tối đa. Tuy nhiên, rủi ro thiên nga đen và giới hạn kích thước đầu tư cố định cần phải được ghi nhớ. Những khía cạnh này cung cấp các hướng cải thiện trong tương lai thông qua điều chỉnh tham số và kết hợp chỉ số để xây dựng các chiến lược lượng hiệu quả nhưng ổn định.


/*backtest
start: 2024-01-08 00:00:00
end: 2024-01-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Daily DCA Strategy with Touching EMAs", overlay=true, pyramiding=10000)

// Customizable Parameters
daily_investment = input(50000, title="Daily Investment")
start_year = input(2022, title="Start Year")
start_month = input(1, title="Start Month")
start_day = input(1, title="Start Day")
end_year = input(2023, title="End Year")
end_month = input(12, title="End Month")
end_day = input(1, title="End Day")
trade_count_limit = input(10000, title="Pyramiding Limit")
enable_sell = input(true, title="Enable Sell")

start_date = timestamp(start_year, start_month, start_day)
var int trade_count = 0

// Calculate the number of shares to buy based on the current closing price
shares_to_buy = daily_investment / close

// Check if a new day has started and after the start date
isNewDay = dayofmonth != dayofmonth[1] and time >= start_date

// Buy conditions based on EMA crossovers
ema5_cross_above = crossover(close, ema(close, 5))
ema10_cross_above = crossover(close, ema(close, 10))
ema20_cross_above = crossover(close, ema(close, 20))
ema50_cross_above = crossover(close, ema(close, 50))
ema100_cross_above = crossover(close, ema(close, 100))
ema200_cross_above = crossover(close, ema(close, 200))

if isNewDay and (ema5_cross_above or ema10_cross_above or ema20_cross_above or ema50_cross_above or ema100_cross_above or ema200_cross_above) and trade_count < trade_count_limit
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    trade_count := trade_count + 1

// Dynamic sell conditions (optional)
sell_condition =  true

if enable_sell and sell_condition
    strategy.close_all()

// EMA Ribbon for visualization
plot(ema(close, 5), color=color.red, title="EMA 5")
plot(ema(close, 10), color=color.orange, title="EMA 10")
plot(ema(close, 20), color=color.yellow, title="EMA 20")
plot(ema(close, 50), color=color.green, title="EMA 50")
plot(ema(close, 100), color=color.blue, title="EMA 100")
plot(ema(close, 200), color=color.purple, title="EMA 200")


Thêm nữa