Эта стратегия основана на перекрестных сигналах EMA23 и EMA50 для торговли. Когда EMA23 пересекается выше EMA50, она генерирует сигнал покупки, а когда пересекается ниже, она генерирует сигнал продажи. Стратегия также реализует стоп-лосс для длинных позиций, когда цена падает ниже EMA50 и для коротких позиций, когда цена поднимается выше EMA50. Кроме того, стратегия вновь входит на рынок, когда цена движется назад выше EMA50. Стратегия подходит для 30-минутного периода времени.
Эта стратегия является количественной торговой стратегией, основанной на перекрестке двух скользящих средних, EMA23 и EMA50. Она улавливает тенденции через перекрестные сигналы и реализует механизмы остановки потерь и повторного входа для контроля риска и увеличения потенциала прибыли. Стратегия проста и проста в понимании, подходит для средне- и краткосрочной торговли на 30-минутном сроке. Однако стратегия также имеет некоторые ограничения, такие как выявление отставания, не оптимальное размещение остановки потери и плохая производительность на рыночных диапазонах. В будущем стратегия может быть оптимизирована путем внедрения большего количества технических индикаторов, оптимизации позиций остановки потери, контроля частоты торговли, дифференциации между трендовыми и диапазонами рынков и реализации динамических уровней получения прибыли для достижения более надежных доходов.
/*backtest start: 2023-04-20 00:00:00 end: 2024-04-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // EMA 23 ve EMA 50'nin hesaplanması ema23 = ta.ema(close, 23) ema50 = ta.ema(close, 50) // Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi buySignal = ta.crossover(ema23, ema50) // Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi sellSignal = ta.crossunder(ema23, ema50) // Long pozisyon stop seviyesi longStopLoss = low < ema50 and close < ema50[1] // Short pozisyon stop seviyesi shortStopLoss = high > ema50 and close > ema50[1] // Long pozisyon için tekrar giriş kuralı longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50 // Short pozisyon için tekrar giriş kuralı shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50 // Long işlemde kar alma seviyesi (%60) longTakeProfit = strategy.position_avg_price * 1.60 // Short işlemde kar alma seviyesi (%25) shortTakeProfit = strategy.position_avg_price * 0.75 // Long işlem için yeniden giriş koşulu longReEntryCondition = strategy.position_size <= 0 and longReEntry // Short işlem için yeniden giriş koşulu shortReEntryCondition = strategy.position_size >= 0 and shortReEntry // Geriye dönük test için başlangıç tarihi (01.01.2022) startDate = timestamp(2022, 01, 01, 00, 00) if (time >= startDate) if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit)) strategy.close("Buy") if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit)) strategy.close("Sell") if (longReEntryCondition) strategy.entry("Buy", strategy.long) if (shortReEntryCondition) strategy.entry("Sell", strategy.short)