
Эта стратегия является автоматизированной торговой системой, основанной на теории двойного прорыва равновесия, в сочетании с функциями управления рисками. В основе стратегии используются 21-циклические и 50-циклические индексированные движущиеся средние ((EMA) в качестве сигнальных показателей для определения изменения рыночной тенденции и автоматического исполнения сделок путем пересечения равновесия. Система интегрировала функции стоп-лосса ((Stop Loss) и стоп-таб (Take Profit), что позволяет эффективно контролировать риски и цели прибыли для каждой сделки.
Основная логика стратегии основана на классической теории равнолинейного пересечения в техническом анализе. Когда короткий (21 дн.) EMA пересекает длинный (50 дн.) EMA, система распознает это как позиционный сигнал и открывает позицию. Когда короткий (21 дн.) EMA пересекает длинный (50 дн.) EMA, система распознает это как позиционный сигнал и открывает позицию.
Это рационально разработанная, логически ясная автоматизированная торговая стратегия. Благодаря сочетанию равнолинейных перекрестных сигналов и строгому управлению рисками, стратегия обеспечивает надежную техническую основу для захвата рыночных трендовых возможностей, обеспечивая при этом безопасность торговли. Несмотря на то, что существует определенный простор для оптимизации, инфраструктура стратегии не повреждена и подходит для дальнейшей разработки и совершенствования в качестве базового модуля количественной торговой системы.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)
// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)
// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)
// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")
// Calculate tick size in points
var float tickSize = syminfo.mintick
// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize
shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize
// Execute trades on crossover signals
if (bullishCross)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")