
В данной статье представлена количественная торговая стратегия, основанная на SMI, которая использует перекрестные сигналы SMI и его индикаторных движущихся средних (EMA) для выявления потенциальных возможностей покупки и продажи. Когда SMI проходит по линии EMA, она вызывает сигнал покупки; когда SMI проходит по линии EMA, она вызывает сигнал продажи.
В основе этой стратегии лежит индикатор случайного сильного момента ((SMI)). SMI - это индикатор динамического колебания, используемый для измерения позиции цены закрытия относительно высокого и низкого ценового диапазона в течение определенного периода времени. В частности, стратегия сначала рассчитывает максимальные и минимальные цены за определенный период, а затем расчитывает разницу между ценой закрытия и средней точкой высокой и низкой цены, а также разницу между максимальной и минимальной ценой.
Когда сигнал SMI проходит по линии EMA, это указывает на усиление верхней колебательной энергии, которое вызывает сигнал покупки; когда сигнал SMI проходит по линии EMA, это указывает на усиление нижней колебательной энергии, которая вызывает сигнал продажи. Кроме того, эта стратегия также обозначает крайние состояния SMI с помощью уровня перекупа и перепродажи.
Стратегия основана на мощном динамическом индикаторе SMI, который эффективно улавливает изменения в тенденциях рынка и динамике.
Стратегическая логика ясна, легко понятна и реализуема.
Используя скользящие средние индексы в качестве сигнальных линий, стратегия может сгладить шум цен и повысить надежность сигнала.
Маркировки на уровне перекупа и перепродажи предоставляют дополнительные инструменты управления риском для стратегии.
Эта стратегия зависит от одного индикатора SMI и может быть подвержена риску сбоя индикатора. Для смягчения этого риска можно рассмотреть возможность подтверждения торговых сигналов в сочетании с другими техническими или фундаментальными показателями.
Стратегия может привести к частоте торговых сигналов на колеблющихся рынках, что приводит к высоким торговым затратам. Чтобы решить эту проблему, можно уменьшить частоту торгов путем оптимизации параметров или введения механизма фильтрации.
В этой стратегии отсутствует четкий механизм остановки убытков, что может привести к проблемам с чрезмерным риском для одной сделки. Риск можно контролировать, установив соответствующий уровень остановки убытков.
Оптимизация параметров: эффективность стратегии в значительной степени зависит от параметров, используемых в расчете SMI, таких как длина %K, длина %D и т. д. Оптимизация этих параметров может повысить эффективность стратегии.
Фильтрация сигналов: Для снижения частоты торгов и повышения качества сигналов можно рассмотреть возможность внедрения дополнительных механизмов фильтрации, таких как подтверждение тренда, подтверждение объема торгов и т. д.
Управление рисками: включение в стратегию четких правил управления стоп-позициями и позициями позволяет лучше контролировать риски и повышать устойчивость стратегии.
Многофакторное объединение: объединение сигналов SMI с другими техническими показателями или фундаментальными факторами для создания более полного и надежного механизма принятия решений о сделках.
В данной статье представлена стратегия количественного трейдинга, основанная на показателе случайного момента ((SMI)). Эта стратегия использует SMI и его индексные движущиеся средние сигналы для выявления потенциальных возможностей для покупки и продажи. Преимущества стратегии заключаются в том, что она основана на мощных динамических показателях, логической ясности и простоте реализации, а также в использовании движущихся средних и сверхпокупа сверхпродажи для повышения надежности сигналов и управления рисками.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="SMI_BackTest", overlay=false)
// 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)
if (longCondition)
strategy.entry("Buy", strategy.long)
shortCondition = ta.crossunder(SMIsignal, emasignal)
if (shortCondition)
strategy.entry("Sell", strategy.short)