Стохастический осциллятор и стратегия перекрестка скользящей средней с стоп-лосом и стохастическим фильтром

Автор:Чао Чжан, Дата: 2024-04-26 16:10:11
Тэги:М.А.SMA

img

Обзор

Эта стратегия сочетает в себе стохастический осциллятор с скользящей средней, генерируя торговые сигналы путем наблюдения за условиями перекупки и перепродажи стохастического индикатора и тенденцией скользящей средней. Она производит короткий сигнал, когда стохастический индикатор находится в зоне перекупки и скользящая средняя находится вниз, и длинный сигнал, когда находится в зоне перепродажи и скользящая средняя находится вверх. Кроме того, стратегия вводит фильтр стохастического индикатора, который также может генерировать соответствующие торговые сигналы, когда стохастическая линия K пересекает линию D после пребывания ниже 50 на определенное количество K-линий. Стратегия также устанавливает Stop Loss для контроля риска.

Принцип стратегии

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

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

  3. Когда линия K остается ниже 50 в течение определенного количества линий K, она генерирует сигнал фильтра.

  4. Условия получения длинного сигнала: Стохастический индикатор пересекается вверх в зоне перепроданности ОЛЬШЕ фильтрный сигнал стохастического индикатора И скользящая средняя показатель вверх.

  5. Условия для генерации короткого сигнала: Стохастический индикатор пересекает вниз в зоне перекупленности ОЛЬШЕ Сигнал фильтра стохастического индикатора И скользящая средняя вниз.

  6. Условие закрытия длинной позиции: Стохастическая линия K пересекает переходную среднюю и средняя поворачивается вниз.

  7. Условие закрытия короткой позиции: Стохастическая линия K пересекается ниже скользящей средней и средняя поворачивается вверх.

  8. Управление позициями использует фиксированный процент средств, 10% по умолчанию.

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

  1. Сочетая характеристики перекупленности/перепроданности и тенденции, он может преследовать и уничтожать тенденцию.

  2. Фильтр стохастического индикатора позволяет избегать частой торговли на колеблющихся рынках.

  3. Настройка Stop Loss помогает контролировать снижение.

  4. Структура кода ясна, параметры регулируемы, и он подходит для дальнейшей оптимизации.

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

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

  2. Точность захвата ордеров в поворотные моменты тренда слаба, а частота стоп-лосса может быть высокой.

  3. Управление фондами с фиксированной ставкой имеет большую прибыль в случае последовательных потерь.

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

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

  2. Разделяйте сигналы на сильные и слабые, и увеличивайте позиции, когда появляются сильные сигналы.

  3. Оптимизировать оценку поворотных точек тренда, чтобы уловить больше движений рынка.

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

  5. Попробуйте различные комбинации параметров, чтобы найти оптимальные параметры.

Резюме

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


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pablo_2uc

//@version=5
strategy("Estrategia Estocástico + MA con Stop Loss y Filtro Estocástico", overlay=true)

// Parámetros del Estocástico
length = input.int(14, title="Longitud Estocástico")
smoothK = input.int(3, title="Suavizado K")
smoothD = input.int(3, title="Suavizado D")
oversold = input.int(20, title="Sobreventa")
overbought = input.int(80, title="Sobrecompra")

// Parámetros de la Media Móvil
maLength = input.int(9, title="Longitud MA")
maSource = input(close, title="Fuente MA")

// Capital inicial
capital = 5000

// Tamaño de posición (10% del capital)
positionSize = capital * 0.10

// Stop Loss (2% del precio de entrada)
stopLossPercent = input.int(2, title="Stop Loss (%)") / 100

// Número de ruedas para el filtro estocástico
filterPeriods = input.int(12, title="Ruedas de Filtro Estocástico")

// Cálculo del Estocástico
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)

// Cálculo de la Media Móvil
ma = ta.sma(maSource, maLength)

// Filtro estocástico
stochasticFilter = ta.sma(k > 50 ? 1 : 0, filterPeriods)

// Condiciones de entrada en largo y corto
longCondition = (ta.crossunder(k, oversold) or ta.crossover(stochasticFilter, 1)) and ma > ma[1]
shortCondition = (ta.crossover(k, overbought) or ta.crossover(stochasticFilter, 1)) and ma < ma[1]

// Condiciones de salida
exitLongCondition = ta.crossover(k, ma) and ma < ma[1]
exitShortCondition = ta.crossunder(k, ma) and ma > ma[1]

// Estrategia
if (longCondition)
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent))
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent))

// Cierre de posiciones
if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")

Связанные

Больше