Стратегия торговли с изменением импульса

Автор:Чао Чжан, Дата: 2023-12-20 16:09:50
Тэги:

img

Обзор

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

Логика стратегии

Индикатор легкости движения (EOM) измеряет величину изменений цены и объема. Он возвращает как положительные, так и отрицательные значения. Положительное значение означает, что цена выросла, а отрицательное значение означает, что цена упала. Чем больше абсолютное значение, тем больше изменение цены и / или меньше объем торговли.

Логика этой стратегии такова:

  1. Вычислить значение EOM текущего бар
  2. Проверьте, превышает ли значение EOM длинный или короткий порог
    • Если выше длинного порога (по умолчанию 4000), перейдите на длинный
    • Если ниже короткого порога (по умолчанию -4000), перейти на короткий
  3. Предоставление функции обратной торговли
    • По умолчанию, длинный = быстрый, короткий = медвежий
    • При включении обратного движения длинный = медвежий, короткий = бычий

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

Основные преимущества этой стратегии:

  1. Использование индикатора EOM для определения фактической тенденции рынка на основе изменений цен и объемов
  2. Настраиваемый порог для длинного/короткого
  3. Предоставить режим обратной торговли
  4. Интуитивно понятный длинный/короткий сигнал из цвета строки

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

Основные риски этой стратегии:

  1. У ЭОМ может быть ложный прорыв.
  2. Неправильный порог может привести к переоценке/подоценке
  3. Требуется достаточная толерантность риска для обратной торговли

Решения:

  1. Используйте другие индикаторы, чтобы избежать ложного сигнала
  2. Оптимизировать параметры и регулировать порог
  3. Оцените свой уровень толерантности к риску

Оптимизация

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

  1. Добавить скользящую среднюю, чтобы избежать ложного прорыва
  2. Добавить стоп-лосс
  3. Оптимизация параметров длинного/короткого порога
  4. Добавить больше условий входа для контроля частоты торговли
  5. Добавление правил управления рисками для обратной торговли

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

Заключение

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


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/06/2018
// This indicator gauges the magnitude of price and volume movement. 
// The indicator returns both positive and negative values where a 
// positive value means the market has moved up from yesterday's value 
// and a negative value means the market has moved down. A large positive 
// or large negative value indicates a large move in price and/or lighter 
// volume. A small positive or small negative value indicates a small move 
// in price and/or heavier volume.
// A positive or negative numeric value. A positive value means the market 
// has moved up from yesterday's value, whereas, a negative value means the 
// market has moved down. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Ease of Movement (EOM) Backtest", shorttitle="EOM")
BuyZone = input(4000, minval=1)
SellZone = input(-4000, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xHigh = high
xLow = low
xVolume = volume
xHalfRange = (xHigh - xLow) * 0.5
xMidpointMove = mom(xHalfRange, 1)
xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0)
nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0)
pos = iff(nRes > BuyZone, 1,
       iff(nRes < SellZone, -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(nRes, color=red, title="EOM", style=histogram, linewidth=2)

Больше