Комплексная стратегия с несколькими скользящими средними

Автор:Чао Чжан, Дата: 2023-12-22 11:56:42
Тэги:

img

Обзор

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

Принципы

Ядром этой стратегии является вычисление и отслеживание нескольких скользящих средних за разные периоды, в частности 10-дневных, 20-дневных, 30-дневных до 100-дневных скользящих средних. Эти скользящие средние устанавливаются как средняя цена закрытия за последние 10, 20, 30 дней и т. Д. Например, 20-дневная скользящая средняя - это средняя цена закрытия за последние 20 дней.

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

Преимущества

  1. Предоставляет информацию по нескольким временным шкалам, адаптируемую к различным рыночным условиям

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

  3. Ясные правила торговли, которые легко понять и применить

  4. Высоко настраиваемый для удовлетворения персонализированных требований

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

Риски и решения

  1. Несколько скользящих средних могут пересекаться на рыночных диапазонах, что приводит к неясному сигналу.

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

  3. Сигналы отстают, не способные зафиксировать изменение тренда на ранней стадии.

  4. Количество сделок может быть низким для стабильного дохода.

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

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

  2. Сочетание других индикаторов: добавление таких индикаторов, как MACD и RSI, может улучшить устойчивость стратегии.

  3. Совместная стратегия: Совместная с другими стратегиями, такими как системы прорыва и отслеживание тенденций, может повысить устойчивость.

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

Заключение

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


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)

// Function to calculate moving average
get_ma(src, length) =>
    ta.sma(src, length)

// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100

// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)

// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10

// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))

buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))

buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))

buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))

buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))

buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))

buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))

buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))

buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))

// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
    strategy.entry("Buy", strategy.long)

// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
    strategy.close("Buy")

// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
    strategy.close("Sell")

// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)


Больше