Прорыв через стратегию пересечения скользящих средних


Дата создания: 2023-12-12 17:43:19 Последнее изменение: 2023-12-12 17:43:19
Копировать: 1 Количество просмотров: 929
1
Подписаться
1621
Подписчики

Прорыв через стратегию пересечения скользящих средних

Обзор

Эта стратегия называется “Стратегия пересечения средней линии с прорывом в прогрессии”. Основная идея заключается в том, чтобы объединить показатели прогрессии и пересечения средней линии для определения переполнения. В частности, эта стратегия использует индикатор Schaff Trend Cycle (STC) и пересечение двух средних линий.

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

Эта стратегия основана на двух технических показателях:

  1. Прогрессивный индикатор: индикатор STC, который определяет направление тренда. STS-индикатор включает в себя индикатор MACD, индикатор Stoch и индикаторную линию STC.

  2. Среднелинейный пересечение: пересечение быстрого простого скользящего среднего ((дифолтный цикл 35) и медленного простого скользящего среднего ((дифолтный цикл 200)). Прохождение медленной линии на скоростной линии является многоголовым сигналом, прохождение медленной линии под скоростной линией является пустым сигналом.

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

  1. Делайте больше сигналов: Сделать больше, когда индикатор STC пробивает 25 линий вверх, и быстрое простое движущееся среднее выше, чем медленное простое движущееся среднее, и цена выше, чем быстрое простое движущееся среднее.

  2. Сигнал для прорыва: STC-индикатор прорывает 75-ую линию вниз, и быстрое простое движущееся среднее ниже медленного простого движущегося среднего, и цена ниже быстрого простого движущегося среднего.

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

Эта стратегия имеет следующие преимущества:

  1. В сочетании с индикатором тренда и индикатором средней линии, торговый сигнал более надежен. STC индикатор определяет направление общей тенденции, двойная средняя линия определяет конкретный вход.

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

  3. Контролируемый риск. STC-индикатор определяет зоны перекупа и перепродажи, избегая преследования завышенного тиража в крайних зонах. Целевой стоп-страх устанавливается в пределах 400 пунктов.

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

Но есть и риски:

  1. В STC может быть ложный прорыв. Необходимо объединить оценку с оценкой ценовой структуры.

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

  3. Только односторонние сделки.

  4. Риск скольжения без обработки валютных гарантийных сделок. Скольжение может быть больше в фиксированном пакете.

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

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

  1. Настройка параметров STC, оптимизация суждений о перекупке и перепродаже.

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

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

  4. Увеличение двусторонней логики транзакций. Уменьшение риска в пространстве.

  5. Добавление логики стоп-лосса. Контроль за единичными потерями.

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

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

Исходный код стратегии
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Shaff Trend Cycle coded by Alex Orekhov (everget)
// Strategy and its additional conditions provided by greenmask
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("STC", shorttitle="STC")

fastLength = input(title="MACD Fast Length", type=input.integer, defval=23)
slowLength = input(title="MACD Slow Length", type=input.integer, defval=50)
cycleLength = input(title="Cycle Length", type=input.integer, defval=10)
d1Length = input(title="1st %D Length", type=input.integer, defval=3)
d2Length = input(title="2nd %D Length", type=input.integer, defval=3)
src = close
highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))
stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc
stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013
stcPlot = plot(stc, title="STC", color=stcColor, transp=0)
upper = 75
lower = 25
transparent = color.new(color.white, 100)
upperLevel = plot(upper, title="Upper", color=color.gray)
hline(50, title="Middle", linestyle=hline.style_dotted)
lowerLevel = plot(lower, title="Lower", color=color.gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent

fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
targetvalue = input(title="Target/stop", type=input.integer, defval=400)

ma1length = input(title="SMA1", type=input.integer, defval=35)
ma2length = input(title="SMA2", type=input.integer, defval=200)
ma1 = ema(close,ma1length)
ma2 = ema(close,ma2length)

bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1
bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1

if (bullbuy)
    strategy.entry("Riposte", strategy.long, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

if (bearsell)
    strategy.entry("Riposte", strategy.short, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

//plotshape(bullbuy,  title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")
//plotshape(bearsell,  title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")