Торговая стратегия, основанная на трех последовательных черных свечах и двойных скользящих средних

SMA SMA200
Дата создания: 2024-05-14 17:30:35 Последнее изменение: 2024-05-14 17:30:35
Копировать: 3 Количество просмотров: 506
1
Подписаться
1617
Подписчики

Торговая стратегия, основанная на трех последовательных черных свечах и двойных скользящих средних

Обзор

Стратегия основана на трёх последовательных отрицательных линий и двух убыточных линий. Основная идея стратегии заключается в следующем: открыть позицию, когда три отрицательных линия появляются последовательно, и текущая закрывающая цена выше 200-дневного среднего уровня; открыть позицию, когда 10-дневная средняя линия пересекается с ценой, или когда цена достигает точки остановки или остановки.

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

  1. Расчет количества последовательных нинов. Если цена закрытия падает, число последовательных нинов добавляется к 1, в противном случае число последовательных нинов переводится на 0.
  2. Вычислите 10-дневную среднюю и 200-дневную среднюю линии.
  3. Посмотрите, не превышает ли текущая цена закрытия 10-дневную среднюю.
  4. Для определения соответствия условиям входа: три последовательных черных линии, текущее время в указанном диапазоне, и текущая цена закрытия выше 200-дневного среднего уровня.
  5. Оценить, соответствует ли он условиям выхода: среднедневная линия с пересечением с ценой, или цена достигла точки остановки или остановки убытка.
  6. Если вы выполняете условия для входа в рынок и в настоящее время не имеете позиции, то можете открыть позицию еще раз.
  7. Если вы выполняете условия выхода из игры и в настоящее время у вас есть позиции, то они должны быть выровнены.

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

  1. Учитывая ценовые движения и средние факторы, можно использовать возможности в условиях тенденций и потрясений.
  2. Установка тормозной остановки позволяет эффективно контролировать риск.
  3. Ограничение времени действия стратегии позволяет избежать чрезмерного риска в определенные периоды времени.
  4. Логика кода четкая, читабельная, легко понятна и оптимизируема.

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 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)