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


Дата создания: 2023-10-20 16:05:43 Последнее изменение: 2023-10-20 16:05:43
Копировать: 0 Количество просмотров: 766
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

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

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

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

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

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

  • Повышение вероятности получения прибыли в сочетании с реверсией и тенденцией

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

  • Двойная фильтрация снижает частоту транзакций

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

  • parametrizable parameters предоставляет гибкость для стратегии

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

  • Односторонние сделки упрощают работу

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

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

  • Ретро-торговля - это сложный способ отследить тенденции.

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

  • Трудности оптимизации параметров

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

  • Высокая частота смены позиций увеличивает риски

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

  • Максимальный вывод не ограничен

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

Направление оптимизации

  • Увеличение стратегии по удержанию

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

  • Оптимизация параметров

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

  • В сочетании с другими показателями фильтрует сигналы

Добавление таких показателей, как MACD, Brin Belt, для проверки торговых сигналов, может еще больше повысить качество сигналов и уменьшить количество недействительных сделок.

  • Снижение частоты торгов

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

Подвести итог

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

Исходный код стратегии
/*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 )