มิก

3
//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"))

Aviso legal

As informações e publicações não devem ser e não constituem conselhos ou recomendações financeiras, de investimento, de negociação ou de qualquer outro tipo, fornecidas ou endossadas pela TradingView. Leia mais em Termos de uso.