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