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


Дата создания: 2024-02-21 17:03:31 Последнее изменение: 2024-02-21 17:03:31
Копировать: 0 Количество просмотров: 648
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

В частности, при выполнении следующих условий: цена выше 200-дневной линии, цена ниже 10-дневной линии, ранее не держала позиции. При выполнении следующих условий: цена выше 10-дневной линии, ранее держала многоочередные позиции.

Как видно, логика торговли в этой стратегии основана главным образом на золотом форке на средней линии, на обратном пути в направлении тренда после определения длинной средней линии и на остановке отслеживания тренда, что относится к типичной стратегии отслеживания тренда.

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

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

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

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

  3. Установка механизма FAILSAFE Stop Loss, который позволяет эффективно контролировать одиночные потери и защищать безопасность средств на счету.

  4. Это позволяет отслеживать отступления от остановок, использовать возможности средней и длинной линий, чтобы получить дополнительную альфу.

  5. Применение чисто механизированных методов торговли, избегая субъективного эмоционального влияния, делает стратегию более легкой для реализации.

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

Основные риски этой стратегии:

  1. Риск обратной совместимости данных. Фактические рыночные условия могут отличаться от исторических данных, что приводит к дисконтированию эффекта торговли на реальном диске.

  2. Риск ложного прорыва. Если цена только касается средней линии, то есть большая вероятность обратного корректировки, что может привести к небольшим убыткам.

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

Ответ на этот вопрос таков:

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

  2. Оптимизация параметров, корректировка комбинации параметров среднелинейной системы, обеспечение качества торговых сигналов.

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

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

Эта стратегия может быть улучшена в следующих аспектах:

  1. Добавление условий фильтрации, таких как фильтрация объема транзакций, может эффективно снизить количество ненужных транзакций, вызванных ложными прорывами.

  2. В сочетании с другими индикаторами, такими как KDJ, MACD и т. Д., формируются пакеты индикаторов, которые могут улучшить качество торговых сигналов.

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_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/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=1000, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)