Chiến lược này sử dụng đường chéo vàng và đường chéo chết của đường EMA nhanh và chậm để xác định xu hướng và thiết lập tỷ lệ lợi nhuận như quy tắc lấy lợi nhuận để thực hiện xu hướng sau khi giao dịch. Nó có thể áp dụng cho bất kỳ khung thời gian nào và có thể nắm bắt xu hướng trong cả chỉ số và cổ phiếu.
Chiến lược sử dụng 3 và 30 EMA thời gian như tín hiệu giao dịch. Khi 3EMA vượt qua trên 30EMA, nó báo hiệu rằng giá bắt đầu tăng phù hợp với điều kiện mua. Khi 3EMA vượt qua dưới 30EMA, nó báo hiệu rằng giá bắt đầu giảm phù hợp với điều kiện bán.
Ngoài ra, một mục tiêu lợi nhuận được cấu hình trong chiến lược. Khi giá tăng lên mức giá đầu vào nhân tỷ lệ phần trăm lợi nhuận, vị trí sẽ được đóng để khóa thêm lợi nhuận và đạt được xu hướng sau khi giao dịch.
Tóm lại, đây là một chiến lược theo xu hướng rất thực tế. Nó áp dụng các chỉ số EMA đơn giản để xác định hướng xu hướng và đặt ra các quy tắc thu lợi nhuận hợp lý để kiểm soát hiệu quả rủi ro, phù hợp với việc theo dõi dài hạn của cổ phiếu và chỉ số xu hướng trung và dài hạn. Sự cải thiện hơn nữa về sự ổn định và yếu tố lợi nhuận có thể đạt được thông qua tối ưu hóa tham số và các chỉ số xác minh tín hiệu bổ sung.
/*backtest start: 2023-02-12 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with Target", shorttitle="EMACross", overlay=true) // Define input parameters fastLength = input(3, title="Fast EMA Length") slowLength = input(30, title="Slow EMA Length") profitPercentage = input(100.0, title="Profit Percentage") // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Plot EMAs on the chart plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.red, title="Slow EMA") // Buy condition: 3EMA crosses above 30EMA buyCondition = ta.crossover(fastEMA, slowEMA) // Sell condition: 3EMA crosses below 30EMA or profit target is reached sellCondition = ta.crossunder(fastEMA, slowEMA) or close >= (strategy.position_avg_price * (1 + profitPercentage / 100)) // Target condition: 50 points profit //targetCondition = close >= (strategy.position_avg_price + 50) // Execute orders // strategy.entry("Buy", strategy.long, when=buyCondition) // strategy.close("Buy", when=sellCondition ) if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.close("Buy") // // Execute sell orders // strategy.entry("Sell", strategy.short, when=sellCondition) // strategy.close("Sell", when=buyCondition) // Plot buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)