Стратегия двойного перемещения средней цены

Автор:Чао Чжан, Дата: 2023-12-07 18:15:12
Тэги:

img

Обзор

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

Принципы

Стратегия двойного переменного ценового отклонения с движущейся средней состоит из двух подстратегий.

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

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

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

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

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

  1. Механизм двойной фильтрации сигналов может эффективно уменьшить количество недействительных сигналов и повысить качество каждой сделки.

  2. 123 модели суждения относится к краткосрочной стратегии обратного движения, в то время как перемещенный канал прорыв относится к средне- и долгосрочной стратегии отслеживания тренда.

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

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

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

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

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

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

  2. 123 точки покупки и продажи не могут полностью отфильтровать все ложные прорывы.

  3. В случае резких изменений на рынке неправильное установление стоп-лосса может привести к большим потерям.

  4. Логика условий ifft сложна. Неправильные параметры подвержены логическим ошибкам, что приводит к недействительным суждениям о сигнале.

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

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

Есть еще место для оптимизации в стратегии перемены цены двойной скользящей средней:

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

  2. Каналы соответствующей ширины могут быть выбраны в соответствии с характеристиками конкретных данных о продукте.

  3. Динамические стоп-потери могут быть объединены для контроля максимального коэффициента потери.

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

  5. Фильтры, основанные на объеме торговли или волатильности, могут быть добавлены, чтобы избежать чрезмерно частых входов и выходов в бурных рыночных условиях.

Заключение

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


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/03/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Moving Average Displaced Envelope. These envelopes are calculated 
// by multiplying percentage factors with their displaced expotential 
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and 
// quality of the signals. If a previous high goes above the envelope 
// a sell signal is generated. Conversely, if the previous low goes below 
// the envelope a buy signal is given.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


MADE(Price,Period, perAb, perBl, disp) =>
    pos = 0.0
    sEMA = ema(Price, Period)
    top = sEMA[disp] * ((100 + perAb)/100)
    bott = sEMA[disp]* ((100 - perBl)/100)
    pos := iff(close < bott , 1,
    	     iff(close > top, -1, pos[1])) 
    pos

strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- MA Displaced Envelope ----")
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMADE = MADE(Price,Period, perAb, perBl, disp)
pos = iff(posReversal123 == 1 and posMADE == 1 , 1,
	   iff(posReversal123 == -1 and posMADE == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Больше