{"id":29,"date":"2026-02-19T04:04:39","date_gmt":"2026-02-19T04:04:39","guid":{"rendered":"https:\/\/kennyfx.pro\/?page_id=29"},"modified":"2026-02-19T04:11:09","modified_gmt":"2026-02-19T04:11:09","slug":"29-2","status":"publish","type":"page","link":"https:\/\/kennyfx.pro\/","title":{"rendered":"Professional Strategy Analyzer"},"content":{"rendered":"<div id=\"sd-app\" class=\"sd-app\">\r\n\r\n  <!-- \u2550\u2550\u2550 HEADER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n  <div class=\"sd-header\">\r\n    <div class=\"sd-header__eyebrow\">Strategy Analytics Platform<\/div>\r\n    <h2 class=\"sd-header__title\">Trade Report Dashboard<\/h2>\r\n    <p class=\"sd-header__sub\">Upload your MT5 strategy tester or account history report to get live Monte Carlo projections, position sizing recommendations, and prop firm challenge probabilities.<\/p>\r\n  <\/div>\r\n\r\n  <!-- \u2550\u2550\u2550 UPLOAD ZONE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n  <div class=\"sd-upload-zone\" id=\"sdUploadZone\">\r\n    <div class=\"sd-upload-zone__icon\">\u2b06<\/div>\r\n    <div class=\"sd-upload-zone__title\">Drop your MT5 report here<\/div>\r\n    <div class=\"sd-upload-zone__sub\">Supports Strategy Tester XML \u00b7 Account History XML \u00b7 MT5 HTML Reports<\/div>\r\n    <label class=\"sd-btn sd-btn--primary\" for=\"sdFileInput\">Choose File<\/label>\r\n    <input type=\"file\" id=\"sdFileInput\" accept=\".xml,.html,.htm\" style=\"display:none\">\r\n    <div class=\"sd-upload-zone__status\" id=\"sdUploadStatus\"><\/div>\r\n    <div class=\"sd-progress\" id=\"sdProgress\" style=\"display:none\"><div class=\"sd-progress__bar\" id=\"sdProgressBar\"><\/div><\/div>\r\n  <\/div>\r\n\r\n  <!-- \u2550\u2550\u2550 LOADED FILE BADGE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n  <div class=\"sd-file-badge\" id=\"sdFileBadge\" style=\"display:none\">\r\n    <span class=\"sd-file-badge__icon\">\ud83d\udcc4<\/span>\r\n    <span class=\"sd-file-badge__name\" id=\"sdFileName\"><\/span>\r\n    <button class=\"sd-file-badge__change\" onclick=\"document.getElementById('sdFileInput').click()\">Change file<\/button>\r\n  <\/div>\r\n\r\n  <!-- \u2550\u2550\u2550 MAIN APP (shown after upload) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n  <div id=\"sdMain\" style=\"display:none\">\r\n\r\n    <!-- \u2500\u2500\u2500 TAB NAV \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-tabs\">\r\n      <button class=\"sd-tab active\" data-tab=\"overview\">\ud83d\udcca Overview<\/button>\r\n      <button class=\"sd-tab\" data-tab=\"montecarlo\">\ud83c\udfb2 Monte Carlo<\/button>\r\n      <button class=\"sd-tab\" data-tab=\"propfirm\">\ud83c\udfc6 Prop Firm<\/button>\r\n      <button class=\"sd-tab\" data-tab=\"personal\">\ud83d\udcc8 Personal Account<\/button>\r\n      <button class=\"sd-tab\" data-tab=\"portfolio\">\ud83d\uddc2\ufe0f Portfolio<\/button>\r\n    <\/div>\r\n\r\n    <!-- \u2500\u2500\u2500 OVERVIEW TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-panel active\" id=\"tab-overview\">\r\n      <div class=\"sd-panel__title\">Strategy Statistics<\/div>\r\n\r\n      <div class=\"sd-kpi-grid\" id=\"overviewKpis\"><\/div>\r\n\r\n      <div class=\"sd-two-col\">\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Performance<\/div>\r\n          <div id=\"overviewPerf\"><\/div>\r\n        <\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Trade Statistics<\/div>\r\n          <div id=\"overviewTrades\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"sd-card\">\r\n        <div class=\"sd-card__title\">Equity Curve (Relative \u2014 All Trades)<\/div>\r\n        <canvas id=\"overviewEquity\" height=\"300\"><\/canvas>\r\n      <\/div>\r\n\r\n      <div class=\"sd-two-col\" style=\"margin-top:16px\">\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">R-Multiple Distribution<\/div>\r\n          <canvas id=\"rMultipleChart\" height=\"220\"><\/canvas>\r\n        <\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Win\/Loss Breakdown<\/div>\r\n          <canvas id=\"winLossChart\" height=\"220\"><\/canvas>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- \u2605 TRADE DISTRIBUTION CHARTS \u2605 -->\r\n      <div class=\"sd-card\" style=\"margin-top:16px\">\r\n        <div class=\"sd-card__title\">Trade Analysis \u2014 Entries &amp; P\/L Distribution<\/div>\r\n        <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:16px\">Based on trade open time. Bars show entry count (top) and gross P\/L in dollars (bottom).<\/p>\r\n\r\n        <div style=\"display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px\">\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">Entries by Hour (0\u201323)<\/div>\r\n            <canvas id=\"tradeHourEntries\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">Entries by Weekday<\/div>\r\n            <canvas id=\"tradeDayEntries\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">Entries by Month<\/div>\r\n            <canvas id=\"tradeMonthEntries\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div style=\"display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px\">\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">P\/L by Hour ($)<\/div>\r\n            <canvas id=\"tradeHourPnl\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">P\/L by Weekday ($)<\/div>\r\n            <canvas id=\"tradeDayPnl\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n          <div>\r\n            <div style=\"font-size:11px;color:#64748b;margin-bottom:6px;text-align:center\">P\/L by Month ($)<\/div>\r\n            <canvas id=\"tradeMonthPnl\" height=\"160\"><\/canvas>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Verdict block -->\r\n      <div class=\"sd-verdict\" id=\"overviewVerdict\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- \u2500\u2500\u2500 MONTE CARLO TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-panel\" id=\"tab-montecarlo\">\r\n      <div class=\"sd-panel__title\">Monte Carlo Simulation<\/div>\r\n\r\n      <div class=\"sd-config-row\">\r\n        <div class=\"sd-card sd-card--config\">\r\n          <div class=\"sd-card__title\">Simulation Settings<\/div>\r\n          <div class=\"sd-field\"><label>Starting Capital ($)<\/label><input type=\"number\" id=\"mcCapital\" value=\"10000\" min=\"100\"><\/div>\r\n          <div class=\"sd-field\"><label>Number of Trades to Simulate<\/label><input type=\"number\" id=\"mcTrades\" value=\"440\" min=\"10\" max=\"5000\"><\/div>\r\n          <div class=\"sd-field\"><label>Simulations (runs)<\/label>\r\n            <select id=\"mcRuns\"><option value=\"500\">500 (fast)<\/option><option value=\"1000\" selected>1,000<\/option><option value=\"2000\">2,000<\/option><option value=\"5000\">5,000 (slow)<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"sd-field\"><label>Risk % per Trade<\/label><input type=\"number\" id=\"mcRisk\" value=\"1\" min=\"0.1\" max=\"10\" step=\"0.1\"><\/div>\r\n          <div class=\"sd-field\"><label>Use R-multiples from report?<\/label>\r\n            <select id=\"mcUseR\"><option value=\"1\" selected>Yes \u2014 use actual R-multiple distribution<\/option><option value=\"0\">No \u2014 use avg win\/loss ratio only<\/option><\/select>\r\n          <\/div>\r\n          <button class=\"sd-btn sd-btn--primary\" id=\"mcRunBtn\" onclick=\"SD_MC.run()\">\u25b6 Run Simulation<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div id=\"mcResults\" style=\"display:none\">\r\n        <div class=\"sd-kpi-grid\" id=\"mcKpis\"><\/div>\r\n\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Equity Percentile Bands<\/div>\r\n          <div class=\"sd-legend\" id=\"mcLegend\"><\/div>\r\n          <canvas id=\"mcEquityChart\" height=\"340\"><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Final Balance Distribution<\/div><canvas id=\"mcBalHist\" height=\"220\"><\/canvas><\/div>\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Max Drawdown Distribution<\/div><canvas id=\"mcDdHist\" height=\"220\"><\/canvas><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Percentile Outcomes<\/div>\r\n          <div class=\"sd-table-wrap\"><table id=\"mcTable\"><thead><tr><th>Percentile<\/th><th>Final Balance<\/th><th>Net Profit<\/th><th>Return<\/th><th>Max DD<\/th><th>Profit Factor<\/th><th>Outcome<\/th><\/tr><\/thead><tbody id=\"mcTableBody\"><\/tbody><\/table><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Probability Summary<\/div><div id=\"mcProbs\"><\/div><\/div>\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Risk Metrics<\/div><div id=\"mcRisks\"><\/div><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sd-verdict\" id=\"mcVerdict\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- \u2500\u2500\u2500 PROP FIRM TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-panel\" id=\"tab-propfirm\">\r\n      <div class=\"sd-panel__title\">Prop Firm Challenge Simulator<\/div>\r\n\r\n      <div class=\"sd-config-row\">\r\n        <div class=\"sd-card sd-card--config\">\r\n          <div class=\"sd-card__title\">Challenge Rules<\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Steps (Challenge Structure)<\/label>\r\n            <select id=\"pfSteps\" onchange=\"SD_PF.updateStepUI()\">\r\n              <option value=\"1\">1-Step<\/option>\r\n              <option value=\"2\" selected>2-Step<\/option>\r\n              <option value=\"3\">3-Step<\/option>\r\n            <\/select>\r\n          <\/div>\r\n\r\n          <div id=\"pfPhases\">\r\n            <!-- Rendered by JS -->\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Max Overall Drawdown (%)<\/label>\r\n            <input type=\"number\" id=\"pfMaxDD\" value=\"10\" min=\"1\" max=\"50\" step=\"0.5\">\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Drawdown Type<\/label>\r\n            <select id=\"pfDDType\">\r\n              <option value=\"static\">Static (from initial balance)<\/option>\r\n              <option value=\"trailing\">Trailing High-Water Mark<\/option>\r\n            <\/select>\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Max Daily Drawdown (%)<\/label>\r\n            <input type=\"number\" id=\"pfDailyDD\" value=\"4\" min=\"0.5\" max=\"20\" step=\"0.5\">\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Leverage<\/label>\r\n            <select id=\"pfLeverage\">\r\n              <option value=\"10\">1:10<\/option>\r\n              <option value=\"20\">1:20<\/option>\r\n              <option value=\"30\" selected>1:30<\/option>\r\n              <option value=\"50\">1:50<\/option>\r\n              <option value=\"100\">1:100<\/option>\r\n              <option value=\"200\">1:200<\/option>\r\n              <option value=\"500\">1:500<\/option>\r\n              <option value=\"custom\">Custom\u2026<\/option>\r\n            <\/select>\r\n            <input type=\"number\" id=\"pfLeverageCustom\" placeholder=\"e.g. 400\" style=\"display:none;margin-top:6px\">\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Risk % per Trade<\/label>\r\n            <input type=\"number\" id=\"pfRisk\" value=\"0.5\" min=\"0.1\" max=\"10\" step=\"0.1\">\r\n          <\/div>\r\n\r\n          <div class=\"sd-field\">\r\n            <label>Simulations<\/label>\r\n            <select id=\"pfRuns\"><option value=\"1000\">1,000<\/option><option value=\"2000\" selected>2,000<\/option><option value=\"5000\">5,000<\/option><\/select>\r\n          <\/div>\r\n\r\n          <button class=\"sd-btn sd-btn--primary\" onclick=\"SD_PF.run()\">\u25b6 Run Challenge Simulation<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div id=\"pfResults\" style=\"display:none\">\r\n        <div class=\"sd-kpi-grid\" id=\"pfKpis\"><\/div>\r\n\r\n        <div id=\"pfPhaseResults\"><\/div>\r\n\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Daily DD Safety Check<\/div>\r\n          <div id=\"pfDailyCheck\"><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Outcome Breakdown<\/div><div class=\"sd-table-wrap\"><table><thead><tr><th>Phase<\/th><th>Outcome<\/th><th>Count<\/th><th>% of Runs<\/th><\/tr><\/thead><tbody id=\"pfFailTable\"><\/tbody><\/table><\/div><\/div>\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Days to Complete<\/div><canvas id=\"pfDaysChart\" height=\"240\"><\/canvas><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"sd-verdict\" id=\"pfVerdict\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- \u2500\u2500\u2500 PERSONAL ACCOUNT TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-panel\" id=\"tab-personal\">\r\n      <div class=\"sd-panel__title\">Personal Account Growth Simulator<\/div>\r\n\r\n      <div class=\"sd-config-row\">\r\n        <div class=\"sd-card sd-card--config\">\r\n          <div class=\"sd-card__title\">Account Settings<\/div>\r\n          <div class=\"sd-field\"><label>Starting Capital ($)<\/label><input type=\"number\" id=\"paCapital\" value=\"10000\" min=\"100\"><\/div>\r\n          <div class=\"sd-field\"><label>Leverage<\/label>\r\n            <select id=\"paLeverage\">\r\n              <option value=\"10\">1:10<\/option><option value=\"20\">1:20<\/option><option value=\"30\">1:30<\/option>\r\n              <option value=\"50\">1:50<\/option><option value=\"100\" selected>1:100<\/option><option value=\"200\">1:200<\/option><option value=\"500\">1:500<\/option><option value=\"custom\">Custom\u2026<\/option>\r\n            <\/select>\r\n            <input type=\"number\" id=\"paLeverageCustom\" placeholder=\"e.g. 400\" style=\"display:none;margin-top:6px\">\r\n          <\/div>\r\n          <div class=\"sd-field\"><label>Risk % per Trade<\/label><input type=\"number\" id=\"paRiskDollar\" value=\"1\" min=\"0.1\" max=\"20\" step=\"0.1\"><\/div>\r\n          <div class=\"sd-field\"><label>Simulation Horizon (Trading Days)<\/label><input type=\"number\" id=\"paDays\" value=\"220\" min=\"10\" max=\"1500\"><\/div>\r\n          <div class=\"sd-field\"><label>Simulations<\/label><select id=\"paRuns\"><option value=\"1000\">1,000<\/option><option value=\"2000\" selected>2,000<\/option><option value=\"5000\">5,000<\/option><\/select><\/div>\r\n          <div class=\"sd-field sd-field--info\">Risk % compounds with account growth (anti-martingale).<\/div>\r\n          <button class=\"sd-btn sd-btn--primary\" onclick=\"SD_PA.run()\">\u25b6 Run Growth Simulation<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"sd-card sd-card--config\">\r\n          <div class=\"sd-card__title\">Compare Risk Levels<\/div>\r\n          <p class=\"sd-text-muted\">Compare multiple risk sizes simultaneously to find your optimal setting.<\/p>\r\n          <div id=\"paRiskCompareInputs\">\r\n            <div class=\"sd-field\"><label>Risk % Level 1<\/label><input type=\"number\" class=\"pa-risk-cmp\" value=\"0.5\" min=\"0.1\" max=\"20\" step=\"0.1\"><\/div>\r\n            <div class=\"sd-field\"><label>Risk % Level 2<\/label><input type=\"number\" class=\"pa-risk-cmp\" value=\"1\" min=\"0.1\" max=\"20\" step=\"0.1\"><\/div>\r\n            <div class=\"sd-field\"><label>Risk % Level 3<\/label><input type=\"number\" class=\"pa-risk-cmp\" value=\"2\" min=\"0.1\" max=\"20\" step=\"0.1\"><\/div>\r\n            <div class=\"sd-field\"><label>Risk % Level 4<\/label><input type=\"number\" class=\"pa-risk-cmp\" value=\"3\" min=\"0.1\" max=\"20\" step=\"0.1\"><\/div>\r\n          <\/div>\r\n          <button class=\"sd-btn sd-btn--secondary\" onclick=\"SD_PA.runCompare()\">\u229e Compare All Levels<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div id=\"paResults\" style=\"display:none\">\r\n        <div class=\"sd-kpi-grid\" id=\"paKpis\"><\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Equity Curve Percentile Bands<\/div>\r\n          <div class=\"sd-legend\" id=\"paLegend\"><\/div>\r\n          <canvas id=\"paEquityChart\" height=\"340\"><\/canvas>\r\n        <\/div>\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Final Balance Distribution<\/div><canvas id=\"paBalHist\" height=\"220\"><\/canvas><\/div>\r\n          <div class=\"sd-card\"><div class=\"sd-card__title\">Max Drawdown Distribution<\/div><canvas id=\"paDdHist\" height=\"220\"><\/canvas><\/div>\r\n        <\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Percentile Outcomes Table<\/div>\r\n          <div class=\"sd-table-wrap\"><table><thead><tr><th>Percentile<\/th><th>Final Balance<\/th><th>Return<\/th><th>Max DD<\/th><th>Outcome<\/th><\/tr><\/thead><tbody id=\"paTableBody\"><\/tbody><\/table><\/div>\r\n        <\/div>\r\n        <div class=\"sd-verdict\" id=\"paVerdict\"><\/div>\r\n      <\/div>\r\n\r\n      <div id=\"paCompareResults\" style=\"display:none\">\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Median Equity \u2014 All Risk Levels<\/div>\r\n          <div class=\"sd-legend\" id=\"paCmpLegend\"><\/div>\r\n          <canvas id=\"paCmpChart\" height=\"320\"><\/canvas>\r\n        <\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Side-by-Side Comparison<\/div>\r\n          <div class=\"sd-table-wrap\"><table><thead><tr><th>Risk $<\/th><th>Risk %<\/th><th>Median Balance<\/th><th>Median Return<\/th><th>Median Max DD<\/th><th>P(Profit)<\/th><th>P(Double)<\/th><th>Verdict<\/th><\/tr><\/thead><tbody id=\"paCmpTable\"><\/tbody><\/table><\/div>\r\n        <\/div>\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Return vs Drawdown Tradeoff<\/div>\r\n          <canvas id=\"paCmpScatter\" height=\"300\"><\/canvas>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- \u2500\u2500\u2500 POSITION SIZING TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <!-- \u2500\u2500\u2500 PORTFOLIO TAB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n    <div class=\"sd-panel\" id=\"tab-portfolio\">\r\n      <div class=\"sd-panel__title\">Portfolio Combiner<\/div>\r\n      <p class=\"sd-text-muted\" style=\"margin-bottom:20px\">Upload multiple strategy reports, set allocation weights, and analyze combined portfolio performance.<\/p>\r\n\r\n      <!-- Strategy list -->\r\n      <div class=\"sd-card\" style=\"margin-bottom:16px\">\r\n        <div class=\"sd-card__title\">Strategies in Portfolio<\/div>\r\n        <div id=\"portStratList\" style=\"margin-bottom:14px\">\r\n          <p class=\"sd-text-muted\" id=\"portEmptyMsg\">No strategies added yet. The currently loaded report will be added automatically when you switch to this tab.<\/p>\r\n        <\/div>\r\n        <div style=\"display:flex;align-items:center;gap:12px;flex-wrap:wrap\">\r\n          <label class=\"sd-btn sd-btn--secondary\" for=\"portFileInput\">+ Add Another Strategy<\/label>\r\n          <input type=\"file\" id=\"portFileInput\" accept=\".xml,.html,.htm\" style=\"display:none\">\r\n          <span id=\"portUploadStatus\" style=\"font-size:12px;color:#64748b\"><\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Hidden inputs kept for JS compatibility \u2014 not shown to user -->\r\n      <input type=\"hidden\" id=\"portCapital\"  value=\"10000\">\r\n      <input type=\"hidden\" id=\"portRiskPct\"  value=\"1\">\r\n      <input type=\"hidden\" id=\"portDays\"     value=\"220\">\r\n      <input type=\"hidden\" id=\"portRuns\"     value=\"2000\">\r\n\r\n      <button class=\"sd-btn sd-btn--primary\" id=\"portRunBtn\" onclick=\"SD_Portfolio.run()\" style=\"display:none\">\ud83d\udcca Analyze Portfolio<\/button>\r\n\r\n      <!-- Results -->\r\n      <div id=\"portResults\" style=\"display:none\">\r\n\r\n        <!-- Summary KPIs -->\r\n        <div class=\"sd-kpi-grid\" id=\"portKpis\"><\/div>\r\n\r\n        <div class=\"sd-card\" style=\"padding-bottom:12px\">\r\n          <div class=\"sd-card__title\" style=\"margin-bottom:8px\">Combined Portfolio ROI %<\/div>\r\n          <div id=\"portCurveLegend\" class=\"sd-legend-row\" style=\"margin-bottom:8px;flex-wrap:wrap;gap:6px\"><\/div>\r\n          <canvas id=\"portCurveChart\" height=\"70\"><\/canvas>\r\n        <\/div>\r\n\r\n        <!-- \u2605 MONTHLY RETURNS HEATMAP \u2605 -->\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Monthly Returns Heatmap \u2014 Combined Portfolio<\/div>\r\n          <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:14px\">Each cell = sum of all strategies' % returns for that month. Green = profit, Red = loss. Right column = compounded annual return.<\/p>\r\n          <div id=\"portHeatmap\" style=\"overflow-x:auto\"><\/div>\r\n        <\/div>\r\n\r\n        <!-- \u2605 SEASONAL ANALYSIS \u2605 -->\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">\ud83d\udcc5 Average Return by Calendar Month<\/div>\r\n            <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:12px\">Average % return across all years for each month. Reveals seasonal edges.<\/p>\r\n            <div id=\"portSeasonalMonth\"><\/div>\r\n          <\/div>\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">\ud83d\udcc6 Average Return by Day of Week<\/div>\r\n            <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:12px\">Based on trade close time. Shows which days your strategies perform best.<\/p>\r\n            <div id=\"portSeasonalDay\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- \u2605 SEASONAL BAR CHARTS \u2605 -->\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\">\r\n            <canvas id=\"portMonthBarChart\" height=\"220\"><\/canvas>\r\n          <\/div>\r\n          <div class=\"sd-card\">\r\n            <canvas id=\"portDayBarChart\" height=\"220\"><\/canvas>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Combined portfolio stats -->\r\n        <div class=\"sd-two-col\">\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">Combined Portfolio Performance<\/div>\r\n            <div id=\"portPerfStats\"><\/div>\r\n          <\/div>\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">Combined Trade Statistics<\/div>\r\n            <div id=\"portTradeStats\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Correlation matrix + DD comparison side by side -->\r\n        <div class=\"sd-two-col\" id=\"portMultiStratCards\">\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">Strategy Correlation Matrix<\/div>\r\n            <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:12px\">Period-over-period return correlation. Low\/negative = good diversification.<\/p>\r\n            <div id=\"portCorrelation\"><\/div>\r\n          <\/div>\r\n          <div class=\"sd-card\">\r\n            <div class=\"sd-card__title\">Drawdown Comparison<\/div>\r\n            <div id=\"portDDLegend\" class=\"sd-legend-row\" style=\"margin-bottom:10px\"><\/div>\r\n            <canvas id=\"portDDChart\" height=\"260\"><\/canvas>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Per-strategy breakdown table -->\r\n        <div class=\"sd-card\" id=\"portBreakdownCard\">\r\n          <div class=\"sd-card__title\">Per-Strategy Breakdown<\/div>\r\n          <div class=\"sd-table-wrap\">\r\n            <table>\r\n              <thead><tr><th>Strategy<\/th><th>Weight<\/th><th>Trades<\/th><th>Win Rate<\/th><th>PF<\/th><th>Net Profit %<\/th><th>Max DD %<\/th><th>Sharpe<\/th><th>Recovery<\/th><th>Avg R<\/th><\/tr><\/thead>\r\n              <tbody id=\"portBreakdownTable\"><\/tbody>\r\n            <\/table>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Monthly bar chart -->\r\n        <div class=\"sd-card\">\r\n          <div class=\"sd-card__title\">Monthly Returns by Strategy + Portfolio<\/div>\r\n          <p class=\"sd-text-muted\" style=\"font-size:11px;margin-bottom:10px\">Each bar = that month's % return. Green\/red = combined portfolio. Dashed lines = individual strategies.<\/p>\r\n          <canvas id=\"portMonthlyBarChart\" height=\"240\"><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"sd-verdict\" id=\"portVerdict\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div><!-- #sdMain -->\r\n<\/div><!-- #sd-app -->\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-29","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/pages\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":2,"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/pages\/29\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/pages\/29\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/kennyfx.pro\/index.php\/wp-json\/wp\/v2\/media?parent=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}