Количественная торговая стратегия на основе Stoch RSI и MFI


Дата создания: 2024-01-29 10:11:14 Последнее изменение: 2024-01-29 10:11:14
Копировать: 1 Количество просмотров: 673
1
Подписаться
1166
Подписчики

Количественная торговая стратегия на основе Stoch RSI и MFI

Обзор

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

Стратегический принцип

Стохастический RSI объединяет в себе преимущества случайного показателя ((KDJ) и относительно сильного показателя ((RSI)). Он рассчитывает значение RSI в течение определенного периода времени с помощью RSI, а затем применяет метод случайного показателя для вычисления stochastics K и D в этом RSI-арсенале, чтобы определить, перекупается ли RSI.

Показатель Money Flow Index (MFI) основан на изменении объема сделок и цен, который определяет рыночную связь спроса и предложения и перепродажу. Показатель считает, что рост цен является выражением многосторонней силы, которая сильнее, чем пустая сила, когда колебания усиливаются, и поэтому рост объема сделок свидетельствует о многостороннем повышении цен.

Эта стратегия устанавливает линии сверхпокупа и линии сверхпродажи на стохастическом RSI, а также линии сверхпокупа и линии сверхпродажи на MFI. Сигнал покупки возникает, когда линия K на стохастическом RSI пересекает линию сверхпродажи снизу вверх или линию сверхпродажи на MFI снизу вверх; сигнал продажи возникает, когда линия K на стохастическом RSI пересекает линию сверхпокупа снизу вверх или линию сверхпокупа на MFI снизу вверх.

Стратегические преимущества

Эта стратегия, в сочетании со стохастическим RSI и показателями MFI, позволяет более надежно идентифицировать перекуп и перепродажу на рынке и избегать создания ошибочных сигналов.

Во-первых, Stochastic RSI сам по себе обладает более высокой надежностью и чувствительностью, чем обычный случайный индикатор, и позволяет более точно определять ситуацию перекупа и перепродажи. Во-вторых, индикатор MFI определяет перекупы и перепродажи с точки зрения изменения объема торгов и цены, предоставляя дополнительное измерение, чтобы избежать ошибки суждения только с одной точки зрения.

В конце концов, стохастический RSI и MFI являются взаимодополняющими показателями. Стохастический RSI больше фокусируется на оценке изменений в ценах, в то время как MFI больше фокусируется на изменении объема торговли и объема торговли.

Стратегический риск

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

  1. Несмотря на то, что Stochastic RSI и MFI индикаторы имеют высокую надежность, в определенных рыночных условиях существует риск появления ошибочного сигнала покупки или продажи, что может привести к потере торгов.

  2. Неправильная настройка параметров индикатора. Настройка параметров Stochastic RSI и MFI может оказать большое влияние на торговые сигналы. Неправильная настройка параметров может ослабить эффективность индикатора.

  3. Риск отставания индикатора. Стохастический RSI и индикаторы MFI могут отставать, что может привести к упущению оптимального момента покупки или продажи.

  4. Риск ликвидации во время пустого положения. В период пустого положения, когда индикатор не дает сигналов, если столкнуться с поперечной ликвидацией, это приведет к определенным потерям в затратах возможности.

Решения для риска включают в себя: корректировку параметров показателя, установку стоп-лоров, сокращение позиций, комбинацию с другими показателями и т. д.

Направление оптимизации стратегии

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

  1. В сочетании с динамическими количественными показателями, на основе сигналов Stochastic RSI и MFI добавляются условия для суждения, чтобы избежать торговли во время свертывания. Например, добавляются прорывные суждения по цене закрытия / объему сделок.

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

  3. Оптимизация параметров. Корректировка длины параметров Stochastic RSI и MFI, расположение линий перекупа и перепродажи, чтобы параметры были более подходящими для рынка.

  4. Стратегия динамической корректировки в зависимости от рыночных условий. Идентификация трендовых ситуаций и консолидация, отслеживание трендовых операций в условиях трендовых ситуаций, отключение стратегии в условиях консолидации.

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

Исходный код стратегии
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © carterac

//@version=5
strategy("MFI and Stoch RSI Bot", overlay=true)

// Stochastic RSI settings
length = input(14, title="Stochastic RSI Length")
smoothK = input(3, title="Stochastic RSI K")
smoothD = input(3, title="Stochastic RSI D")

// Stochastic RSI overbought and oversold levels
stochRSIOverbought = input(70, title="Stochastic RSI Overbought Level")
stochRSIOversold = input(20, title="Stochastic RSI Oversold Level")

// Money Flow Index (MFI) settings
mfiLength = input(14, title="MFI Length")
mfiOverbought = input(70, title="MFI Overbought Level")
mfiOversold = input(20, title="MFI Oversold Level")

// Calculate RSI
rsiValue = ta.rsi(close, 11)

// Calculate Stochastic RSI
rsiHigh = ta.highest(rsiValue, 11)
rsiLow = ta.lowest(rsiValue, 7)
k = ta.sma(100 * (rsiValue - rsiLow) / (rsiHigh - rsiLow), 3)
d = ta.sma(k, 3)

// Calculate MFI
mfiValue = ta.mfi(volume, mfiLength)

// Determine buy and sell signals
buyCondition = ta.crossover(k, stochRSIOversold) or ta.crossover(mfiValue, mfiOversold)
sellCondition = ta.crossunder(k, stochRSIOverbought) or ta.crossunder(mfiValue, mfiOverbought)

// Plotting signals
plotshape(buyCondition, location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(sellCondition, location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)