Стратегия баланса быка и медведя

Автор:Чао Чжан, Дата: 2023-11-02 17:12:40
Тэги:

img

Обзор

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

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

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

nBBB = value2 - значение

При этом value и value2 рассчитывают бычьи и медвежие силы текущего и предыдущего баров соответственно. Расчет довольно сложен, включая суждения о взаимосвязи между закрытыми, открытыми, высокими и низкими ценами. Но в целом value измеряет бычьи/медвежие силы текущего бара, а value2 измеряет силы предыдущего бара. Их разница отражает изменение баланса бычьего/медвежьего.

Когда nBBB падает ниже порога SellLevel, генерируется короткий сигнал. Когда nBBB поднимается выше порога BuyLevel, генерируется длинный сигнал. Пороги могут регулироваться с помощью параметров.

Преимущества

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

  1. На основании сигналов от свечей, он может определить важные поворотные моменты.

  2. Измеряя баланс быка/медведя, сигналы становятся более точными и надежными.

  3. Сравнение текущей панели с предыдущей фильтрует шум для более четких сигналов.

  4. Применимо к различным временным рамкам с хорошей гибкостью.

  5. Индикатор nBBB интуитивно понятен, а сигналы просты и ясны.

Риски

Некоторые риски:

  1. nBBB может генерировать ложные сигналы, требующие подтверждения цены.

  2. Если полагаться только на nBBB, то есть слепые точки, лучше использовать другие показатели.

  3. Параметры SellLevel и BuyLevel напрямую влияют на производительность и требуют тщательной оптимизации.

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

  5. Более подходит для среднесрочной / долгосрочной, краткосрочной может получить whipsawed.

Усовершенствования

Некоторые способы улучшения стратегии:

  1. Оптимизировать SellLevel и BuyLevel на основе исторических обратных тестов для лучшего соответствия.

  2. Включить механизмы стоп-лосса, такие как отслеживание стоп-лосса для контроля рисков.

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

  4. Внедрить машинное обучение для автоматической оптимизации параметров и создания лучших сигналов.

  5. Отдельная оптимизация параметров для различных продуктов и временных рамок.

Заключение

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


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/02/2017
//    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. 
////////////////////////////////////////////////////////////
strategy(title = "Bull And Bear Balance Strategy")
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
hline(SellLevel, color=red, linestyle=line)
hline(BuyLevel, color=green, linestyle=line)
value =  iff (close < open , 
          iff (close[1] > open ,  max(close - open, high - low), high - low), 
           iff (close > open, 
             iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
              iff(high - close > close - low, 
               iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                 iff (high - close < close - low, 
                  iff(close > open, max(close - low, high - close),open - low), 
                   iff (close > open, max(close[1] - open, high - close),
                     iff(close[1] < open, max(open - low, high - close), high - low))))))

value2 = iff (close < open , 
          iff (close[1] < open ,  max(high - close[1], close - low), max(high - open, close - low)), 
           iff (close > open, 
             iff(close[1] > open,  high - low, max(open - close[1], high - low)), 
              iff(high - close > close - low, 
               iff (close[1] < open, max(high - close[1], close - low), high - open), 
                 iff (high - close < close - low, 
                  iff(close[1] > open,  high - low, max(open - close, high - low)), 
                   iff (close[1] > open, max(high - open, close - low),
                     iff(close[1] < open, max(open - close, high - low), high - low))))))
nBBB = value2 - value
nBBBc = nBBB < 0 ? red : green
pos = iff(nBBB < SellLevel, -1,
	   iff(nBBB >= BuyLevel, 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(nBBB, style=line, linewidth=1, color=nBBBc)
plot(nBBB, style=histogram, linewidth=1, color=gray)


Больше