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


Дата создания: 2023-12-20 13:50:47 Последнее изменение: 2023-12-20 13:50:47
Копировать: 22 Количество просмотров: 620
1
Подписаться
1621
Подписчики

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

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

// © Julien_Eche

//@version=5
strategy("Smart MA Strategy", shorttitle="Smart MA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=20)

// Input parameters
base_ma_length = input.int(50, title="Base MA Length")
ma_type = input.string("SMA", title="MA Type", options=["SMA", "WMA", "EMA"])
color_choice = input.string("Composite", title="Color Option", options=["Crossover", "Direction", "Composite"])
fast_length = input.int(10, title="Fast MA Length", group="For Crossover Color Option")
slow_length = input.int(30, title="Slow MA Length", group="For Crossover Color Option")

// Start and end date inputs
start_year = input.int(1975, title="Start Year", group="Date Range")
start_month = input.int(1, title="Start Month", group="Date Range")
start_day = input.int(1, title="Start Day", group="Date Range")
end_year = input.int(2099, title="End Year", group="Date Range")
end_month = input.int(12, title="End Month", group="Date Range")
end_day = input.int(31, title="End Day", group="Date Range")

// Calculate the selected MAs
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// Calculate the base MA with the specified length
base_ma = ta.sma(close, base_ma_length)

// Determine if the base MA is increasing or decreasing
base_ma_increasing = base_ma > base_ma[1]

// Define the color for the base MA based on the selected option
base_ma_color =    color_choice == "Direction" ? (base_ma_increasing ? color.teal : color.red) :    color_choice == "Crossover" ? (fast_ma > slow_ma ? color.teal : color.red) :    color_choice == "Composite" ? (base_ma_increasing and fast_ma > slow_ma ? color.teal : not base_ma_increasing and fast_ma < slow_ma ? color.red : color.gray) :    color.gray

// Plot the base MA with the specified color and linewidth
plot(base_ma, title="Base MA", color=base_ma_color, style=plot.style_line, linewidth=2)

// Define the start and end timestamps
start_date = timestamp(start_year, start_month, start_day, 0, 0)
end_date = timestamp(end_year, end_month, end_day, 23, 59)

// Filter strategy signals based on date
in_date_range = time >= start_date and time <= end_date

// Strategy conditions for each option
if (color_choice == "Composite" and in_date_range)
    if (base_ma_increasing and fast_ma > slow_ma)
        strategy.entry("Buy", strategy.long)
    if (not base_ma_increasing and fast_ma < slow_ma)
        strategy.close("Buy")

if (color_choice == "Crossover" and in_date_range)
    if (fast_ma > slow_ma)
        strategy.entry("Buy", strategy.long)
    if (fast_ma < slow_ma)
        strategy.close("Buy")

if (color_choice == "Direction" and in_date_range)
    if (base_ma_increasing)
        strategy.entry("Buy", strategy.long)
    if (not base_ma_increasing)
        strategy.close("Buy")