
Эта стратегия является простой стратегией отслеживания тенденций, основанной на показателях EMA. Она использует две линии EMA с разными параметрами, короткую линию EMA и долгосрочную линию EMA.
EMA - это индикатор трендового отслеживания, который использует индексную скользящую среднюю для оценки цены. Краткосрочная линия EMA реагирует на изменения цены быстрее, отражая недавнюю ценовую тенденцию; долгосрочная линия EMA реагирует на изменения цены медленнее, отражая долгосрочную тенденцию.
Стратегия устанавливает 9-циклические и 21-циклические линии EMA. В качестве торгового сигнала используется пересечение коротких 9-циклических линий EMA с длинными 21-циклическими линиями EMA. В частности, логика многоразовых позиций выглядит следующим образом:
Решение риска:
Стратегия использует два различных параметра EMA, чтобы сформировать торговый сигнал и извлечь выгоду из отслеживания тенденции. Преимущества стратегии заключаются в простоте и простоте использования, умеренной частоте торговли и возможности захвата средне-длинных тенденций. Однако есть проблемы с задержкой показателей EMA, сигнальные указания и оптимизация динамических остановок могут еще больше снизить риск.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Crossover Strategy", overlay=true)
// Input parameters
shortPeriod = input(9, title="Short EMA Period")
longPeriod = input(21, title="Long EMA Period")
stopLossPercent = input(1, title="Stop Loss (%)") / 100
takeProfitMultiplier = input(2, title="Take Profit Multiplier")
// Calculate EMAs
emaShort = ema(close, shortPeriod)
emaLong = ema(close, longPeriod)
// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")
// Strategy logic
strategy.entry("Buy", strategy.long, when=crossover(emaShort, emaLong))
strategy.close("Buy", when=crossunder(emaShort, emaLong))
// Risk management
atrValue = atr(14)
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * takeProfitMultiplier
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel)