
Стратегия включает в себя множество технических показателей и торговых концепций, которые могут быть использованы для автоматической генерации сигналов покупки и продажи. Основная особенность заключается в том, что в сочетании с индикаторами анализа тенденций можно оптимизировать стоп-лосс, а также использовать пересечение равномерных линий для создания торговых сигналов.
Настраиваемый UTSTC-индикатор: реализуется адаптивный индикатор для отслеживания стоп-лосса на основе средней реальной amplitude, который может быть скорректирован в зависимости от волатильности рынка.
STC-индикатор: разница между быстрыми простыми и медленными скользящими средними значениями, используемая для определения направления рыночных тенденций и потенциальных переломов.
Простые скользящие средние ((SMA) и индексированные скользящие средние ((EMA): вычисляют скользящие средние за разные периоды и рисуют их, предоставляя дополнительную информацию о тенденциях.
Сигнал покупки: возникает, когда цена закрытия пробивает показатель UTSTC, а показатель STC находится в состоянии позитивного тренда.
Сигнал продажи: возникает, когда цена закрытия пробивает показатель UTSTC ниже и показатель STC находится в состоянии падения.
Интеграция нескольких показателей для определения рыночных тенденций повышает точность сигналов.
Показатель UTSTC автоматически корректирует пределы остановки убытков в зависимости от реальной amplitude, что позволяет эффективно контролировать каждый убыток.
Простой и эффективный торговый сигнал с использованием равнолинейного пересечения.
Различные комбинации параметров настроек могут быть адаптированы к более широким рыночным условиям.
Показатели трендовых оценок, такие как STC, отстают и могут упустить возможность краткосрочного перехода.
Сигнал с пересечением равномерной линии может создавать ложный сигнал.
Неправильное сочетание может привести к снижению прибыли или увеличению убытков.
Слишком большое предел убытков может увеличить риск потери, слишком маленький может быть преждевременно.
Тестирование параметров показателя STC с различными длинами цикла для поиска наименьшего влияния на стратегию.
Попробуйте сочетать это с другими индикаторами, например, KDJ, MACD и т.д.
По результатам обратного измерения корректируйте параметры остановочных потерь, чтобы найти оптимальную комбинацию параметров.
Оценка различных временных установок для поиска оптимального периода хранения позиций.
Эта стратегия объединяет несколько модулей для определения тенденций, автоматического управления потерями и определения торговых сигналов, чтобы сформировать более всеобъемлющую количественную торговую программу. С помощью оптимизации параметров и расширения функций ожидается стабильная прибыль. Однако ни одна стратегия не может полностью избежать потерь, необходимо тщательно проверять эффективность и контролировать риск.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("OB+LQ+UTSTC+SMA+EMA-NORA-MIP21-Jashore-Bangladesh-OneMinuteTF", shorttitle="OB+LS+UTSTC-MIP21-Jashore-Bangladesh-OneMinuteTF", overlay=true)
// Order Block + Liquidity Swings [NORA] Settings
pivot_length = input(14, title="Pivot Lookback")
bull_ext_last = input(3, title="Bullish OB Extension")
bear_ext_last = input(3, title="Bearish OB Extension")
swing_length = input(5, title="Swing Length")
area = input("Wick Extremity", title="Swing Area", options=["Wick Extremity", "Full Range"])
min_profit = input(0.5, title="Minimum Profit Target")
max_loss = input(0.5, title="Maximum Loss Stop")
// Variables
var float bull_ob_price = na
var float bear_ob_price = na
var float swing_high = na
var float swing_low = na
// Calculate Order Block Prices
var float low_lowest = na
var float high_highest = na
if bar_index >= pivot_length
low_lowest := lowest(low, pivot_length)
high_highest := highest(high, pivot_length)
bull_ob_price := low_lowest
bear_ob_price := high_highest
// Calculate Swing High/Low Prices
var float low_lowest_swing = na
var float high_highest_swing = na
if area == "Wick Extremity"
low_lowest_swing := lowest(low, swing_length)
high_highest_swing := highest(high, swing_length)
else
low_lowest_swing := lowest(high - low, swing_length)
high_highest_swing := highest(high - low, swing_length)
swing_low := low_lowest_swing
swing_high := high_highest_swing
// Trading Logic for Order Block + Liquidity Swings
buy_liquidity = crossover(close, bull_ob_price) and close > swing_low
sell_liquidity = crossunder(close, bear_ob_price) and close < swing_high
// Plot Buy/Sell Signals for Order Block + Liquidity Swings
plotshape(series=buy_liquidity, style=shape.labelup, location=location.belowbar, color=color.rgb(39, 166, 175), size=size.small, title="Bullish LQ")
plotshape(series=sell_liquidity, style=shape.labeldown, location=location.abovebar, color=color.rgb(248, 95, 215), size=size.small, title="Bearish LQ")
// UTSTC-SMA-EMA-NORA-New Settings
keyvalue = input(3, title="UT Bot Key Value", step=0.5)
atrperiod = input(10, title="UT Bot ATR Period")
src = close
xATR = atr(atrperiod)
nLoss = keyvalue * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color=xcolor, title="UT Bot Trailing Stop")
// STC Settings
stc_length = input(12, title="STC Length")
fastLength = input(26, title="STC Fast Length")
slowLength = input(50, title="STC Slow Length")
fastMA = ema(close, fastLength)
slowMA = ema(close, slowLength)
STC = fastMA - slowMA
STCColor = STC > STC[1] ? color.green : color.red
plot(STC, color=STCColor, title="STC")
// Add SMAs
sma21 = sma(close, 21)
sma44 = sma(close, 44)
plot(sma21, color=color.blue, title="SMA 21")
plot(sma44, color=color.orange, title="SMA 44")
// Add EMA
ema5 = ema(close, 5)
plot(ema5, color=color.yellow, title="EMA 5")
// Combined Strategy
buySignal = crossover(src, xATRTrailingStop) and STC < 25 and STCColor == color.green
sellSignal = crossunder(src, xATRTrailingStop) and STC > 75 and STCColor == color.red
// Plot Buy and Sell signals as triangles
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)