Стратегия серфера на основе индекса импульса стохастики

Автор:Чао Чжан, Дата: 2024-02-27 14:32:46
Тэги:

img

Обзор

В этой статье представлена стратегия отслеживания тенденций акций на основе индикатора Stochastics Momentum Index (SMI). Стратегия называется Momentum Surfer Strategy. Она определяет перекупленные и перепроданные области с SMI и входит в длинный / короткий, чтобы извлечь выгоду из переворотов тренда.

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

Индикатор SMI используется для выявления зон перекупления и перепродажи. Значения в красной зоне указывают на перепродажу акций, в то время как зеленая зона означает перекупленные условия. Торговые сигналы генерируются из перекрестка между SMI и его линией EMA.

В частности, длинный сигнал запускается, когда SMI пересекает его EMA и SMI находится ниже уровня перепродажи -40; короткий сигнал запускается, когда SMI пересекает его EMA и SMI находится выше уровня перекупки -40.

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

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

Поскольку он использует SMI для определения точек входа и выхода, сигналы идеально совпадают с переломом цен.

Кроме того, сам SMI обладает характеристикой сглаживания цен. По сравнению с простыми скользящими средними, он более стабильно реагирует на изменения цен. Торговые сигналы более надежны, не подвергаясь легкому воздействию рыночного шума.

Подводя итог, стратегия успешно использует силы SMI для эффективного отслеживания тенденций акций.

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

Стратегия в значительной степени опирается на показатель SMI и, следовательно, испытывает некоторые связанные с ним риски.

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

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

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

Улучшение

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

  1. Включить другие показатели для формирования синдикатной системы. Это помогает повысить надежность и рентабельность сигнала. Можно добавить фундаментальные факторы и меры волатильности.

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

  3. Добавьте механизмы стоп-лосса.

  4. Сочетание количественных правил проверки запасов для улучшения общего качества запасов.

Заключение

В этой статье мы представляем стратегию Momentum Surfer, которая отслеживает тенденции с помощью индикатора SMI. Ее самая большая сила заключается в том, чтобы улавливать переломы и плавно следовать за тенденциями. Некоторые риски, такие как чувствительность параметров и качество сигнала, присутствуют. Мы предлагаем несколько способов его улучшения. В целом стратегия привлекательна для торговли алгоритмами и стоит реальной проверки торговли.


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

//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="Stoch_MTM_Doan", overlay=true)

// Input parameters
a = input.int(10, "Percent K Length")
b = input.int(3, "Percent D Length")
ob = input.int(40, "Overbought")
os = input.int(-40, "Oversold")

// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2

avgrel = ta.ema(ta.ema(rdiff,b),b)
avgdiff = ta.ema(ta.ema(diff,b),b)

// SMI calculations
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ta.ema(SMI,b)
emasignal = ta.ema(SMI, 10)

// Color Definition for Stochastic Line
col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white

plot(SMIsignal, title="Stochastic", color=color.white)

plot(emasignal, title="EMA", color=color.yellow)

level_40 = ob
level_40smi = SMIsignal > level_40 ? SMIsignal : level_40

level_m40 = os
level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40

plot(level_40, "Level ob", color=color.red)
plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line)

plot(level_m40, "Level os", color=color.green)
plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line)

//fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold")
//fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought")

// Strategy Tester
longCondition = ta.crossover(SMIsignal, emasignal) and (SMI < os)
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = ta.crossunder(SMIsignal, emasignal) and (SMI > ob)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Больше