Эта стратегия - это стратегия импульса, основанная на скользящих средних линиях.

Автор:Чао Чжан, Дата: 2024-01-23 10:38:18
Тэги:

img

Обзор

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

Принцип стратегии

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

Конкретно, в стратегии определены 13-дневная простая скользящая средняя и 34-дневная простая скользящая средняя. После расчета этих двух скользящих средних на основе ежедневной цены закрытия сравнивается их величина. Если 13-дневная линия пересекает 34-дневную линию, генерируется сигнал покупки, указывающий на то, что цена акции вступает в восходящую тенденцию и должна быть установлена длинная позиция; если 13-дневная линия пересекает 34-дневную линию, генерируется сигнал продажи, указывающий на то, что цена акции входит в нисходящую тенденцию и позиция должна быть закрыта.

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

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

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

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

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

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

Руководство по оптимизации

Следующие аспекты этой стратегии могут быть оптимизированы:

  1. Оптимизировать параметры цикла скользящей средней линии для поиска оптимальной комбинации параметров для различных сортов и условий рынка.

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

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

  4. Усиление механизмов управления позициями, таких как фиксированные инвестиции и коэффициент позиций для контроля риска одной сделки.

Заключение

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


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)

// === TA LOGIC ===

//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))

// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")

FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (enableShorts)
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.close("Long")

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Больше