Стратегия ценовых колебаний на основе двойной EMA


Дата создания: 2024-02-26 13:52:41 Последнее изменение: 2024-02-26 13:52:41
Копировать: 2 Количество просмотров: 600
1
Подписаться
1617
Подписчики

Стратегия ценовых колебаний на основе двойной EMA

Обзор

Двойная стратегия колебания цены EMA используется для определения динамики и силы рынка путем вычисления разницы между двумя различными сроками EMA. Когда разница между быстрой и медленной линиями достигает нуля, это является положительным сигналом. Когда разница между быстрой и медленной линиями достигает нуля, это является отрицательным сигналом.

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

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

Основным показателем двойной стратегии колебаний цены EMA является APO, то есть абсолютный ценовой осциллятор, который представляет собой разницу между двумя EMA. Его расчетная формула выглядит следующим образом:

APO = EMA(短期) - EMA(长期)

В данной стратегии APO рассчитывается как:

xShortEMA = ema(收盘价, LengthShortEMA) 

xLongEMA = ema(收盘价, LengthLongEMA)

xAPO = xShortEMA - xLongEMA

При этом LengthShortEMA и LengthLongEMA соответственно представляют собой длины циклов краткосрочных и долгосрочных ЭМА.

Несколько ключевых правил APO:

  1. Сигнал зажигания при ношении 0 на APO
  2. Когда APO проходит через 0, это сигнал к снижению.
  3. В настоящее время APO находится в позитивном состоянии.
  4. APO - отрицательное, показывает, что в настоящее время находится в состоянии падения

По данным APO в реальном времени можно судить о наличии свободных мест на рынке и времени входа на него.

Анализ преимуществ

Стратегия двойного колебания цены EMA имеет следующие основные преимущества:

  1. Использование скользящих средних индексов позволяет эффективно сгладить данные о ценах и уменьшить влияние шума
  2. Индекс APO, объединяющий два EMA, позволяет одновременно оценивать ценовые тенденции и рыночную силу
  3. Стратегические сигналы просты, понятны, легко оценить и реализовать.
  4. Настраиваемый цикл EMA для различных видов и стилей торговли
  5. Реверсируемый сигнал, применяемый для реверсионных и форекс сделок

Анализ рисков

При этом существуют некоторые риски, связанные с двойной стратегией колебаний цены EMA, которые проявляются в следующем:

  1. EMA не успела вовремя зафиксировать переломный момент цены
  2. Параметры по умолчанию могут не подходить для всех сортов и требуют оптимизации
  3. Сигналы часто и легко ложные
  4. Невозможно определить местоположение остановок и остановок после входа
  5. Есть определенные задержки, которые могут привести к упущению лучших возможностей.

Эти риски могут быть уменьшены и уменьшены путем разумного остановки, уменьшения одиночных убытков; оптимизации параметров, адаптации к различным циклам; в сочетании с другими показателями фильтрации сигналов, повышения стабильности стратегии.

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

Двойная стратегия колебаний цены EMA может быть оптимизирована в следующих направлениях:

  1. Оптимизируйте параметры цикла EMA, чтобы найти оптимальные параметры для комбинаций EMA длиной от 5 до 60

  2. Добавить другие показатели, такие как MA, KDJ, MACD, чтобы установить фильтрующие условия и избежать ложных сигналов

  3. Используйте такие показатели, как лента Брин, KD, чтобы определить разумное местоположение остановки остановки

  4. Используйте индикаторы, такие как индекс тренда, для определения ценовых тенденций и избегания обратной торговли.

  5. Включение показателя объема сделок, чтобы обеспечить поддержку сделок с прорывными сигналами

  6. Установление условий для возобновления доступа, чтобы избежать частых сделок и уменьшить количество сделок

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

В целом, стратегия двойного колебания цены EMA используется для определения свободного рынка путем расчета разности APO двух EMA. Сигналы стратегии просты, ясны и практичны, но также имеют определенные недостатки. Мы можем оптимизировать и повысить стабильность стратегии с помощью таких методов, как оптимизация параметров, добавление условий фильтрации и установка стоп-стоп.

Исходный код стратегии
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
       iff(xAPO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xAPO, color=blue, title="APO")