Стратегия торговли в комбинации с импульсом и супертенденцией

Автор:Чао Чжан, Дата: 2023-12-27 16:37:58
Тэги:

img

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

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

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

2. Детальный стратегический принцип

  1. Часть индикатора импульса

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

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

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

  3. Логика ввода

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

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

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

  2. Использование индикаторов SuperTrend для определения каналов прорыва цены для захвата точек прорыва.

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

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

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

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

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

  3. Взаимная проверка обоих показателей может упустить некоторые возможности.

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

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

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

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

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

5. Направления оптимизации

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

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

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

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

6. Резюме

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


/*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

Больше