Количественная торговая стратегия на основе SMA и скользящей линии тренда


Дата создания: 2024-02-04 15:18:12 Последнее изменение: 2024-02-04 15:18:12
Копировать: 0 Количество просмотров: 639
1
Подписаться
1617
Подписчики

Количественная торговая стратегия на основе SMA и скользящей линии тренда

Обзор

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

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

Стратегия основана на следующих компонентах:

  1. SMA: простая скользящая средняя, рассчитывающая среднее значение цены закрытия за определенный период (smaPeriod) в качестве сигнальной линии.

  2. Прокручивающаяся линия тренда: наилучшее совпадение прямой линии в течение определенного периода (окно) на основе линейной регрессии как сигнал тренда. Метод расчета - наименьшее двоичное умножение.

  3. Условия входа: сделайте дополнительный вход, когда цена закрытия будет выше средней линии SMA и линии ролирования тренда.

  4. Условия выхода: Прямой выход, когда цена закрытия ниже средней линии SMA и линии роллингового тренда.

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

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

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

  1. Двойная фильтрация предотвращает ложные прорывы и повышает точность принятия решений.
  2. Роликовые трендовые линии предоставляют динамические каналы, поддерживающие более точные торговые каналы.
  3. Простая, интуитивно понятная логика транзакций, которую легко понять и реализовать.
  4. Настраиваемые параметры, адаптированные к различным рыночным условиям.

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

В этой стратегии есть определенные риски, которые сосредоточены на следующем:

  1. Неправильная настройка параметров SMA и тренд-линии может привести к упущенным возможностям или чрезмерным ложным прорывам.
  2. При значительных колебаниях рынка, поддержка, предоставляемая SMA и трендовым линией QIAN, ослабевает.
  3. Неспособность пробиться может привести к убыткам, и требуется строгое прекращение убытков.

Для оптимизации этих рисков можно начать с следующих пунктов:

  1. Параметры оптимизации, различные сорта могут иметь различные комбинации параметров.
  2. Увеличение стоп-лосса и сокращение убытков.
  3. В то же время, в некоторых странах, например, в Китае, существуют ограничения на использование криптовалюты.

Направление оптимизации стратегии

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Добавлена функция динамической корректировки параметров циклов SMA и скольжения. Параметры автоматически оптимизируются в различных рыночных условиях.

  2. Повышение гибкости механизмов остановки убытков. Остановка убытков, когда цена превышает определенную пропорцию линии тренда.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SMA Strategy with Rolling Trendline", overlay=true)

// Input parameters
smaPeriod = input(14, title="SMA Period")
window = input(20, title="Trendline Window")
startDate = input(timestamp("2023-01-01"), title="Start Date")
endDate = input(timestamp("2023-12-31"), title="End Date")

// Calculating SMA
sma = sma(close, smaPeriod)

// Function to calculate linear regression trendline for a window
linreg_trendline(window) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to window - 1
        sumX := sumX + i
        sumY := sumY + close[i]
        sumXY := sumXY + i * close[i]
        sumX2 := sumX2 + i * i
    slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / window
    slope * (window - 1) + intercept

// Calculating the trendline
trendline = linreg_trendline(window)

// Entry and Exit Conditions
longCondition = close > sma and close < trendline
exitLongCondition = close < sma and close > trendline

// Strategy logic
if (true)
    if (longCondition)
        strategy.entry("Long", strategy.long)
    if (exitLongCondition)
        strategy.close("Long")

// Plotting
plot(sma, title="Simple Moving Average", color=color.blue)
plot(trendline, title="Rolling Trendline", color=color.red)
plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)