🚀 Auto-deploy: Add background automated scheduler, Kelly allocation, multi-portfolio simulations, and UI improvements
This commit is contained in:
+89
-8
@@ -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 -->
|
||||
|
||||
Reference in New Issue
Block a user