
Стратегия многосторонних движущихся средних линий - это стратегия для отслеживания трендов, которая строит многогранники с помощью движущихся средних линий с несколькими различными циклами и использует их в качестве торговых сигналов. Эта стратегия, учитывающая множество факторов временного цикла, может эффективно отфильтровывать рыночный шум и улавливать основные тенденции.
Эта стратегия создает многогранный канал на ценовой графике, вводя средние линии EMA разных периодов, такие как 3-циклические, 7-циклические и 13-циклические EMA. Многосигналы генерируются, когда цена пересекает несколько средних линий EMA выше; многосигналы генерируются, когда цена пересекает несколько средних линий EMA ниже. Это позволяет исключить много ложных прорывов.
В коде определяется верхний проходный сигнал через close>ema1 and ema1>ema2 and ema2>ema3, close
Наибольшее преимущество этой стратегии заключается в том, что она может эффективно улавливать направление основных тенденций, создавать фильтрующие механизмы с использованием нескольких движущихся равномерных линий, избегать влияния краткосрочного шума рынка и уменьшать ложные сигналы.
Основной риск этой стратегии заключается в невозможности определить точку поворота тренда, которая может привести к потере при развороте тренда. Кроме того, неправильная настройка комбинации равновесия может привести к чрезмерной частоте торговли или задержке сигнала. Риск может быть уменьшен путем оптимизации комбинации параметров равновесия, добавления других показателей для определения реверса, расширения пределов остановки.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизируйте циклические параметры передвижной средней и найдите оптимальную комбинацию параметров
При включении обратных сигналов, таких как RSI, MACD и т. Д., в точку перехода в тренде, чтобы вовремя остановить убыль
Оптимизация величины и отклонения стоп-значений мобильных стоп, снижение вероятности того, что стоп-потери будут вызваны
Оптимизация для различных сортов, повышение адаптивности стратегий
Движущаяся равновесная многосторонняя стратегия в целом является надежной и эффективной стратегией для отслеживания тенденций. Ее главным преимуществом является то, что она может отслеживать основные тенденции и одновременно значительно фильтровать шум. Но есть также определенные недостатки в распознавании обратного хода.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
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/
// © Crypto-Oli
//@version=4
strategy("BLANK Strategy + TSL", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, pyramiding=1, commission_value=0.075, overlay=true)
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////////////////////////////////////////////////////////
/// YOUR INPUTS BELOW - DELET EXAPLES ///
ema1=ema(close,input(3))
ema2=ema(close,input(7))
ema3=ema(close,input(13))
/// PLOTS IF YOU NEED BELOW - DELET EXAPLES ///
plot(ema1, "EMA1", color.yellow)
plot(ema2, "EMA2", color.white)
plot(ema3, "EMA3", color.blue)
/// YOUR CONDITIONS BELOW - DELET EXAPLES ///
longCondition = close>ema1 and ema1>ema2 and ema2>ema3 and time_cond
shortCondition = close<ema1 and ema1<ema2 and ema2<ema3 and time_cond
/// EXECUTION ///
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)