123 Стратегия конверта переменной средней стоимости

Автор:Чао Чжан, Дата: 2023-10-20 16:05:43
Тэги:

img

Обзор

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

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

Стратегия состоит из двух частей:

Первая часть - 123 реверсионная стратегия. Его торговые сигналы поступают от осциллятора KDJ. В частности, если цена закрытия ниже предыдущего закрытия в течение двух последовательных торговых дней, а 9-дневная медленная линия K ниже 50, генерируется сигнал покупки; если цена закрытия выше предыдущего закрытия в течение двух последовательных торговых дней, а 9-дневная быстрая линия K выше 50, генерируется сигнал продажи.

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

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

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

  • Комбинирует изменение и тенденцию для повышения рентабельности

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

  • Двойной фильтр уменьшает частоту торговли

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

  • Настраиваемые параметры обеспечивают гибкость

    Регулируемые параметры позволяют пользователям адаптировать стратегию к рыночным условиям и личным предпочтениям для повышения адаптивности.

  • Односторонняя торговля упрощает операции

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

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

  • Перемены в борьбе с постоянными тенденциями

    Стратегия основывается главным образом на переломах прибыли. В течение длительных периодов тренда она может привести к постоянным потерям.

  • Оптимизация параметров сложна

    Неправильные комбинации параметров могут ухудшить производительность.

  • Высокий оборот увеличивает торговые риски

    Частые изменения позиций позволяют зафиксировать небольшую прибыль, но также увеличивают затраты и риски от переоценки.

  • Нет лимита привлечения

    Отсутствие стоп-лосса означает, что нет ограничений на максимальное снижение.

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

  • Добавить стоп-лосс

    Внедряйте движущийся или задерживающийся стоп-лосс для ограничения выводов.

  • Оптимизировать параметры

    Проверка назад и вперед для поиска оптимальных параметров для повышения стабильности.

  • Добавить фильтры сигналов

    Добавление фильтров, таких как MACD и Bollinger Bands, может подтвердить сигналы и еще больше улучшить качество, сократив при этом нежелательные сделки.

  • Уменьшить частоту торговли

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

Заключение

123 Reversal Moving Average Envelope Strategy сочетает в себе сильные стороны реверсионной торговли и следующего тренда для устойчивого повышения эффективности с учетом риска. Дальнейшая оптимизация может улучшить надежность параметров для еще лучших результатов.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/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 Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// 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


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", 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 Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -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 )

Больше