В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2024-01-08 17:09:48
Тэги:

img

Обзор

Эта стратегия сначала использует двойные скользящие средние линии 2-периодической и 20-периодической EMA для определения того, пробивается ли цена через скользящие средние, как основной критерий для выхода на рынок.

Принцип стратегии

  1. Указатель двойной скользящей средней

    • Расчет экспоненциальной скользящей средней за 2 и 20 периодов (EMA)
    • Создание торговых сигналов при переходе цены закрытия с одной стороны скользящих средних на другую
    • Прорыв через 20-EMA определяет направление тренда
    • Прорыв через 2-EMA определяет конкретную точку входа
  2. Индикатор баланса сил быка-медведя

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

    • Двойной индикатор скользящей средней оценивает направление основного тренда
    • Индикатор баланса силы быка-медведя делает местное региональное суждение
    • Выпускать торговые сигналы, когда оба показателя дают единое мнение

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

Наибольшее преимущество этой комбинированной стратегии заключается в интеграции индикаторов различных сортов для достижения более надежного торгового суждения.

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

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

Необходимо отметить некоторые риски этой стратегии:

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

Контрмеры:

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

Руководство по оптимизации

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

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

Заключение

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


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BBB(SellLevel,BuyLevel) =>
    pos = 0.0
    value = close < open ? 
              close[1] > open ?  math.max(close - open, high - low) : high - low : 
                 close > open ? 
                  close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) :
                   high - close > close - low ? 
                     close[1] > open ? math.max(close[1] - open, high - low) :high - low : 
                      high - close < close - low ? 
                         close > open ? math.max(close - low, high - close) : open - low : 
                           close > open ? math.max(close[1] - open , high - close) :
                             close[1] < open ? math.max(open - low, high - close) : high - low
    
    value2 =close < open ? 
              close[1] < open ?  math.max(high - close[1], close - low) : math.max(high - open, close - low) : 
               close > open ? 
                 close[1] > open ?  high - low : math.max(open - close[1], high - low) : 
                  high - close > close - low ? 
                   close[1] < open ? math.max(high - close[1], close - low) : high - open : 
                     high - close < close - low ? 
                      close[1] > open ?  high - low : math.max(open - close, high - low) : 
                       close[1] > open ? math.max(high - open, close - low) :
                         close[1] < open? math.max(open - close, high - low): high - low
    nBBB = value2 - value
    pos :=  nBBB < SellLevel ? -1 :
    	     nBBB >= BuyLevel ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Bull And Bear Balance ═════●'
SellLevel = input.float(-15, step=0.01, group=I2)
BuyLevel = input.float(15, step=0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBBB = BBB(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBBB == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Больше