🚀 Auto-deploy: Add background automated scheduler, Kelly allocation, multi-portfolio simulations, and UI improvements

This commit is contained in:
2026-05-20 11:23:56 +00:00
parent 738490ea4f
commit 3921ce9359
9 changed files with 944 additions and 127 deletions
+89 -8
View File
@@ -40,17 +40,98 @@
<div id="lastDecisionBanner" class="decision-banner" style="display:none;"></div>
</section>
<!-- Office Floor -->
<section class="office-section">
<h2>🏠 Escritório Virtual</h2>
<div class="office-floor">
<div class="floor-grid" id="agentDesks">
<!-- Agent desks injected by JS -->
<!-- Cockpit de Dosagens de Trabalho -->
<section class="cockpit-section">
<h2>🎛️ Dosagens de Trabalho <span class="badge">Cockpit do Investidor</span></h2>
<div class="cockpit-grid">
<!-- Ritmo de Análise -->
<div class="cockpit-card">
<div class="cockpit-card-header">
<span class="cockpit-icon">⏱️</span>
<h3>Ritmo de Análise</h3>
</div>
<p class="cockpit-desc">Frequência com que a equipe avalia o mercado.</p>
<div class="cockpit-options" id="freqOptions">
<button class="btn-opt" onclick="setFreq('4h')">🐢 4h <small>Posicional</small></button>
<button class="btn-opt active" onclick="setFreq('1h')">🚶 1h <small>Padrão</small></button>
<button class="btn-opt" onclick="setFreq('15m')">⚡ 15m <small>Scalp</small></button>
</div>
</div>
<div class="chat-bubble" id="chatBubble">
<span id="chatText">Olá! Eu sou o escritório virtual da BrainSteel Fin.</span>
<!-- Apetite ao Risco -->
<div class="cockpit-card">
<div class="cockpit-card-header">
<span class="cockpit-icon">🛡️</span>
<h3>Apetite ao Risco</h3>
</div>
<p class="cockpit-desc">Nível de exigência do CEO Décio para operar.</p>
<div class="cockpit-options" id="riskOptions">
<button class="btn-opt" onclick="setRisk(75)">🔒 75% <small>Conservador</small></button>
<button class="btn-opt active" onclick="setRisk(70)">⚖️ 70% <small>Moderado</small></button>
<button class="btn-opt" onclick="setRisk(60)">💥 60% <small>Agressivo</small></button>
</div>
</div>
<!-- Capital e Alocação -->
<div class="cockpit-card">
<div class="cockpit-card-header">
<span class="cockpit-icon">💰</span>
<h3>Banca & Alocação</h3>
</div>
<p class="cockpit-desc">Capital virtual e limite de risco por trade.</p>
<div class="cockpit-inputs">
<label>Banca (USDT)
<input type="number" id="cockpitCapital" value="10000" onchange="saveConfigDebounced()">
</label>
<label>Mão Máx (%)
<input type="number" id="cockpitMaxAlloc" value="25" min="5" max="100" onchange="saveConfigDebounced()">
</label>
</div>
</div>
<!-- Balança Técnica vs Sentimento -->
<div class="cockpit-card">
<div class="cockpit-card-header">
<span class="cockpit-icon">⚖️</span>
<h3>Balança de Pesos</h3>
</div>
<p class="cockpit-desc">Foco analítico: Técnica pura vs Sentimento/Macro.</p>
<div class="cockpit-slider-wrap">
<div class="slider-labels">
<span>◄ Técnica (Gráficos)</span>
<span>Sentimento (Macro) ►</span>
</div>
<input type="range" id="cockpitWeight" min="0" max="100" value="50" onchange="saveConfigDebounced()" oninput="updateWeightLabel(this.value)">
<div class="slider-val" id="weightValLabel">Equilíbrio (50/50)</div>
</div>
</div>
</div>
<div class="cockpit-footer">
<span id="cockpitSaveStatus" class="save-status"></span>
</div>
</section>
<!-- Performance Multi-Estratégia (Corrida do Alpha) -->
<section class="multistrat-section">
<div class="multistrat-header">
<h2>📈 Performance Multi-Estratégia <span class="badge">A Corrida do Alpha</span></h2>
<div class="multistrat-controls">
<button class="btn-strat active" onclick="loadMultiStratChart('live')">🔴 Ao Vivo</button>
<button class="btn-strat" onclick="loadMultiStratChart(30)">📅 30 Dias</button>
<button class="btn-strat" onclick="loadMultiStratChart(60)">📅 60 Dias</button>
<button class="btn-strat" onclick="loadMultiStratChart(90)">📅 90 Dias</button>
</div>
</div>
<div class="multistrat-legend">
<span class="legend-item"><span class="legend-dot" style="background:#69f0ae"></span> Soberana (Décio) <b id="legSoberana">$10.000</b></span>
<span class="legend-item"><span class="legend-dot" style="background:#4fc3f7"></span> Agressiva (Brief) <b id="legAgressiva">$10.000</b></span>
<span class="legend-item"><span class="legend-dot" style="background:#ffd54f"></span> HODL (BTC Puro) <b id="legHodl">$10.000</b></span>
<span class="legend-item"><span class="legend-dot" style="background:#b388ff"></span> Sentimento (F&G) <b id="legSentimento">50%</b></span>
</div>
<div class="multistrat-chart-wrap">
<canvas id="multiStratCanvas" width="900" height="260"></canvas>
</div>
<div id="multistratSpinner" class="strat-spinner" style="display:none;">⚙️ Calculando máquina do tempo (Backtest Binance)...</div>
</section>
<!-- Item 1: Agent Registry -->