import React, { useEffect, useState } from "react"; import axios from "axios"; function Ribbon() { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const loadData = async () => { try { const res = await axios.get("http://127.0.0.1:8000/api/scanner/ribbon"); setData(res.data || []); setLoading(false); } catch (err) { console.error("Ribbon error:", err); setLoading(false); } }; useEffect(() => { loadData(); const interval = setInterval(loadData, 100000); return () => clearInterval(interval); }, []); const openChart = (symbol) => { window.open(`https://www.tradingview.com/chart/?symbol=NSE:${symbol}`, "_blank"); }; if (loading) return
| Stock | Price | EMA High 5 | EMA Low 5 | EMA High 100 | EMA Low 100 | EMA Close 100 | Signal | Action |
|---|---|---|---|---|---|---|---|---|
| {s.symbol} | ₹{s.price} | {s.ema_high_5} | {s.ema_low_5} | {s.ema_high_100} | {s.ema_low_100} | {s.ema_close_100} | {s.signal} |