Подтвержденная стратегия дивергенции

Автор:Чао Чжан, Дата: 2024-01-15 15:19:56
Тэги:

img

Обзор

Стратегия подтвержденного расхождения использует сигналы двойного расхождения от индикатора RSI и Awesome Oscillator для определения более надежных точек входа. Когда цены формируют новые максимумы или минимумы, а индикаторы RSI и AO формируют обратные максимумы или минимумы, это дивергентный сигнал. Эта стратегия требует расхождения от обоих индикаторов одновременно, чтобы отфильтровать некоторые ложные сигналы и повысить эффективность входа.

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

Эта стратегия оценивает точки покупки и продажи на основе расхождения между величиной роста и падения цен и значениями индикаторов RSI и AO.

Бычье расхождение: цены формируют более свежие минимумы, в то время как RSI и AO формируют более свежие максимумы, то есть цены падают, в то время как RSI и AO растут, что является сигналом бычьего расхождения.

Низкая дивергенция: цены формируют более поздний максимум, в то время как RSI и AO формируют более поздние минимумы, то есть цены растут, в то время как RSI и AO падают, что является сигналом низкой дивергенции.

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

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

Эта стратегия имеет следующие преимущества:

  1. Двойная индикаторная фильтрация повышает надежность сигналов и предотвращает ложные дивергенции от одного индикатора.

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

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

  4. Установка стоп-лосса рядом с ключевой поддержкой или сопротивлением снижает вероятность индивидуальных больших потерь.

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Условия двойной фильтрации выполняются реже, возможно, некоторые торговые возможности упускаются.

  2. Дивергенция не является 100% надежным сигналом, и потери могут возникнуть в отдельных ситуациях.

  3. Неправильное настройка параметров для полос Боллинджера может привести к слишком свободному или слишком тесному стоп-лосс.

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

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

  1. Корректировать параметры цикла для оценки дивергенции для оптимизации параметров сигналов дивергенции.

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

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

  4. Всесторонне учитывать тенденции, поддержку/сопротивление и другие факторы для определения качества сигналов дивергенции.

Резюме

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


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

//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //

src = close

// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level",  defval=70)
os = input(title="Oversold Level",  defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods


//Awesome//

AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)

// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)


// END SETUP //

////////////////////////
// BULLISH DIVERGENCE //
////////////////////////

// define lower low in price //

srcLL = src > lowest(src,x) and  lowest(src,x)<lowest(src,z)[x]

// define higher low in rsi //

rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os

// define higher low in AO //


aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0



BullishDiv = srcLL and rsiHL and aoHL


////////////////////////
// BEARISH DIVERGENCE //
////////////////////////

// define higher high in price //

srcHH = src < highest(src,x) and  highest(src,x)>highest(src,z)[x]

// define lower high in RSI //

rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob

// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0

BearishDiv = srcHH and rsiLH and aoLH


basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev



if (BullishDiv)
    strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
    strategy.cancel(id="DivLE")
    
if (crossover(close, lower))
    strategy.close("DivSE")
    
if (crossunder(close, upper))
    strategy.close("DivLE")

if (BearishDiv)
    strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
    strategy.cancel(id="DivSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Больше