Chiến lược này là một hệ thống theo xu hướng dựa trên các giao dịch chéo trung bình chuyển động biểu thức (EMA), kết hợp kích thước vị trí năng động và quản lý rủi ro. Nó sử dụng các tín hiệu chéo EMA nhanh và chậm để xác định xu hướng thị trường trong khi điều chỉnh kích thước giao dịch một cách năng động thông qua tính toán rủi ro tỷ lệ phần trăm và sử dụng các điểm dừng để bảo vệ lợi nhuận.
Khái niệm cơ bản dựa trên hai EMA với các khoảng thời gian khác nhau (thất định 9 và 21). Một tín hiệu đầu vào dài được tạo ra khi EMA nhanh vượt qua trên EMA chậm, trong khi các vị trí được đóng khi EMA nhanh vượt qua dưới EMA chậm. Mỗi kích thước giao dịch được tính năng dựa trên rủi ro tỷ lệ phần trăm cố định (thất định 1%) tổng vốn hóa tài khoản, với mức lợi nhuận được thiết lập theo tỷ lệ rủi ro-lợi nhuận và điểm dừng theo tỷ lệ phần trăm.
Đây là một hệ thống giao dịch hoàn chỉnh kết hợp các phương pháp phân tích kỹ thuật cổ điển với các khái niệm quản lý rủi ro hiện đại. Chiến lược kiểm soát rủi ro thông qua việc định kích thước vị trí năng động và dừng lại trong khi nắm bắt các cơ hội xu hướng bằng cách sử dụng đường chéo EMA. Mặc dù có một số hạn chế vốn có, các hướng tối ưu hóa được đề xuất có thể tăng cường thêm độ mạnh mẽ và khả năng thích nghi của chiến lược. Chiến lược đặc biệt phù hợp với giao dịch xu hướng dài hạn với rủi ro được kiểm soát.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bitcoin Exponential Profit Strategy", overlay=true) // User settings fastLength = input.int(9, title="Fast EMA Length", minval=1) slowLength = input.int(21, title="Slow EMA Length", minval=1) riskPercent = input.float(1, title="Risk % Per Trade", step=0.1) / 100 rewardMultiplier = input.float(2, title="Reward Multiplier (R:R)", step=0.1) trailOffsetPercent = input.float(0.5, title="Trailing Stop Offset %", step=0.1) / 100 // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Plot EMAs plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.red, title="Slow EMA") // Account balance and dynamic position sizing capital = strategy.equity riskAmount = capital * riskPercent // Define Stop Loss and Take Profit Levels stopLossLevel = close * (1 - riskPercent) takeProfitLevel = close * (1 + rewardMultiplier * riskPercent) // Trailing stop offset trailOffset = close * trailOffsetPercent // Entry Condition: Bullish Crossover if ta.crossover(fastEMA, slowEMA) positionSize = riskAmount / math.max(close - stopLossLevel, 0.01) // Prevent division by zero strategy.entry("Long", strategy.long, qty=positionSize) strategy.exit("TakeProfit", from_entry="Long", stop=stopLossLevel, limit=takeProfitLevel, trail_offset=trailOffset) // Exit Condition: Bearish Crossunder if ta.crossunder(fastEMA, slowEMA) strategy.close("Long") // Labels for Signals if ta.crossover(fastEMA, slowEMA) label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up) if ta.crossunder(fastEMA, slowEMA) label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_down)