Индикатор обратного движения K I

Автор:Чао Чжан, Дата: 2022-05-08 11:05:11
Тэги:SMAЕМАMACD

Индикатор обратного движения K I представляет собой специальную комбинацию полос Боллинджера и осциллятора MACD. Это противоположный индикатор, который зависит от следующих условий:

• Сигнал покупки генерируется всякий раз, когда текущая рыночная цена находится ниже нижней полосы Боллинджера на 100 периодов, при этом значение MACD должно быть выше линии сигнала. • Сигнал продажи (короткий) генерируется всякий раз, когда текущая рыночная цена превышает верхнюю полосу Боллинджера на 100 периодов, при этом значение MACD должно быть ниже линии сигнала.

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

Ограничения показателя включают следующее: • Не существует четких правил выхода, которые в среднем хорошо работают на всех рынках. • Как и в случае с другими показателями, на некоторых рынках он показывает низкие результаты и не должен использоваться везде. • Ложные сигналы, как правило, возникают во время тренда на рынке, но нет проверенного способа обнаружения ложного сигнала.

обратная проверка

img


/*backtest
start: 2022-02-07 00:00:00
end: 2022-05-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Sofien-Kaabar

//@version = 5
indicator("K's Reversal Indicator I", overlay = true)

fast       = input(defval = 12, title = 'Fast')
slow       = input(defval = 26, title = 'Slow')
signal     = input(defval = 9,  title = 'Signal')
length     = input(defval = 100, title = 'Bollinger Lookback')
multiplier = input(defval = 2,  title = 'Multiplier')

// MACD
macd_line   = ta.ema(close, fast) - ta.ema(close, slow)
signal_line = ta.ema(macd_line, signal)

// Bollinger
lower_boll = ta.sma(close, length) - (multiplier * ta.stdev(close, length))
upper_boll = ta.sma(close, length) + (multiplier * ta.stdev(close, length))
mid_line = ta.sma(close, length)

// Signal
buy_signal  = math.min(open[1], close[1]) <= lower_boll[1] and math.max(open[1], close[1]) <= mid_line and macd_line[1] > signal_line[1] and macd_line[2] < signal_line[2]
sell_signal = math.max(open[1], close[1]) >= upper_boll[1] and math.min(open[1], close[1]) >= mid_line and macd_line[1] < signal_line[1] and macd_line[2] > signal_line[2]

if buy_signal
    strategy.entry("Enter Long", strategy.long)
else if sell_signal
    strategy.entry("Enter Short", strategy.short)

Связанные

Больше