В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2021-09-21 16:40:01
Тэги:

Обзор

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

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

Стратегия основывается в основном на показателях sma (близкий, 14) и sma (близкий, 28).

Сначала определите короткие и длинные скользящие средние:

short_ma = sma(close, 14)  
long_ma = sma(close, 28)

Затем определите вход и выход на основе золотого креста и креста смерти:

longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma) 

Пройти длинный курс, когда короткий MA пересекается над длинным MA:

strategy.entry("Buy", strategy.long, when = longCondition)

Закрыть позицию, когда короткий MA пересекает длинный MA:

strategy.close_all(when = shortCondition) 

Логика проста и ясна, используя перекрестки двойных МА для определения входов и выходов.

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

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

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

  • Чувствительный к колебаниям рынка, может привести к нескольким проигрышам
  • Отставание по характеру МА может не достичь точек переворота цен
  • Склонны к тому, чтобы оказаться в ловушке вблизи пунктов пересечения МА
  • Необходимо оптимизировать периоды MA, разные периоды могут привести к разным результатам
  • Невозможность быстро сократить убытки при резких изменениях тренда

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

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

  1. Оптимизировать периоды MA для поиска наилучшей комбинации

Испытывать различные короткие и длинные периоды MA, такие как (5, 10), (10, 20), (20, 60) и т.д., чтобы найти оптимальную комбинацию.

  1. Добавьте фильтры, чтобы избежать ложных сигналов

Добавьте такие фильтры, как объем торговли, разрыв в ценах и т.д. вблизи перекрестков MA, чтобы избежать чрезмерной торговли на различных рынках.

  1. Включить стоп-лосс

Установите цену стоп-лосса или используйте MA как линию стоп-лосса для контроля одной сделки.

  1. Сочетание с другими показателями

Добавьте дополнительные индикаторы, такие как MACD, KDJ и т. Д., Чтобы улучшить эффективность стратегии.

  1. Оптимизировать точки входа

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

Резюме

Стратегия двойного MA проста в использовании для новичков. Но она чувствительна к колебаниям рынка и имеет риск потерь. Мы можем улучшить ее, оптимизируя параметры, добавляя фильтры, включая стоп-лосс, комбинируя другие индикаторы и т. Д. Она может хорошо работать в сильных тенденциях, но должна использоваться с осторожностью или правильным стоп-лосом на рыночных диапазонах.
[/trans]


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=2
// strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25)

minGainPercent = input(0.6)
gainMultiplier = minGainPercent * 0.01 + 1


longCondition = crossover(sma(close, 14), sma(close, 28))
shortCondition = crossunder(sma(close, 14), sma(close, 28))


avg_protection = input(1)
gain_protection = input(1)


strategy.entry("Buy", strategy.long, when = longCondition    and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition  and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

Больше