Эксклюзивная стратегия Quantitative Master Multi-Level Moving Average Crossover


Дата создания: 2024-01-12 12:11:02 Последнее изменение: 2024-01-12 12:11:02
Копировать: 4 Количество просмотров: 565
1
Подписаться
1617
Подписчики

Эксклюзивная стратегия Quantitative Master Multi-Level Moving Average Crossover

Обзор

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

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

В данной стратегии используются три группы движущихся средних: быстрое движение средних MAshort, среднее движение средних MAmid и медленное движение средних MAlong. Из них, параметр MAshort - 9, самый быстрый в реакции, используется для захвата коротких сигналов; параметр MAmid - 50, средняя скорость, используется для подтверждения тенденции; параметр MAlong - 100, самый медленный в реакции, используется для определения направления длинных тенденций.

Конкретная логика торговли стратегии заключается в следующем: когда среднескоростная MMAmid пересекает медленную MAlong, указывающая на то, что формируется повышающая динамика цены на акции, тогда стратегия делает больше; когда среднескоростная MMAshort пересекает среднескоростную MMAmid, показывает, что произошел поворот тенденции короткой линии, тогда стратегия плавно позиционирует.

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

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

Эта стратегия имеет следующие преимущества:

  1. Стратегические параметры оптимизированы, чтобы эффективно соответствовать средне-длинным тенденциям, более высокая вероятность победы
  2. Многоуровневый подвижной средний дизайн фильтрует шум и ложные сигналы
  3. Применимо к различным акциям и цифровым валютам, с лучшей исторической обратной связью
  4. Операционная частота невысока, каждый склад занимает 30% капитала, риск контролируется
  5. Конфигурируемые временные циклы, высокая гибкость диска

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

Также существуют риски:

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

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

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

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

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

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)


//Entry 
bullish = crossover(MAmid, MAlong)

strategy.entry(id="long", long = true, when = bullish and window())

//Exit
bearish = crossunder(MAshort, MAmid)

strategy.close("long", when = bearish and window())

plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)