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

Автор:Чао Чжан, Дата: 2023-10-17 16:46:57
Тэги:

img

Обзор

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

Логика стратегии

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

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

Таким образом, перекрестный и перекрестный переход между быстрыми и медленными МА фиксирует тенденционные переходы для низкорисковой тенденции после торговли.

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

  • Использование скользящих средних для определения тренда фильтрует шум рынка и определяет направление тренда
  • Быстрый MA улавливает изменения тренда быстрее, в то время как медленный MA фильтрует ложные сигналы
  • Использование кроссовера для покупки и кроссендера для продажи избегает погони за вершинами и продажи дна
  • Простая и понятная логика торговли, легкая для понимания и реализации

Риски

  • Движущиеся средние имеют задержку и могут пропустить лучшие точки входа/выхода для переходов тренда
  • Фиксированные длины MA не могут адаптироваться к различным рыночным циклам
  • Стратегии двойного MA, как правило, генерируют чрезмерные торговые сигналы и перегрузку.
  • Использование только МА для определения сделок подвержено внезапным событиям и потерям

Риски можно управлять путем настройки параметров, добавления фильтров, остановки потери / получения прибыли.

Направления к улучшению

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

Резюме

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


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-20 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profitable Crypto Strategy", shorttitle="Profit Strategy", overlay=true)

// Define strategy parameters
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
stopLossPercent = input.float(1.0, title="Stop Loss %", step=0.1)
takeProfitPercent = input.float(1.0, title="Take Profit %", step=0.1)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Entry condition: Buy when fast MA crosses above slow MA
longCondition = ta.crossover(fastMA, slowMA)
// Exit condition: Sell when fast MA crosses below slow MA
shortCondition = ta.crossunder(fastMA, slowMA)

// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.orange, title="Slow MA")

// Strategy entry and exit logic
var stopLossPrice = 0.0
var takeProfitPrice = 0.0

if (longCondition)
    stopLossPrice := close * (1.0 - stopLossPercent / 100)
    takeProfitPrice := close * (1.0 + takeProfitPercent / 100)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")

// Set stop loss and take profit for open positions
strategy.exit("Stop Loss/Profit", stop=stopLossPrice, limit=takeProfitPrice)


Больше