//version=5
indicator("IQ Option Signals (1m) — Multi-Indicator", overlay=true)
// -------------------- Inputs --------------------
use_hl2 = input.bool(true, "Use HL2 for calculations?")
// EMA
ema_fast_len = input.int(5, "EMA Fast")
ema_slow_len = input.int(20, "EMA Slow")
// RSI
rsi_len = input.int(14, "RSI Length")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
// Bollinger Bands
bb_len = input.int(20)
bb_dev = input.float(2.0)
// MACD
macd_fast = input.int(12)
macd_slow = input.int(26)
macd_signal = input.int(9)
// Min signals to confirm
min_signals = input.int(2, "Min confirming signals")
// -------------------- Price --------------------
price = use_hl2 ? hl2 : close
// -------------------- Indicators --------------------
ema_fast = ta.ema(price, ema_fast_len)
ema_slow = ta.ema(price, ema_slow_len)
rsi = ta.rsi(price, rsi_len)
basis = ta.sma(price, bb_len)
dev = bb_dev * ta.stdev(price, bb_len)
bb_upper = basis + dev
bb_lower = basis - dev
[macdLine, signalLine, _] = ta.macd(price, macd_fast, macd_slow, macd_signal)
macd_buy = ta.crossover(macdLine, signalLine)
macd_sell = ta.crossunder(macdLine, signalLine)
// -------------------- Build signals --------------------
bull_signals = 0
bear_signals = 0
// EMA trend
if ema_fast > ema_slow
bull_signals += 1
else
bear_signals += 1
// RSI
if rsi < rsi_oversold
bull_signals += 1
if rsi > rsi_overbought
bear_signals += 1
// Bollinger breakout
if close > bb_upper
bull_signals += 1
if close < bb_lower
bear_signals += 1
// MACD
if macd_buy
bull_signals += 1
if macd_sell
bear_signals += 1
// -------------------- Decide signal --------------------
show_buy = bull_signals >= min_signals and bull_signals > bear_signals
show_sell = bear_signals >= min_signals and bear_signals > bull_signals
getRiskText(count) =>
count >= 3 ? "เสี่ยง: ต่ำ (Low Risk)" :
count == 2 ? "เสี่ยง: กลาง (Medium Risk)" :
"เสี่ยง: สูง (High Risk)"
// -------------------- Plot --------------------
plot(ema_fast, color=color.new(color.green, 0), title="EMA Fast")
plot(ema_slow, color=color.new(color.red, 0), title="EMA Slow")
plot(bb_upper, color=color.new(color.orange, 50), title="BB Upper")
plot(bb_lower, color=color.new(color.blue, 50), title="BB Lower")
// Arrows
plotshape(show_buy, title="Buy Arrow", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.normal, text="CALL")
plotshape(show_sell, title="Sell Arrow", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.normal, text="PUT")
// Labels with risk
if show_buy
label.new(bar_index, low - tr*0.5, text=getRiskText(bull_signals) + "\nCall 1m", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white)
if show_sell
label.new(bar_index, high + tr*0.5, text=getRiskText(bear_signals) + "\nPut 1m", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white)
// -------------------- Optional: Signal Table --------------------
var table t = table.new(position.top_right, 1, 3)
if barstate.islast
table.cell(t, 0, 0, "Bull signals: " + str.tostring(bull_signals), text_color=color.green)
table.cell(t, 0, 1, "Bear signals: " + str.tostring(bear_signals), text_color=color.red)
table.cell(t, 0, 2, "Risk: " + (show_buy ? getRiskText(bull_signals) : show_sell ? getRiskText(bear_signals) : "N/A"))
indicator("IQ Option Signals (1m) — Multi-Indicator", overlay=true)
// -------------------- Inputs --------------------
use_hl2 = input.bool(true, "Use HL2 for calculations?")
// EMA
ema_fast_len = input.int(5, "EMA Fast")
ema_slow_len = input.int(20, "EMA Slow")
// RSI
rsi_len = input.int(14, "RSI Length")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
// Bollinger Bands
bb_len = input.int(20)
bb_dev = input.float(2.0)
// MACD
macd_fast = input.int(12)
macd_slow = input.int(26)
macd_signal = input.int(9)
// Min signals to confirm
min_signals = input.int(2, "Min confirming signals")
// -------------------- Price --------------------
price = use_hl2 ? hl2 : close
// -------------------- Indicators --------------------
ema_fast = ta.ema(price, ema_fast_len)
ema_slow = ta.ema(price, ema_slow_len)
rsi = ta.rsi(price, rsi_len)
basis = ta.sma(price, bb_len)
dev = bb_dev * ta.stdev(price, bb_len)
bb_upper = basis + dev
bb_lower = basis - dev
[macdLine, signalLine, _] = ta.macd(price, macd_fast, macd_slow, macd_signal)
macd_buy = ta.crossover(macdLine, signalLine)
macd_sell = ta.crossunder(macdLine, signalLine)
// -------------------- Build signals --------------------
bull_signals = 0
bear_signals = 0
// EMA trend
if ema_fast > ema_slow
bull_signals += 1
else
bear_signals += 1
// RSI
if rsi < rsi_oversold
bull_signals += 1
if rsi > rsi_overbought
bear_signals += 1
// Bollinger breakout
if close > bb_upper
bull_signals += 1
if close < bb_lower
bear_signals += 1
// MACD
if macd_buy
bull_signals += 1
if macd_sell
bear_signals += 1
// -------------------- Decide signal --------------------
show_buy = bull_signals >= min_signals and bull_signals > bear_signals
show_sell = bear_signals >= min_signals and bear_signals > bull_signals
getRiskText(count) =>
count >= 3 ? "เสี่ยง: ต่ำ (Low Risk)" :
count == 2 ? "เสี่ยง: กลาง (Medium Risk)" :
"เสี่ยง: สูง (High Risk)"
// -------------------- Plot --------------------
plot(ema_fast, color=color.new(color.green, 0), title="EMA Fast")
plot(ema_slow, color=color.new(color.red, 0), title="EMA Slow")
plot(bb_upper, color=color.new(color.orange, 50), title="BB Upper")
plot(bb_lower, color=color.new(color.blue, 50), title="BB Lower")
// Arrows
plotshape(show_buy, title="Buy Arrow", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.normal, text="CALL")
plotshape(show_sell, title="Sell Arrow", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.normal, text="PUT")
// Labels with risk
if show_buy
label.new(bar_index, low - tr*0.5, text=getRiskText(bull_signals) + "\nCall 1m", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white)
if show_sell
label.new(bar_index, high + tr*0.5, text=getRiskText(bear_signals) + "\nPut 1m", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white)
// -------------------- Optional: Signal Table --------------------
var table t = table.new(position.top_right, 1, 3)
if barstate.islast
table.cell(t, 0, 0, "Bull signals: " + str.tostring(bull_signals), text_color=color.green)
table.cell(t, 0, 1, "Bear signals: " + str.tostring(bear_signals), text_color=color.red)
table.cell(t, 0, 2, "Risk: " + (show_buy ? getRiskText(bull_signals) : show_sell ? getRiskText(bear_signals) : "N/A"))
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.