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

MA SMA
Дата создания: 2024-04-26 16:10:11 Последнее изменение: 2024-04-26 16:10:11
Копировать: 0 Количество просмотров: 847
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

  3. Расчет фильтра случайных показателей. Когда K-линия поднимается ниже 50 и поддерживает определенную K-линию, создается сигнал фильтрации. Периодичность регулируется.

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

  5. Условия для создания пустого сигнала: случайный индикатор пересекается сверхпокупаемой зоной вниз или случайный индикатор фильтрует сигнал, а движущаяся средняя - вниз.

  6. Условия многоглавого плава: пересечение скользящей средней по случайной линии K и смещение средней линии вниз.

  7. Плохая позиция: случайный проход под K-линией по движущемуся среднему значению с переходом средней линии вверх.

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

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

  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")