Эта стратегия сочетает в себе несколько EMA с различными параметрами и индикатор объема EOM для определения тенденций в нескольких временных рамках и создания торговой стратегии с долгосрочными и краткосрочными суждениями.
Стратегия использует 4 группы EMA с различными параметрами периода - 13, 21, 50 и 180.
Стратегия использует индикатор объема EOM для подтверждения тенденций. EOM объединяет объем торговли и диапазон волатильности цен для эффективного измерения давления на покупку и продажу. Стратегия определяет длинные условия, когда EOM выше 0, и короткие условия, когда EOM ниже 0.
Стратегия имеет два варианта: первый вариант длится, когда более короткая EMA пересекает более длинную EMA, и второй вариант длится, когда более короткая EMA пересекает более длинную EMA, и второй вариант длится, когда более короткая EMA пересекает более среднюю EMA, и второй вариант длится, когда более короткая EMA пересекает более длинную EMA.
Эта стратегия объединяет определение тренда EMA в нескольких временных рамках и фильтрацию индикатора объема для достижения следующего тренда и устранения шума.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 ) //ema x 4 ema1l=input(13) ema2l=input(21) ema3l=input(50) ema4l=input(180) ema1=ema(close,ema1l) ema2=ema(close,ema2l) ema3=ema(close,ema3l) ema4=ema(close,ema4l) long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4 long2 = crossover(ema1,ema2) and crossover(ema1,ema3) short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4 short2= crossunder(ema1,ema2) and crossunder(ema1,ema3) //eom length = input(14, minval=1) div = input(10000, title="Divisor", minval=1) eom = sma(div * change(hl2) * (high - low) / volume, length) option1=input(true) option2=input(false) if(option1) strategy.entry("long",1,when=long1 and eom>0) strategy.close("long",when=short1 and eom<0) if(option2) strategy.entry("long",1,when=long2 and eom>0) strategy.close("long",when=short2 and eom<0)