В процессе загрузки ресурсов... загрузка...

Двойная движущаяся средняя обратная и тройная нижняя комбинация флэш-трейдинга

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

img

Обзор

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

Принципы стратегии

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

  1. Комбинация 2-дневных и 20-дневных скользящих средних. Сигналы покупки и продажи генерируются, когда 2-дневная скользящая средняя отклоняется от 20-дневной скользящей средней.

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

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

В коде сначала вычисляются 2-дневные и 20-дневные скользящие средние.

При обнаружении тройного нижнего флеш-паттерна сигнал направления шаблона устанавливается на 1 или -1. Прочитайте сигнал шаблона предыдущего дня, объедините его с текущим движущимся средним сигналом и сгенерируйте окончательный входный сигнал.

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

Преимущества

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

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

  3. 20-дневная скользящая средняя отслеживает средне- и долгосрочные тенденции, а 2-дневная скользящая средняя фиксирует точки входа после краткосрочных корректировок.

  4. Стратегия не чувствительна к параметрам и легко внедряется и оптимизируется.

Риски

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

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

  3. Испытания и оптимизация необходимы для различных видов торговли, и некоторые параметры могут потребоваться корректировать.

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

Оптимизация

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

  2. Ввести другие вспомогательные показатели, такие как объем, полосы Боллинджера и т. д., для проверки с использованием нескольких индикаторов.

  3. Добавить модуль стоп-лосса для контроля выводов и рисков.

  4. Оптимизируйте время входа, чтобы избежать проблем раньше или позже.

  5. Оптимизация параметров для конкретных сортов для улучшения адаптивности.

Резюме

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


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length ) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
	pos

BarR()=>
    pos = 0.0
    pos :=	iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
    	     iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1  = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2  = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc  = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader  = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)

StartTrade = true
prePos3Bar = BarR()

posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
	   iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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 )

Больше