
Эта стратегия называется “Стратегия пересечения средней линии с прорывом в прогрессии”. Основная идея заключается в том, чтобы объединить показатели прогрессии и пересечения средней линии для определения переполнения. В частности, эта стратегия использует индикатор Schaff Trend Cycle (STC) и пересечение двух средних линий.
Эта стратегия основана на двух технических показателях:
Прогрессивный индикатор: индикатор STC, который определяет направление тренда. STS-индикатор включает в себя индикатор MACD, индикатор Stoch и индикаторную линию STC.
Среднелинейный пересечение: пересечение быстрого простого скользящего среднего ((дифолтный цикл 35) и медленного простого скользящего среднего ((дифолтный цикл 200)). Прохождение медленной линии на скоростной линии является многоголовым сигналом, прохождение медленной линии под скоростной линией является пустым сигналом.
Логика определения торговых сигналов в этой стратегии выглядит следующим образом:
Делайте больше сигналов: Сделать больше, когда индикатор STC пробивает 25 линий вверх, и быстрое простое движущееся среднее выше, чем медленное простое движущееся среднее, и цена выше, чем быстрое простое движущееся среднее.
Сигнал для прорыва: STC-индикатор прорывает 75-ую линию вниз, и быстрое простое движущееся среднее ниже медленного простого движущегося среднего, и цена ниже быстрого простого движущегося среднего.
Эта стратегия имеет следующие преимущества:
В сочетании с индикатором тренда и индикатором средней линии, торговый сигнал более надежен. STC индикатор определяет направление общей тенденции, двойная средняя линия определяет конкретный вход.
Параметры средней линии регулируемы. Параметры средней линии могут быть скорректированы в соответствии с рынком, оптимизируя стратегию.
Контролируемый риск. STC-индикатор определяет зоны перекупа и перепродажи, избегая преследования завышенного тиража в крайних зонах. Целевой стоп-страх устанавливается в пределах 400 пунктов.
Но есть и риски:
В STC может быть ложный прорыв. Необходимо объединить оценку с оценкой ценовой структуры.
Пересечение средних линий может привести к появлению большего количества ложных сигналов. Необходимо скорректировать параметры средних линий.
Только односторонние сделки.
Риск скольжения без обработки валютных гарантийных сделок. Скольжение может быть больше в фиксированном пакете.
Эта стратегия может быть оптимизирована в следующих аспектах:
Настройка параметров STC, оптимизация суждений о перекупке и перепродаже.
Оптимизация средней цикличности и повышение надежности перекрестного сигнала.
Добавление других фильтрующих показателей, фильтрация ложных прорывов. Например, Брин-пояса.
Увеличение двусторонней логики транзакций. Уменьшение риска в пространстве.
Добавление логики стоп-лосса. Контроль за единичными потерями.
В этой стратегии используются обобщённые индикаторы прогресса и равнолинейного перекрестного индикатора, чтобы определить направление тенденции и конкретные точки входа. При обеспечении определенного контроля риска можно получить лучшую прибыль. Модель стратегии проста, ясна и понятна, а также позволяет регулировать параметры и оптимизировать функции в зависимости от различных рынков.
/*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")