Chiến lược này là một hệ thống giao dịch tự động dựa trên lý thuyết chéo trung bình di chuyển kép với chức năng quản lý rủi ro tích hợp. Chiến lược cốt lõi sử dụng Trung bình Di chuyển Triệu suất (EMA) 21 giai đoạn và 50 giai đoạn làm chỉ số tín hiệu, tự động thực hiện giao dịch dựa trên các điểm chéo trong khi kết hợp các cơ chế Stop Loss và Take Profit để kiểm soát rủi ro.
Hệ thống tạo ra một tín hiệu tăng và đi vào một vị trí dài khi EMA ngắn hạn (21-thời gian) vượt qua EMA dài hạn (50-thời gian), và ngược lại, tạo ra một tín hiệu giảm và đi vào một vị trí ngắn khi EMA ngắn hạn vượt qua dưới EMA dài hạn. Mỗi tín hiệu giao dịch tự động thiết lập mức dừng lỗ và lấy lợi nhuận, với các thiết lập mặc định là 40 ticks để dừng lỗ và 80 ticks để lấy lợi nhuận.
Đây là một chiến lược giao dịch tự động được thiết kế tốt với logic rõ ràng. Bằng cách kết hợp các tín hiệu chéo trung bình động với quản lý rủi ro nghiêm ngặt, chiến lược cung cấp một khuôn khổ kỹ thuật đáng tin cậy để nắm bắt xu hướng thị trường trong khi đảm bảo an toàn giao dịch. Mặc dù có chỗ tối ưu hóa, nền tảng của chiến lược hoàn chỉnh và phù hợp như một mô-đun cơ sở để phát triển và tinh chỉnh hơn nữa trong các hệ thống giao dịch định lượng.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity) // Input settings for SL and TP (ticks) slTicks = input.int(40, title="Stop Loss (ticks)", minval=1) tpTicks = input.int(80, title="Take Profit (ticks)", minval=1) // Define EMA periods ema21 = ta.ema(close, 21) ema50 = ta.ema(close, 50) // Detect crossovers bullishCross = ta.crossover(ema21, ema50) bearishCross = ta.crossunder(ema21, ema50) // Plot the EMAs plot(ema21, color=color.green, linewidth=2, title="EMA 21") plot(ema50, color=color.red, linewidth=2, title="EMA 50") // Calculate tick size in points var float tickSize = syminfo.mintick // Calculate stop loss and take profit prices for long and short positions longSL = close - slTicks * tickSize longTP = close + tpTicks * tickSize shortSL = close + slTicks * tickSize shortTP = close - tpTicks * tickSize // Execute trades on crossover signals if (bullishCross) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP) if (bearishCross) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP) // Plot arrows on crossovers plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // Optional: Background coloring bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background") bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")