Индикатор Momentum и комбинированная торговая стратегия SuperTrend


Дата создания: 2023-12-27 16:37:58 Последнее изменение: 2023-12-27 16:37:58
Копировать: 0 Количество просмотров: 914
1
Подписаться
1621
Подписчики

Индикатор Momentum и комбинированная торговая стратегия SuperTrend

Обзор стратегии

Эта стратегия называется “Стратегия торговли, объединяющая динамические показатели и показатели SuperTrend”. Основная идея этой стратегии заключается в том, чтобы объединить динамические показатели и показатели SuperTrend, чтобы использовать преимущества обоих показателей для более точных входов и выходов.

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

Второе: детали стратегии.

  1. Часть с динамическими показателями

Вычислить значение динамики цены за N дней и вычислить значение динамики за 1 день. Когда динамика цены за N дней > 0 и динамика цены за 1 день > 0 - это сигнал плюса; когда динамика цены за N дней < 0 и динамика цены за 1 день < 0, это сигнал пустоты.

  1. Часть индикатора SuperTrend

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

  1. entry logic

Проводить взаимодействие между многосигналом динамического индикатора и многосигналом SuperTrend, одновременно являясь окончательным многосигналом Entry; взаимодействовать между многосигналом динамического индикатора и многосигналом SuperTrend, одновременно являясь окончательным многосигналом Entry.

Третье, анализ стратегических преимуществ.

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

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

  3. Два показателя взаимно проверяются, что позволяет уменьшить количество ложных сигналов и повысить точность записей.

  4. В сочетании с двумя индикаторами Exit logic позволяет отслеживать тренд и избегать преждевременного выхода.

Анализ стратегических рисков

  1. Неправильная настройка параметров N-дневного динамического показателя может привести к пропущенным поворотным точкам тренда.

  2. Неправильно настроенные параметры SuperTrend, неточная карта канала, могут создать ложные сигналы.

  3. Эти два показателя подтверждают друг друга, и, возможно, мы упустили часть возможностей.

  4. Необходимо скорректировать комбинацию параметров, чтобы найти оптимальную пару параметров и максимально использовать потенциал стратегии.

Соответствующие решения:

  1. Найдите оптимальные параметры с помощью метода walk-forward analysis.

  2. Добавление модуля оптимизации параметров, оптимизация параметров в реальном времени.

  3. Комбинированная логика и комплексное рассмотрение обоих показателей.

Пятое: оптимизация стратегии

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

  2. Добавление моделей машинного обучения, которые помогут определить точность сигналов индикатора

  3. Расширить набор индикаторов, создать набор индикаторов, использовать механизм голосования для создания сигнала Entry

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

6. Заключение

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

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

//@version=4
strategy("Momentum + SuperTrend Strategy", overlay=true)

// Momentum Strategy
length = input(12)
price = close
momentum(seria, length) =>
    mom = seria - seria[length]
    mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
momLongCondition = mom0 > 0 and mom1 > 0
momShortCondition = mom0 < 0 and mom1 < 0

// SuperTrend Strategy
Periods = input(10)
Multiplier = input(3.0)
changeATR = input(true)
src = input(hl2)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

// Combined Entry Conditions
longCondition = momLongCondition and buySignal
shortCondition = momShortCondition and sellSignal

// Strategy Entries
if (longCondition)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (shortCondition)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

// Plot SuperTrend on the chart
upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2)
dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2)

// Highlight the SuperTrend region
fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight")

// Plot SuperTrend Buy/Sell signals on the chart
plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small)
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © naveen1119