OPEN-SOURCE SCRIPT

Advanced Buy/Sell Signals with Sessions 2025 Kravchenko

Actualizado
Наданий вами скрипт — це торгова стратегія, реалізована в Pine Script, яка використовується для створення сигналів купівлі та продажу на основі комбінації різних технічних індикаторів. Ось розбивка компонентів: ### Ключові компоненти: 1. **RSI (індекс відносної сили)**: використовується для визначення умов перекупленості або перепроданості на ринку. - **Умова**: стратегія шукає RSI нижче 30 (перепроданість) для сигналів купівлі та RSI вище 70 (перекупленість) для сигналів продажу. 2.

Notas de prensa
//version=5
indicator("Advanced Buy/Sell Signals with Sessions", overlay=true)

// Input parameters
lengthRSI = input.int(14, title="RSI Length")
lengthBB = input.int(20, title="Bollinger Bands Length")
multBB = input.float(2.0, title="Bollinger Bands Multiplier")
volMultiplier = input.float(1.5, title="Volume Multiplier")
lengthEMA = input.int(50, title="EMA Length")
lengthEMA72 = input.int(72, title="EMA 72 Length")
lengthEMA89 = input.int(89, title="EMA 89 Length")
lengthATR = input.int(14, title="ATR Length")
upperTF = input.timeframe("D", title="Higher Timeframe")
sensitivity = input.float(1.0, title="Signal Sensitivity (Higher = Stricter)", minval=0.5, maxval=2.0)
arrowSize = input.string("Normal", title="Arrow Size", options=["Small", "Normal", "Large"])

// Calculate RSI
rsi = ta.rsi(close, lengthRSI)

// Calculate Bollinger Bands
basis = ta.sma(close, lengthBB)
upperBB = basis + multBB * ta.stdev(close, lengthBB)
lowerBB = basis - multBB * ta.stdev(close, lengthBB)

// Calculate volume threshold
volAvg = ta.sma(volume, lengthBB)
volHigh = volAvg * volMultiplier

// Calculate EMA and ATR
ema = ta.ema(close, lengthEMA)
ema72 = ta.ema(close, lengthEMA72)
ema89 = ta.ema(close, lengthEMA89)
atr = ta.atr(lengthATR)

// Higher timeframe EMA
htfEma = request.security(syminfo.tickerid, upperTF, ta.ema(close, lengthEMA))

// Smart Money Concepts: Order Blocks
isBullishOrderBlock = (high == ta.highest(high, lengthBB)) and close > open
isBearishOrderBlock = (low == ta.lowest(low, lengthBB)) and close < open

bullishOrderBlockLevel = ta.valuewhen(isBullishOrderBlock, close, 0)
bearishOrderBlockLevel = ta.valuewhen(isBearishOrderBlock, close, 0)
orderBlockLevel = isBearishOrderBlock ? bearishOrderBlockLevel : bullishOrderBlockLevel

// Session filters
var bool inSession = na
inSession := time("0200-1000:1234567") or time("0800-1000:1234567") or time("1000-1500:1234567") or time("1430-2300:1234567")

// Additional Filters: MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Entry conditions with all filters and sensitivity adjustments
longCondition = (rsi < 30 * sensitivity and close < lowerBB and volume > volHigh and close > ema and close > htfEma and close > ema72 and close > ema89 and macdLine > signalLine and inSession and close > orderBlockLevel)
shortCondition = (rsi > 70 / sensitivity and close > upperBB and volume > volHigh and close < ema and close < htfEma and close < ema72 and close < ema89 and macdLine < signalLine and inSession and close < orderBlockLevel)

// Map arrow size
arrowSizeMap = arrowSize == "Small" ? size.small : arrowSize == "Normal" ? size.normal : size.large

// Plot entry signals
if (longCondition)
label.new(bar_index, low, "▲", style=label.style_label_up, color=color.green, textcolor=color.white, size=arrowSizeMap)
if (shortCondition)
label.new(bar_index, high, "▼", style=label.style_label_down, color=color.red, textcolor=color.white, size=arrowSizeMap)
Breadth IndicatorsCentered OscillatorsMoving Averages

Script de código abierto

Siguiendo fielmente el espíritu de TradingView, el autor de este script lo ha publicado en código abierto, permitiendo que otros traders puedan entenderlo y verificarlo. ¡Olé por el autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la reutilización de este código en la publicación se rige por las Normas internas. Puede añadir este script a sus favoritos y usarlo en un gráfico.

¿Quiere utilizar este script en un gráfico?

Exención de responsabilidad