Эта стратегия использует золотой крест и смертельный крест быстрых и медленных линий EMA для определения тренда и устанавливает процент прибыли в качестве правила получения прибыли для реализации тренда после торговли.
Стратегия использует 3 и 30 периодов EMA в качестве торговых сигналов. Когда 3EMA пересекает 30EMA, это сигнализирует, что цена начинает расти, что соответствует условию покупки. Когда 3EMA пересекает 30EMA, это сигнализирует, что цена начинает падать, что соответствует условию продажи.
Кроме того, в стратегии установлена целевая прибыль. Когда цена вырастет до входной цены умноженной на процент прибыли, позиция будет закрыта, чтобы зафиксировать больше прибыли и достичь тренда после торговли.
В заключение, это очень практичная стратегия, следующая за трендом. Она использует простые индикаторы EMA для определения направления тренда и устанавливает разумные правила получения прибыли для эффективного контроля рисков, подходящие для долгосрочного отслеживания среднесрочных и долгосрочных тенденций акций и индексов. Дальнейшее улучшение стабильности и коэффициента прибыли может быть достигнуто за счет оптимизации параметров и дополнительных индикаторов проверки сигналов.
/*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)