From 0efff43eac15b3ffd0864ea194a89bab50a95217 Mon Sep 17 00:00:00 2001 From: Thigazhezhilan J Date: Thu, 28 May 2026 18:34:41 +0530 Subject: [PATCH] Add Alpha Shield strategy selector to live and paper portfolio pages Users can now choose between Golden Nifty and Alpha Shield before starting the strategy engine. Selector syncs from saved config on load. Co-Authored-By: Claude Sonnet 4.6 --- src/components/landing/PortfolioSection.tsx | 27 ++++++++++++++++++--- src/pages/PaperPortfolio.tsx | 25 +++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/components/landing/PortfolioSection.tsx b/src/components/landing/PortfolioSection.tsx index d41565a9..8f440629 100644 --- a/src/components/landing/PortfolioSection.tsx +++ b/src/components/landing/PortfolioSection.tsx @@ -514,6 +514,7 @@ export default function PortfolioSection() { const [sipAmount, setSipAmount] = useState(5000); const [frequencyValue, setFrequencyValue] = useState(30); const [frequencyUnit, setFrequencyUnit] = useState<"days" | "minutes">("days"); + const [selectedStrategy, setSelectedStrategy] = useState<"golden_nifty" | "alpha_shield">("golden_nifty"); const [strategyStatus, setStrategyStatus] = useState("STOPPED"); const [strategyDetails, setStrategyDetails] = useState(null); const [isStarting, setIsStarting] = useState(false); @@ -542,6 +543,10 @@ export default function PortfolioSection() { if (!freshStartRequested && savedFrequencyUnit) { setFrequencyUnit(savedFrequencyUnit); } + const savedStrategy = status?.config?.strategy; + if (!freshStartRequested && (savedStrategy === "golden_nifty" || savedStrategy === "alpha_shield")) { + setSelectedStrategy(savedStrategy); + } } catch (error) { setStrategyDetails(null); setStrategyStatus("STOPPED"); @@ -1062,7 +1067,7 @@ export default function PortfolioSection() { setIsStarting(true); try { const result = await startStrategy({ - strategy_name: "Golden Nifty", + strategy_name: selectedStrategy, sip_amount: sipAmount, sip_frequency: { value: frequencyValue, @@ -1087,7 +1092,7 @@ export default function PortfolioSection() { clearFreshStartPreference(); toast({ title: "Live strategy started", - description: `Golden Nifty is now armed for live ${brokerLabel} execution.`, + description: `${selectedStrategy === "alpha_shield" ? "Alpha Shield" : "Golden Nifty"} is now armed for live ${brokerLabel} execution.`, }); } else { toast({ @@ -1544,7 +1549,7 @@ export default function PortfolioSection() {

Strategy control

- Start or stop the Golden Nifty SIP engine from the dashboard. + Start or stop the {selectedStrategy === "alpha_shield" ? "Alpha Shield" : "Golden Nifty"} SIP engine from the dashboard.

@@ -1566,6 +1571,22 @@ export default function PortfolioSection() {
{eligibilityStatus}
) : null}
+
+ + +
diff --git a/src/pages/PaperPortfolio.tsx b/src/pages/PaperPortfolio.tsx index 3008546a..1bd5621f 100644 --- a/src/pages/PaperPortfolio.tsx +++ b/src/pages/PaperPortfolio.tsx @@ -182,6 +182,7 @@ function PaperTradingPortfolio() { const [initialCash, setInitialCash] = useState(""); const [frequencyValue, setFrequencyValue] = useState(10); const [frequencyUnit, setFrequencyUnit] = useState<"minutes" | "days">("minutes"); + const [selectedStrategy, setSelectedStrategy] = useState<"golden_nifty" | "alpha_shield">("golden_nifty"); const [strategyStatus, setStrategyStatus] = useState("STOPPED"); const [strategyDetails, setStrategyDetails] = useState(null); const [isStarting, setIsStarting] = useState(false); @@ -276,6 +277,10 @@ function PaperTradingPortfolio() { if (!freshStartRequested && savedFrequencyUnit) { setFrequencyUnit(savedFrequencyUnit); } + const savedStrategy = status?.config?.strategy; + if (!freshStartRequested && (savedStrategy === "golden_nifty" || savedStrategy === "alpha_shield")) { + setSelectedStrategy(savedStrategy); + } } catch { setStrategyDetails(null); setStrategyStatus("STOPPED"); @@ -447,7 +452,7 @@ function PaperTradingPortfolio() { setIsStarting(true); try { const result = await startStrategy({ - strategy_name: "Golden Nifty", + strategy_name: selectedStrategy, initial_cash: initialCash, sip_amount: sipAmount, sip_frequency: { @@ -774,7 +779,7 @@ function PaperTradingPortfolio() {

Strategy control

- Start or stop the Golden Nifty SIP engine from the dashboard. + Start or stop the {selectedStrategy === "alpha_shield" ? "Alpha Shield" : "Golden Nifty"} SIP engine from the dashboard.

@@ -801,6 +806,22 @@ function PaperTradingPortfolio() {
{eligibilityStatus}
) : null}
+
+ + +