Многофакторная количественная торговая стратегия


Дата создания: 2023-09-13 14:46:59 Последнее изменение: 2023-09-13 14:46:59
Копировать: 0 Количество просмотров: 672
1
Подписаться
1617
Подписчики

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

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

Стратегия состоит из трех основных модулей:

  1. Фактор равновесия

Тренд-фильтр построен из пяти различных циклов средней линии EMA (8, 13, 21, 34 и 55 дней). Средняя линия расположена от короткой до длинной и имеет тенденционные характеристики и создает торговый сигнал только тогда, когда она проходит через среднюю долгосрочную среднюю.

  1. Коэффициенты колебаний

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

Параметр RSI составляет 14, когда RSI соответствует условию плюса в диапазоне 40-70, и условию минуса в диапазоне 30-60.

Стохастический параметр равен ((14,3,3), когда K-линия соответствует условию плюса в диапазоне 20-80, а в диапазоне 5-95 соответствует условию пустоты。

  1. Логика входа и выхода

Входный сигнал подается только в том случае, если уравнительный коэффициент и коэффициент колебания соответствуют условиям одновременно; выходный сигнал подается, если какой-либо из факторов больше не соответствует условиям.

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

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

  • Многофакторный дизайн эффективно фильтрует рыночный шум и предотвращает переторгивание
  • Принимая во внимание как трендовые факторы, так и обратные, а также преимущества отслеживания трендов и точечных сделок
  • В сочетании с равнолинейным и колебательным индикаторами можно обнаружить обратные точки в тренде.
  • Большое пространство для оптимизации, для улучшения эффективности стратегии путем корректировки параметров

Сообщения о риске

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")