Стратегия торговли на основе скользящей средней с несколькими временными периодами


Дата создания: 2023-10-09 15:05:47 Последнее изменение: 2023-10-09 15:05:47
Копировать: 0 Количество просмотров: 671
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия объединяет среднее значение EMA с множеством различных параметров, а также количественный энергетический показатель EOM, чтобы достичь определения тенденции в течение нескольких временных периодов, создавая длинную и короткую линию. Эта стратегия направлена на использование многовременного резонанса среднего значения различных периодов, чтобы найти более эффективные трендовые движения.

Стратегический принцип

Стратегия использует четыре группы средних параметров EMA с разными периодами - 13-циклические, 21-циклические, 50-циклические и 180-циклические EMA. Эти четыре группы средних EMA построены на нескольких временных измерениях для определения ценовых тенденций и выявления более эффективных тенденционных моделей.

Стратегия использует EOM для подтверждения тренда. EOM объединяет объемы торгов и колебания цен, что позволяет эффективно оценить рынок покупателей и продавцов. Стратегия определяет, что EOM больше 0 - это многообещающий рынок, а EOM меньше 0 - это свободный рынок.

Стратегия устанавливает два варианта, вариант 1 - это делать больше, когда краткосрочная EMA пересекает долгосрочную EMA, и делать больше, когда краткосрочная EMA пересекает долгосрочную EMA, и делать меньше, когда долгосрочная EMA пересекает среднесрочную EMA. Вариант 2 - это делать больше, когда краткосрочная EMA пересекает среднесрочную EMA, и делать меньше, когда краткосрочная EMA пересекает среднесрочную EMA.

Стратегические преимущества

  • Используя EMA с большим количеством временных периодов, можно определить тенденцию и найти более длинные модели трендов.
  • Показатели EOM помогают определить направление покупательской силы и избежать ошибочных временных отклонений.
  • Два варианта входа, которые позволяют более полно определить тенденции
  • Применение смены владельцев в разрезе для снижения убытков

Стратегический риск

  • EMA имеет отставание и может пропустить быстрый поворот
  • Показатель энергопотребления может дать неверный сигнал
  • Неопределенность в допуске из-за многочисленных критериев
  • Смена рук может быть слишком механизирована

Направление оптимизации

  • Можно тестировать больше комбинаций параметров в течение EMA-циклов, чтобы найти оптимальные параметры
  • Дополнительные показатели, такие как MACD, могут быть добавлены для подтверждения поступления.
  • Мобильные стопы могут использоваться для отслеживания движения тренда
  • Пропорции позиций могут быть скорректированы в зависимости от состояния рынка

Подвести итог

Эта стратегия объединяет многовременные 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)