ENTER Invest and Algorithmic Token — MA Crossover StrategyUS Tech 100 CashIG:NASDAQnunoedgar.fernandes//@version=5 // ============================================================ // ENTER Invest — MA Crossover Strategy // Dual SMA crossover with ATR-based stops and webhook alerts // // GitHub : https://github.com/Algorithmic-Token/multiasset_dailytradingsystem // Publish : Set this as an Indicator on your chart, then add // Price Alerts on the plotshape signals below. // ============================================================ indicator( title = "ENTER Invest — MA Crossover", shorttitle = "EI_MAC", overlay = true, max_bars_back = 500 ) // ── Inputs ──────────────────────────────────────────────────────────────── grp_ma = "Moving Averages" grp_risk = "Risk Parameters" grp_wh = "Webhook" fast_len = input.int(20, "Fast SMA Period", minval=2, group=grp_ma) slow_len = input.int(50, "Slow SMA Period", minval=10, group=grp_ma) atr_len = input.int(14, "ATR Period", minval=1, group=grp_ma) sl_mult = input.float(2.0, "SL × ATR", minval=0.5, step=0.1, group=grp_risk) tp_rr = input.float(2.0, "TP R:R Ratio", minval=0.5, step=0.1, group=grp_risk) trade_dir = input.string("Both", "Direction", options=, group=grp_risk) asset_class = input.string("indices", "Asset Class", options=, group=grp_wh) strategy_id = input.string("MA_Crossover", "Strategy Name", group=grp_wh) // ── Calculations ────────────────────────────────────────────────────────── fast_sma = ta.sma(close, fast_len) slow_sma = ta.sma(close, slow_len) atr_val = ta.atr(atr_len) // Crossover detection bull_cross = ta.crossover(fast_sma, slow_sma) bear_cross = ta.crossunder(fast_sma, slow_sma) // Stop / Target levels (plotted so webhook can reference them as plot_0, plot_1, plot_2) long_sl = close - atr_val * sl_mult long_tp = close + (close - long_sl) * tp_rr short_sl = close + atr_val * sl_mult short_tp = close - (short_sl - close) * tp_rr // ── Signal conditions ───────────────────────────────────────────────────── long_signal = bull_cross and (trade_dir == "Both" or trade_dir == "Long Only") short_signal = bear_cross and (trade_dir == "Both" or trade_dir == "Short Only") // ── Plots ───────────────────────────────────────────────────────────────── plot(fast_sma, "Fast SMA", color=color.new(color.aqua, 0), linewidth=1) plot(slow_sma, "Slow SMA", color=color.new(color.orange, 0), linewidth=2) // These three plots are referenced in the alert JSON as {{plot_0}}, {{plot_1}}, {{plot_2}} // plot_0 = stop_loss, plot_1 = take_profit, plot_2 = atr plot_sl = long_signal ? long_sl : short_signal ? short_sl : na plot_tp = long_signal ? long_tp : short_signal ? short_tp : na p0 = plot(plot_sl, "SL Level", color=color.new(color.red, 70), linewidth=1) p1 = plot(plot_tp, "TP Level", color=color.new(color.green, 70), linewidth=1) p2 = plot(atr_val, "ATR", color=color.new(color.gray, 90), display=display.data_window) // Entry markers plotshape(long_signal, "Long Signal", style=shape.triangleup, location=location.belowbar, color=color.lime, size=size.small) plotshape(short_signal, "Short Signal", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // ── Alerts ──────────────────────────────────────────────────────────────── // JSON template — paste this exactly into the TradingView alert "Message" field // Replace {{plot_0}} / {{plot_1}} / {{plot_2}} with the plot references below // // Long alert message: // { // "strategy": "MA_Crossover", // "symbol": "{{ticker}}", // "exchange": "{{exchange}}", // "interval": "{{interval}}", // "asset_class": "indices", // "direction": "buy", // "price": {{close}}, // "stop_loss": {{plot("SL Level")}}, // "take_profit": {{plot("TP Level")}}, // "atr": {{plot("ATR")}}, // "bar_time": {{timenow}} // } alertcondition(long_signal, "MAC Long Entry", "MA Crossover — LONG entry signal on {{ticker}}") alertcondition(short_signal, "MAC Short Entry", "MA Crossover — SHORT entry signal on {{ticker}}") alertcondition(bull_cross or bear_cross, "MAC Any Signal", "MA Crossover — signal on {{ticker}}")