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

Автор:Чао Чжан, Дата: 2023-10-17 14:38:55
Тэги:

img

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

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

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

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

Конкретные шаги:

  1. Расчет 60-дневной простой скользящей средней nma и 60-дневной взвешенной скользящей средней n2ma

  2. Вычислить пятидневную простую скользящую среднюю nma1 и пятидневную взвешенную скользящую среднюю n2ma1

  3. Сравните n2ma1 и nma1: если n2ma1 превышает nma1, открыть длинные позиции; если n2ma1 превышает nma1, открыть короткие позиции

  4. Сравните n2ma и nma: если n2ma превышает nma и открыта длинная позиция, продолжайте держать длинную; если n2ma превышает nma и открыта короткая позиция, продолжайте держать короткую.

  5. Закрыть позиции, когда цена превышает стоп-лосс или достигает уровня take profit

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

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

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

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

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

  2. Добавить другие фильтры технических индикаторов для предотвращения ложных прорывов

  3. Добавление стоп-лосса и прибыли для контроля риска одной сделки

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

  5. Динамическая корректировка размеров позиций для адаптации к изменяющейся волатильности рынка

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


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

//@version=2
//                   //////////////// Attempt to Reduced ReDraw version /////////////////////
//
//                         Microcana.com strategy by pilotgsms - version 4.20b <<<< Edited by Seaside420 >>>> special thanks to 55cosmicpineapple
//                            Hull_MA_cross added to script
strategy("M&H_v420b", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
dd = input(defval=1, title="Post Signal Bar Delay", type=float, step=1)
df = input(defval=5, title="Close Position Bar Delay", type=float, step=1)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
openlong=prediction[dd] and n1>n2 and strategy.opentrades<1
if (openlong)
    strategy.entry("Long", strategy.long)
openshort=not prediction[dd] and n2>n1 and strategy.opentrades<1
if (openshort)
    strategy.entry("Short", strategy.short)
closeshort=prediction and close<low[df]
if (closeshort)
    strategy.close("Short")
closelong=not prediction and close>high[df]  
if (closelong)
    strategy.close("Long")

Больше