Стратегия баланса колебаний - это простая стратегия, которая использует взвешенные скользящие средние и базовые периоды просмотра для прогнозирования движения цен в следующем тике. Она рассчитывает текущую закрытую позицию относительно открытой на основе высокого и низкого, затем вычисляет экспоненциальные скользящие средние разных периодов и, наконец, оценивает общую ценовую тенденцию на основе исторических данных.
Стратегия сначала рассчитывает закрытую позицию относительно открытой:BoP = (close - open) / (high - low)
Затем он рассчитывает EMA периодов 3, 6, 9, 12 и 18.
Рисование EMA в разных цветах показывает, что более короткие периоды первыми меняют направление, в то время как более длинные периоды обеспечивают поддержку и сопротивление.
Для получения всеобъемлющей линии требуется арифметическое среднее этих EMA. Если посмотреть на изменение этой линии за последние два периода, это предсказывает тенденцию в следующем периоде. Если всеобъемлющая линия повышается, идите длинным. Если она падает, идите коротким.
Таким образом, он оценивает общую будущую тенденцию на основе исторических данных.
Преимущества этой стратегии включают:
Принцип прост, его легко понять и применить.
Он объединяет сложную историю цен в простую всеобъемлющую линию для оценки пунктов входа и выхода по направлению.
Сочетание нескольких периодов EMA обеспечивает более всеобъемлющие ссылки.
Заполнение между EMA создает интуитивный визуальный эффект для четкого наблюдения колебаний цен.
Нет необходимости устанавливать стоп-лосс или получать прибыль, избегая ненужных сделок.
Риски этой стратегии включают:
Прогноз основан исключительно на прошлых данных, не гарантирует будущее.
Неожиданные изменения цен от событий могут привести к неточным прогнозам.
Многократные EMA могут генерировать путаные сигналы.
Высокая частота торгов может возникнуть, и необходим контроль интервалов для сокращения ненужной торговли.
Сигналы стратегии отстают, возможно, вызывая поздний вход и преждевременный стоп-лосс.
Стратегия может быть оптимизирована в следующих аспектах:
Оптимизировать весы EMA для более четких сигналов.
Добавьте подтверждение индикатора тренда, чтобы избежать контратендных сделок, например, использование ADX для определения силы тренда.
Добавьте фильтры на ключевых уровнях поддержки и сопротивления, чтобы уменьшить ложные сигналы.
Оптимизируйте правила входа, чтобы избежать ненужных открывающихся позиций.
Оптимизировать методы остановки потери, такие как остановка потери по кривой или остановка потери по ATR.
Добавьте индикаторы настроения, чтобы избежать погони за вершинами и дном.
Контроль интервала для снижения частоты торговли или оптимизировать количество сделок, чтобы избежать переоценки.
Стратегия баланса колебаний оценивает точки входа и выхода просто и интуитивно, рассчитывая колебания цен и визуализируя EMA нескольких периодов. Хотя существуют риски, такие как задержка прогнозирования и неправильные сигналы, ее можно оптимизировать путем добавления фильтров, методов остановки потерь и т. Д. Она обеспечивает полезные ссылки при торговле трендом. Эта стратегия подходит для частых краткосрочных трейдеров и визуальных анализаторов паттернов.
/*backtest start: 2022-10-13 00:00:00 end: 2023-10-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Balance of Power", format=format.price, precision=2) BoP = (close - open) / (high - low) p1 = plot(ema(BoP,18),color=color.purple) p2 = plot(ema(BoP,12),color=color.blue) p3 = plot(ema(BoP,9),color=color.green) p4 = plot(ema(BoP,6),color=color.yellow) p5 = plot(ema(BoP,3),color=color.orange) p6 = plot(BoP, color=color.red) sumEMA = (avg(BoP,ema(BoP,3),ema(BoP,6),ema(BoP,9),ema(BoP,12),ema(BoP,18))) plot(sumEMA,color=color.gray) fill(p1,p2,color.purple) fill(p2,p3,color.blue) fill(p3,p4,color.green) fill(p4,p5,color.yellow) fill(p5,p6,color.orange) projected = sumEMA + (sumEMA - sumEMA[2]) p7 = plot(projected, linewidth=2, color=color.white) fill(p6,p7,color.red) //strategy.exit("exitx","Exit",when=cross(projected,0)) strategy.entry("Long",true,1,when=crossover(projected,0)) strategy.entry("Short",false,0,when=crossunder(projected,0))