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 có các đặc điểm chính sau:
Trung bình chi phí mỗi ngày bằng đô la
EMA cho tín hiệu nhập cảnh
Đánh lỗ dừng động
Giới hạn số lượng giao dịch
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.
Những lợi thế của chiến lược này bao gồm:
Sự đa dạng hóa rủi ro
Sự kết hợp EMA tránh sự rút lui
Động lực dừng lỗ Kiểm soát lỗ
Kiểm soát giới hạn thương mại rủi ro
Hình ảnh EMA trực quan
Khả năng tùy biến cao
Chiến lược cũng mang một số rủi ro cần lưu ý:
Mối đe dọa hệ thống vẫn còn
Số tiền đầu tư cố định
EMA không thể phản ứng với các động thái cực đoan
Giới hạn giao dịch Tăng khả năng lợi nhuận
Đặt Stop Loss đòi hỏi sự cẩn thận
Các tối ưu hóa tiếp theo:
Số tiền đầu tư hằng ngày động
Các tín hiệu nhập cảnh thêm
Mức trung bình di chuyển theo cấp số
Giới hạn vị trí động
Đánh dấu Stop Loss
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")