Эта стратегия использует четыре линии EMA с различными параметрами для формирования четкой системы следования трендам для механической торговли.
Логика стратегии:
Вычислить две пары быстрой и медленной EMA, обычно 72 и 44 периода.
Продолжайте, когда быстрая EMA пересекает медленную EMA.
Пройдите короткий, когда быстрая EMA пересекает низкую EMA.
Используйте цвета для обозначения сигналов покупки и продажи.
Проверка заданного периода для выполнения сигналов.
Преимущества:
Четыре EMA формируют четкие тенденции.
Комбинации быстрой/медленной EMA эффективно отслеживают средне-длинные тенденции.
Правила перекрестного использования просты и не допускают чрезмерного использования.
Риски:
Задержка EMA может привести к пропущенным поворотам тренда.
Нет остановок означает неограниченные потери на одних сделках.
Плохие параметры могут вызвать чрезмерные сигналы или несоответствия.
В целом, четырехкратная стратегия кроссовера EMA использует пары EMA быстро/медленно для механической торговли трендом. Визуальный интерфейс интуитивно понятен для визуальных трейдеров. Но задержка и отсутствие остановок означают, что для долгосрочных устойчивых прибылей все еще требуется разумное управление рисками.
/*backtest start: 2023-08-12 00:00:00 end: 2023-09-11 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // strategy(title = "Cuathro EMA Strategy", shorttitle = "Cuathro EMA",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity) //@Moneros 2017 // based on OCC by @JayRogers emaSlowPeriod = input(defval = 44, title = "EMA Slow, always < EMA Fast - low short term, high long term ", minval = 1) emaFastPeriod = input(defval = 72, title = "EMA Fast - low short term, high long term ", minval = 1) len = input(defval = 14, title = "Period", minval = 1) res = input(title="Resolution - not lower than chart", defval="120") closeSeries = request.security(syminfo.tickerid, res, 2 * ta.ema(close, len) - ta.ema(ta.ema(close, len), len) ) openSeries = request.security(syminfo.tickerid,res, 2 * ta.ema(close[1], len) - ta.ema(ta.ema(close[1], len), len) ) slowema = ta.ema(closeSeries - openSeries,emaSlowPeriod) fastema = ta.ema(closeSeries - openSeries,emaFastPeriod) plot(slowema, color=color.blue) plot(fastema,color=color.red) bgcolor(slowema< fastema ? color.red : na, transp=90) bgcolor(slowema> fastema ? color.blue : na, transp=90) bgcolor(ta.crossover(slowema, fastema) ? color.blue : na, transp=40) bgcolor(ta.crossunder(slowema, fastema) ? color.red : na, transp=40) strategy.order("BUY", strategy.long, 1, when = ta.crossover(slowema, fastema)) strategy.order("SELL", strategy.short, 1, when = ta.crossunder(slowema, fastema))