
Эта стратегия представляет собой систему внутридневного трейдинга, которая сочетает в себе несколько технических индикаторов, основанных на перекрестных сигналах, основанных на скором и медленном движении скользящих средних индексов (EMA) в качестве основной основы входа, в сочетании с относительно сильным и слабым индексом (RSI) для динамического фильтрации и использования динамического установления стоп-позиций с использованием индикатора истинной волновой amplitude (ATR). Эта стратегия позволяет удерживать краткосрочные рыночные колебания с помощью строгого контроля риска и динамического установления стоп-стоп.
Основная логика стратегии включает в себя следующие аспекты:
Конкретные правила сделки следующие:
Предложения по контролю рисков:
Эта стратегия, в сочетании с отслеживанием тенденций EMA, фильтрацией динамики RSI и динамическим контролем риска ATR, создает более целостную торговую систему. Основная особенность стратегии заключается в том, что она использует синхронные эффекты с использованием нескольких технических показателей, уделяя при этом особое внимание управлению рисками. Несмотря на то, что существует определенное пространство для оптимизации, общая концепция дизайна соответствует систематическому мышлению количественной торговли.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Day Trading EMA/RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Ulazni parametri
fastEmaPeriod = input.int(9, "Fast EMA Period", minval=1)
slowEmaPeriod = input.int(21, "Slow EMA Period", minval=1)
rsiPeriod = input.int(14, "RSI Period", minval=1)
rsiOversold = input.int(30, "RSI Oversold Level")
rsiOverbought = input.int(70, "RSI Overbought Level")
atrPeriod = input.int(14, "ATR Period", minval=1)
atrMultiplier = input.float(1.5, "ATR Multiplier za Stop Loss", step=0.1)
takeProfitFactor= input.float(2.0, "Take Profit Factor", step=0.1)
// Izračun indikatora
fastEMA = ta.ema(close, fastEmaPeriod)
slowEMA = ta.ema(close, slowEmaPeriod)
rsiValue = ta.rsi(close, rsiPeriod)
atrValue = ta.atr(atrPeriod)
// Definicija trenda: ako je fastEMA iznad slowEMA, smatramo da je trend uzlazan, inače silazni.
trendUp = fastEMA > slowEMA
trendDown = fastEMA < slowEMA
// Uvjeti za ulaz:
// Ulaz u long poziciju: crossover fastEMA i slowEMA, uz filtriranje da RSI nije prekupovan (manje od rsiOverbought)
longCondition = ta.crossover(fastEMA, slowEMA) and (rsiValue < rsiOverbought)
// Ulaz u short poziciju: crossunder fastEMA i slowEMA, uz filtriranje da RSI nije preprodavan (više od rsiOversold)
shortCondition = ta.crossunder(fastEMA, slowEMA) and (rsiValue > rsiOversold)
// Definicija dinamičnih stop-loss razina (ATR-based)
stopLossLong = close - (atrMultiplier * atrValue)
stopLossShort = close + (atrMultiplier * atrValue)
// Izvršenje naloga
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=stopLossLong, limit=close + (takeProfitFactor * atrValue))
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=stopLossShort, limit=close - (takeProfitFactor * atrValue))
// Plotanje indikatora za preglednost
plot(fastEMA, title="Fast EMA", color=color.green)
plot(slowEMA, title="Slow EMA", color=color.red)