Стратегия «золотой крест» и «мертвый крест» на основе скользящей средней


Дата создания: 2023-09-21 10:47:24 Последнее изменение: 2023-09-21 10:47:24
Копировать: 0 Количество просмотров: 639
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия основана на трехместном движущемся среднем. Торговля проводится в форме золотой форки. Продажа осуществляется при пересечении средней скорости на средней скорости и средней скорости на средней скорости. Продажа осуществляется при пересечении средней скорости ниже средней скорости и ниже средней скорости.

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

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

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

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

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

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

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

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

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

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

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

Эта стратегия основана на трёх равнолинейных перекрестках, которые определяют направление тренда. Преимущества заключаются в том, что торговые сигналы просты, ясны и конфигурируемы; недостатки - легко задерживаются и требуют оптимизации параметров.

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

// © DaynTrading

//@version=4
// strategy(
//      title="Simple Moving Average Cross",
//      overlay=true,
//      initial_capital=5000,
//      default_qty_type=strategy.percent_of_equity,
//      default_qty_value=2,
//      commission_type=strategy.commission.percent,
//      commission_value=0.075,
//      pyramiding=0
//      )

sma_top_input = input(title="SMA Top", type=input.integer, defval=20)
sma_mid_input = input(title="SMA Mid", type=input.integer, defval=50)
sma_low_input = input(title="SMA Low", type=input.integer, defval=200)

bars_long = input(title="Long: After trigger, how many bars to wait?", type=input.integer, defval=5)
bars_short = input(title="Short: After trigger, how many bars to wait?", type=input.integer, defval=5)

sma_top = sma(close, sma_top_input)
sma_mid = sma(close, sma_mid_input)
sma_low = sma(close, sma_low_input)

long = sma_top > sma_mid and sma_mid > sma_low
short = sma_top < sma_mid and sma_mid < sma_low

long_condition = long and long[bars_long] and not long[bars_long + 1]
short_condition = short and short[bars_short] and not short[bars_short + 1]

close_long = sma_top < sma_mid and sma_mid < sma_low and not long[bars_long + 1]
close_short = sma_top > sma_mid and sma_mid > sma_low and not short[bars_short + 1]

plot(sma_top, title="SMA Top", color=#95f252, linewidth=2)
plot(sma_mid, title="SMA Mid", color=#FF1493, linewidth=2)
plot(sma_low, title="SMA Low", color=#6a0dad, linewidth=2)

strategy.entry("LongPosition", strategy.long, when = long_condition)
strategy.entry("ShortPosition", strategy.short, when = short_condition)
    
strategy.close("LongPosition", when = close_short)
strategy.close("ShortPosition", when = close_long)