//version=5
indicator("Crypto Scalping Pro", overlay=true)

// === НАСТРОЙКИ ===
var bool showTPLevels = input.bool(true, "Показывать уровни TP")
tp1Multiplier = input.float(0.5, "TP1 множитель (50%)")
tp2Multiplier = input.float(1.0, "TP2 множитель (100%)")

// === БАЗОВЫЕ ИНДИКАТОРЫ ===
// Быстрые EMA для 5м таймфрейма
fastEMA = ta.ema(close, 8)
mediumEMA = ta.ema(close, 13)
slowEMA = ta.ema(close, 21)

// Импульсный RSI
rsiValue = ta.rsi(close, 8) // Уменьшенный период для быстрой реакции
rsiMA = ta.sma(rsiValue, 5)
rsiMomentum = rsiValue - rsiMA

// Объем и волатильность
volumeMA = ta.sma(volume, 10)
volumeChange = volume / volumeMA
atr = ta.atr(14)
normalizedATR = atr / close * 100

// Специальный фильтр для крипторынка (учитывает повышенную волатильность)
isVolatilityNormal = normalizedATR < ta.sma(normalizedATR, 50) * 1.5

// === УСЛОВИЯ ВХОДА ===
// Сильный тренд
trendStrength = (fastEMA - slowEMA) / slowEMA * 100

// Длинная позиция
longCondition = fastEMA > mediumEMA and mediumEMA > slowEMA and rsiMomentum > 0 and volumeChange > 1.2 and isVolatilityNormal and close > fastEMA and trendStrength > 0.1

// Короткая позиция
shortCondition = fastEMA < mediumEMA and mediumEMA < slowEMA and rsiMomentum < 0 and volumeChange > 1.2 and isVolatilityNormal and close < fastEMA and trendStrength < -0.1

// === РАСЧЕТ УРОВНЕЙ ===
// Стоп-лосс (динамический, основан на ATR)
stopSize = atr * 1.2 // Немного больше ATR для крипто

// Уровни тейк-профита
var float tp1Long = na
var float tp2Long = na
var float tp1Short = na
var float tp2Short = na

// Присваивание значений для уровней TP
if longCondition
tp1Long := close + (stopSize * tp1Multiplier)
tp2Long := close + (stopSize * tp2Multiplier)

if shortCondition
tp1Short := close - (stopSize * tp1Multiplier)
tp2Short := close - (stopSize * tp2Multiplier)

// === ВИЗУАЛИЗАЦИЯ ===
// Переменные для визуализации
longSL = longCondition ? close - stopSize : na
shortSL = shortCondition ? close + stopSize : na
tp1LongPlot = showTPLevels and longCondition ? tp1Long : na
tp2LongPlot = showTPLevels and longCondition ? tp2Long : na
tp1ShortPlot = showTPLevels and shortCondition ? tp1Short : na
tp2ShortPlot = showTPLevels and shortCondition ? tp2Short : na

// EMAs
plot(fastEMA, "Fast EMA", color=color.blue, linewidth=1)
plot(mediumEMA, "Medium EMA", color=color.yellow, linewidth=1)
plot(slowEMA, "Slow EMA", color=color.red, linewidth=1)

// Сигналы
plotshape(longCondition, "Long", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(shortCondition, "Short", shape.triangledown, location.abovebar, color.red, size=size.small)

// Стоп-лоссы и тейки
plot(longSL, "Long SL", color=color.red, style=plot.style_circles)
plot(shortSL, "Short SL", color=color.red, style=plot.style_circles)

plot(tp1LongPlot, "TP1 Long", color=color.green, style=plot.style_circles)
plot(tp2LongPlot, "TP2 Long", color=color.green, style=plot.style_circles)
plot(tp1ShortPlot, "TP1 Short", color=color.red, style=plot.style_circles)
plot(tp2ShortPlot, "TP2 Short", color=color.red, style=plot.style_circles)

// === АЛЕРТЫ ===
alertcondition(longCondition, "Long Signal", "LONG - Вход на повышение!")
alertcondition(shortCondition, "Short Signal", "SHORT - Вход на понижение!")
forecastingPivot points and levelsWave Analysis

نص برمجي مفتوح المصدر

قام مؤلف هذا النص البرمجي بنشره وجعله مفتوح المصدر، بحيث يمكن للمتداولين فهمه والتحقق منه، وهو الأمر الذي يدخل ضمن قيم TradingView. تحياتنا للمؤلف! يمكنك استخدامه مجانًا، ولكن إعادة استخدام هذا الرمز في المنشور يخضع لقواعد‎‎قوانين الموقع. يمكنك جعله مفضلاً لاستخدامه على الرسم البياني.

هل تريد استخدام هذا النص البرمجي على الرسم البياني؟

إخلاء المسؤولية