Количественная стратегия торговли, основанная на РСИ акций и МФИ

Автор:Чао Чжан, Дата: 2024-01-29 10:11:14
Тэги:

img

Обзор

Эта стратегия сочетает в себе показатели стохастического показателя рентабельности и показатели МФО для выявления условий перекупки и перепродажи и принятия решений о покупке и продаже.

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

Индикатор Stochastic RSI сочетает в себе преимущества Stochastic Oscillator (KDJ) и Relative Strength Index (RSI). Он сначала рассчитывает значения RSI за определенный период времени через RSI, а затем применяет Stochastic метод для расчета Stochastic K и D значений этого массива RSI, чтобы определить, является ли RSI перекупленным или перепроданным.

Индикатор денежного потока (МФИ) оценивает рыночное соотношение спроса и предложения, а также условия перекупки/перепродажи на основе изменений объема и цены. Индикатор считает, что рост цен отражает силы быка, которые сильнее медвежьих сил.

Эта стратегия устанавливает уровни перекупленности и перепродажи для стохастического ИФС и МФИ. Когда линия K индикатора Стохастического ИФС пересекает линию перепродажи вверх или индикатор МФИ пересекает линию перепродажи вверх, генерируется сигнал покупки. Когда линия K индикатора Стохастического ИФС пересекает линию перекупленности вниз или индикатор МФИ пересекает линию перекупленности вниз, генерируется сигнал продажи.

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

Эта стратегия сочетания стохастических показателей RSI и показателей МФИ позволяет более надежно идентифицировать условия перекупки/перепродажи на рынке и избежать создания ложных сигналов.

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

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

Наконец, стохастические показатели и показатели МФИ являются взаимодополняющими. Стохастический показатель больше фокусируется на изменениях цен для определения рыночных условий, в то время как МФИ больше фокусируется на изменениях объема и оборота. Использование обоих в сочетании позволяет судить о рыночных условиях с более всеобъемлющей точки зрения и принимать более точные и надежные торговые решения.

Риски стратегии

К основным рискам этой стратегии относятся:

  1. Риск того, что индикаторы генерируют неверные сигналы. Хотя стохастические индикаторы RSI и МФИ имеют высокую надежность, они все равно могут генерировать неверные сигналы покупки/продажи в определенных рыночных условиях, что приводит к торговым потерям.

  2. Риск неправильного настройки параметров для показателей перекупленности/перепроданности. Настройки параметров стохастических показателей RSI и МФИ оказывают большое влияние на торговые сигналы. Если параметры установлены неправильно, это ослабит полезность показателей.

  3. Риск отставания сигналов от индикаторов.Стохастические индикаторы RSI и МФИ более или менее имеют некоторое отставание, которое может не соответствовать оптимальному сроку покупки/продажи.

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

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

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

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

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

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

  3. Оптимизировать настройки параметров: корректировать параметры стохастического показателя рентабельности и МФИ, такие как длина, положение линий перекупленных/перепроданных и т.д., чтобы параметры лучше соответствовали рыночным условиям.

  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)


Больше