
Эта стратегия использует как основной торговый сигнал скрещивание двух индексов с движущейся средней ((EMA) в качестве основного торгового сигнала, а также в качестве вспомогательного индикатора для повышения надежности торгового сигнала в сочетании с относительно слабым индексом ((RSI) и средним реальным волновым диапазоном (MACD) и средней реальной волной (ATR). При прохождении медленной EMA над быстрой EMA, когда RSI ниже 70, линия MACD выше сигнала, когда ATR увеличивается более чем на 10% по сравнению с предыдущим циклом, создается многосигнал; наоборот, при прохождении медленной EMA ниже быстрой EMA, когда RSI выше 30, линия MACD ниже линии ATR увеличивается более чем на 10% по сравнению с предыдущим циклом, создается пустой сигнал.
Эта стратегия создает более надежный торговый сигнал, объединяя несколько технических индикаторов, таких как EMA, RSI, MACD и ATR, и контролирует риск, устанавливая стоп-стоп с фиксированным количеством баллов. Хотя у этой стратегии есть некоторые недостатки, ее можно улучшить путем дальнейшей оптимизации и улучшения, например, путем введения большего количества индикаторов, оптимизации стоп-стоп и объединения фундаментального анализа.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Enhanced EMA Crossover Strategy", overlay=true)
// Indicators
ema_fast = ema(close, 8)
ema_slow = ema(close, 14)
rsi = rsi(close, 14)
// Correcting the MACD variable definitions
[macd_line, signal_line, _] = macd(close, 12, 26, 9)
atr_value = atr(14)
// Entry conditions with additional filters
long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1
short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1
// Adding debug information
plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal")
plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal")
// Risk management based on a fixed number of points
stop_loss_points = 100
take_profit_points = 200
// Order execution
if (long_condition)
strategy.entry("Long", strategy.long, comment="Long Entry")
strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points)
if (short_condition)
strategy.entry("Short", strategy.short, comment="Short Entry")
strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points)
// Plotting EMAs for reference
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.orange, title="Slow EMA")