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


Дата создания: 2024-02-02 17:02:18 Последнее изменение: 2024-02-02 17:02:18
Копировать: 0 Количество просмотров: 688
1
Подписаться
1617
Подписчики

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

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

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

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

  • EMA ((Price, Period) - движущаяся средняя основного индекса
  • top = sEMA[disp] *((100 + perAb)/100) - на поезде
  • bott = sEMA[disp] *((100 - perBl)/100) - нижняя полоса

При этом % above и % below, соответственно, контролируют процентные интервалы между верхней и нижней линией движущейся средней по отношению к центральной. Параметр Displacement используется для управления периодическим смещением между верхней и нижней линией движущейся средней по отношению к центральной.

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

  • Если цена закрытия ниже нижнего бота, то появляется сигнал покупки.
  • Если цена закрытия превышает верхнюю топу, то появляется сигнал продажи.

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

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

Основные преимущества этой стратегии:

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

Риски и профилактика

В этой стратегии также есть некоторые риски, в частности:

  1. В случае землетрясения может возникнуть ложный сигнал.
  2. Неправильная настройка параметров может привести к чрезмерной торговле или пропуску сигнала
  3. Неэффективная фильтрация шума рынка может привести к появлению некоторого количества бесполезных сигналов.

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

  1. В сочетании с другими показателями фильтруют сигналы, такие как объем торгов, волатильность и т. д.
  2. Добавление процессов оптимизации параметров для поиска оптимальных комбинаций параметров
  3. Соответствующая корректировка стратегии стоп-лосса, контроль одиночных потерь

Оптимизация

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

  1. Добавление моделей машинного обучения для автоматической оптимизации и настройки параметров
  2. Добавление функций остановки, перемещения, остановки и остановки, чтобы эффективно контролировать риск
  3. Фильтрация сигнала в сочетании с эмоциональными показателями, настроениями инвесторов, улучшение качества сигнала
  4. Увеличение портфеля моделей в сочетании с другими техническими показателями для выявления тенденций и повышения общей точности
  5. Воспроизведение шаблона стратегии, разработка других типов индексных среднелинейных систем, расширение сферы применения

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/08/2020
// 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.
////////////////////////////////////////////////////////////
strategy(title="Moving Average Displaced Envelope Backtest", shorttitle="MA DE", overlay = true)
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")
pos = 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])) 
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 )