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


Дата создания: 2024-03-11 12:06:22 Последнее изменение: 2024-03-11 12:06:22
Копировать: 0 Количество просмотров: 646
1
Подписаться
1617
Подписчики

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

Обзор стратегии

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

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

В коде стратегии используются две движущиеся средние, одна из которых является быстрой средней ((по умолчанию 14-й период), а другая - медленной средней ((по умолчанию 28-й период). Типы движущихся средних могут быть выбраны: простая движущаяся средняя ((SMA), показательная движущаяся средняя ((EMA), весовая движущаяся средняя ((WMA) и относительная движущаяся средняя ((RMA).

Основная логика этой стратегии состоит в следующем:

  1. Вычисление значения быстрого среднего и медленного среднего
  2. Если быстрый проходит медленный по средней линии, то создается много сигналов, открывается много позиций.
  3. Если быстрая средняя линия пересекает медленную среднюю линию, и допускается открытие позиции (allowShorting=true), создается сигнал открытия позиции.
  4. Если быстрая средняя линия пересекает медленную среднюю линию, и не допускается разрыв (allowShorting=false), выровняется многоочередная позиция

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

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

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

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

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

Для борьбы с этими рисками можно предпринять следующие меры:

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

Оптимизация стратегии

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 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/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")