Эта стратегия использует интеграцию различных индикаторов для оценки основных тенденций и принятия торговых решений в соответствии с односторонним изменением сигналов комбинации индикаторов. Стратегия объединяет движущуюся среднюю скорость, индикатор STOCH и индикатор MACD, создавая более полный и надежный механизм отслеживания тенденций.
Эта стратегия основана на следующих показателях:
Скорость скользящей средней: трендовый индикатор скорости изменения цены.
Индекс STOCH: перекуп и перепродажа в регионах, определяющие переход тренда.
MACD: разница между двумя средними линиями отражает изменение тренда.
Конкретные правила сделки следующие:
Посмотрите на движущуюся среднюю скорость вверх, чтобы увидеть больше сигналов.
STOCH входит в зону перепродажи, давая сигнал о пустоте.
MACD пересекается с средней линией, чтобы показать больше сигналов.
Когда любые 2 индикаторных сигнала совпадают, принимаются соответствующие решения о входе.
Изменения в сигналах индекса выводят из строя равновесные позиции.
Стратегия учитывает несколько факторов тенденции и фильтрует ошибочные факторы с помощью комбинации сигналов для формирования стабильной торговой системы с более сильным подтверждением.
Комбинированная стратегия имеет следующие преимущества по сравнению с отдельными показателями:
Исключение составляют:
Помимо того, что это было сделано в прошлом году, это было сделано в следующем году.
В сочетании с трендовыми и обратными индикаторами, предоставляет общий взгляд.
Сигналы должны быть сильными, чтобы предотвратить ложное прорыв.
Правила простые, понятные и простые в применении.
Гибкость в регулировании параметров и адаптивность.
Различные временные циклы являются универсальными и широко распространены.
Можно ввести вес для обучения машинного обучения.
Общая устойчивость и рентабельность выше, чем один показатель.
Несмотря на многочисленные преимущества этой стратегии, следует учитывать следующие риски:
Многочисленные показатели повышают сложность стратегии.
Оптимизация параметров и настройка весов более сложна.
Показатели могут быть противоречивыми.
Некоторые показатели отстают, что не позволяет полностью избежать потерь.
Односторонние позиции были сделаны в течение неопределенного периода времени, что было связано с элементом удачи.
Комбинированные сигналы не устраняют свойственный трендовым трейдерам контроль.
Высокая частота сделок может быть обусловлена повышенными сборами за транзакции.
Следует обратить внимание на показатель рентабельности.
В соответствии с вышеприведенным анализом, стратегия может быть улучшена:
Оценка эффективности различных показателей на различных рынках.
Добавить проверку стабильности параметров, чтобы предотвратить переоптимизацию.
Оптимизация настройки весов индикаторов, снижение конфликта сигналов.
Настройка стоп-стоп, чтобы избежать серьезных потерь.
Использование временных выходов для контроля одностороннего бесцельного удержания позиций.
Оценить влияние частоты сделок на их стоимость.
Введение ограничений по показателям риска.
Проверка многорыночной устойчивости.
Продолжайте проверять стратегии, чтобы не допустить их устаревания.
Эта стратегия объединяет множества индикаторов для определения тенденции и формирования стабильной системы комбинированных сигналов. Однако любая стратегия требует постоянной оптимизации и улучшения, внимания к показателям риска и предотвращения перенастройки. Количественная торговля - это процесс постоянного обучения и итерации.
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// By TradeStation
//@version=5
strategy("Mov Avg Speed Strategy", overlay=true)
src = input(close, title="Source")
// MA Speed
avg_len = input.int(50, minval=1, title="Avg Length", group="MA Speed")
roc_len = input.int(1, minval=1, title="Rate of Change Length", group="MA Speed")
avg_roc_len = input.int(10, minval=1, title="Avg Rate of Change Length", group="MA Speed")
// Stochastic
stoch_len = input.int(14, minval=1, title="Stochastic Length", group="Stochastic")
smooth_k = input.int(3, minval=1, title="Stochastic Smooth K", group="Stochastic")
overbought = input.float(80, title="Stochastic Overbought", group="Stochastic")
oversold = input.float(20, title="Stochastic Oversold", group="Stochastic")
// MACD
fast_length = input(12, title="Fast Length", group="MACD")
slow_length = input(26, title="Slow Length", group="MACD")
macd_avg_length = input.int(9, title="MACD Avg Length", minval=1, group="MACD")
// MA Speed
avg = ta.sma(src, avg_len)
roc = ta.roc(avg, roc_len)
avg_roc = ta.sma(roc, avg_roc_len)
avg_roc_signal = avg_roc > 0 ? 1 : avg_roc < 0 ? -1 : 0
// Stochastic k
k = ta.sma(ta.stoch(close, high, low, stoch_len), smooth_k)
stochastic_signal = k <= oversold ? 1 : k >= overbought ? -1 : 0
// MACD
fast_ma = ta.ema(src, fast_length)
slow_ma = ta.ema(src, slow_length)
macd = fast_ma - slow_ma
macd_avg = ta.ema(macd, macd_avg_length)
macd_signal = macd_avg > macd_avg[1] ? 1 : macd_avg < macd_avg[1] ? -1 : 0
// set the signal couint
long_count = 0
short_count = 0
if macd_signal == 1
long_count += 1
else if macd_signal == -1
short_count += 1
if stochastic_signal == 1
long_count += 1
else if stochastic_signal == -1
short_count += 1
if avg_roc_signal == 1
long_count += 1
else if avg_roc_signal == -1
short_count += 1
if (long_count >= 2)
strategy.entry("Long", strategy.long)
if (short_count >= 2)
strategy.entry("Short", strategy.short)