feat: wavelets simulation
This commit is contained in:
@@ -396,6 +396,8 @@ export default function WaveletsSimulation() {
|
||||
<th className="pr-3 text-right">Retour</th>
|
||||
<th className="pr-3 text-right">Win rate</th>
|
||||
<th className="pr-3 text-right">Trades</th>
|
||||
<th className="pr-3 text-right" title="Gain moyen / max / min parmi les trades gagnants — un gain max qui écrase les autres révèle un résultat porté par un seul trade, pas une vraie récurrence">Gains (moy/max/min)</th>
|
||||
<th className="pr-3 text-right" title="Perte moyenne / la pire / la plus petite parmi les trades perdants">Pertes (moy/max/min)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -414,10 +416,16 @@ export default function WaveletsSimulation() {
|
||||
</td>
|
||||
<td className="pr-3 text-right font-mono text-slate-300">{(r.winRate * 100).toFixed(0)}%</td>
|
||||
<td className="pr-3 text-right font-mono text-slate-300">{r.tradeCount}</td>
|
||||
<td className="pr-3 text-right font-mono text-emerald-400/90 whitespace-nowrap">
|
||||
{r.avgGainPct != null ? `${r.avgGainPct.toFixed(1)} / ${r.maxGainPct!.toFixed(1)} / ${r.minGainPct!.toFixed(1)}` : '—'}
|
||||
</td>
|
||||
<td className="pr-3 text-right font-mono text-red-400/90 whitespace-nowrap">
|
||||
{r.avgLossPct != null ? `${r.avgLossPct.toFixed(1)} / ${r.maxLossPct!.toFixed(1)} / ${r.minLossPct!.toFixed(1)}` : '—'}
|
||||
</td>
|
||||
</tr>
|
||||
{expandedRow === i && (
|
||||
<tr key={`${i}-detail`} className="bg-dark-900/40">
|
||||
<td colSpan={9} className="p-2">
|
||||
<td colSpan={11} className="p-2">
|
||||
<div className="text-[10px] text-slate-500 mb-1">Détail par instrument (même config)</div>
|
||||
<div className="grid grid-cols-4 gap-1.5">
|
||||
{perSymbolBreakdown(r).map((d, j) => (
|
||||
|
||||
Reference in New Issue
Block a user