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

SMA EMA
Дата создания: 2024-05-09 16:42:35 Последнее изменение: 2024-05-09 16:42:35
Копировать: 0 Количество просмотров: 627
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия основана на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале, основанном на трейдинговом сигнале.

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

  1. Расчет количества последовательных нитей, когда появляется определенное количество последовательных нитей ((по умолчанию 3)), считается, что формируется полисигнал.
  2. Используйте две средние линии, чтобы помочь определить тенденцию и время торговли, по умолчанию используйте 10-дневную среднюю линию и 200-дневную среднюю линию. Только если цена выше 200-дневной средней линии, подумайте о том, чтобы сделать больше.
  3. Настройка динамических стоп-пойнтов и стоп-убытков. Стоп-пойнты находятся на определенном процентном уровне выше цены открытия позиции (по умолчанию 1,5%), а стоп-пойнты на определенном процентном уровне ниже цены открытия позиции (по умолчанию 1%).
  4. Еще одним условием для позиции является изменение позиции цены относительно 10-дневной средней линии. Если при многостороннем хранении позиции цена падает сверху средней линии вниз, то позиция является равной.
  5. Стратегия действует только в течение определенного периода времени, определяемого в зависимости от даты начала и окончания.

Стратегические преимущества

  1. В сочетании с ценовой формой и равнолинейной системой, можно лучше улавливать трендовые возможности.
  2. С помощью динамических стоп-стоп можно гибко контролировать риски и доходы. Стоп-стоп постоянно повышается с ростом цены, позволяя прибыли бежать; стоп-стоп ограничивает максимальные потери.
  3. Используя изменение позиции краткосрочной средней линии в качестве сигнала равновесия, можно быстро реагировать на внезапное изменение цены.
  4. Укажите временные рамки торговли, чтобы избежать торговли в особые периоды, такие как закрытие рынка или праздничные дни, чтобы снизить риск.

Стратегический риск

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

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

  1. Для повышения надежности сигналов можно использовать дополнительные технические показатели, такие как MACD, RSI и другие.
  2. Оптимизация расчетов стоп- и стоп-пунктов, такие как использование ATR или волатильности для динамической корректировки или в сочетании с поддержкой сопротивления для настройки.
  3. Для сигнала о равной позиции можно рассмотреть возможность использования дополнительных условий подтверждения, таких как изменение объема сделки, пропорции многочисленных пустых позиций, чтобы избежать ошибочного сигнала.
  4. Внедрение мер по управлению позициями и контролю риска, таких как изменение размеров позиций для каждой сделки в зависимости от баланса счета и уровня риска, установление общих лимитов риска и т. д.
  5. Для параметров настройки, таких как количество непрерывных иней, средний цикл и т. д., можно провести оптимизационные тесты, чтобы найти оптимальную комбинацию параметров.

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

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

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

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)