{error || 'Producto no encontrado'}
+ ++ {product.description} +
+Retorno acumulado
+= 0 ? 'text-green-500' : 'text-red-500'}`}> + {currentReturn >= 0 ? '+' : ''}{currentReturn.toFixed(2)}% +
++ No hay datos de rendimiento disponibles +
+ )} +Target Mensual
++ {product.targetReturnMin}% - {product.targetReturnMax}% +
+Max Drawdown
+{product.maxDrawdown}%
+Comisión de Gestión
+{product.managementFee}% anual
+Comisión de Éxito
+{product.performanceFee}% sobre ganancias
++ Mínimo: ${product.minInvestment.toLocaleString()} +
++ Tu inversión será gestionada automáticamente por nuestros agentes de IA. + Podrás retirar fondos en cualquier momento. +
++ Advertencia de riesgo: El trading de activos financieros conlleva riesgos significativos. + Los rendimientos pasados no garantizan rendimientos futuros. Los rendimientos objetivo son estimados + y pueden variar. Solo invierte lo que puedas permitirte perder. +
+{error}
+ ++ Análisis de rendimiento de inversiones +
++ ${summary.totalBalance.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
++ ${summary.totalDeposited.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+= 0 ? 'text-green-500' : 'text-red-500'}`}> + {summary.overallReturn >= 0 ? '+' : ''}${Math.abs(summary.overallReturn).toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+= 0 ? 'text-green-500' : 'text-red-500'}`}> + {summary.overallReturnPercent >= 0 ? '+' : ''}{summary.overallReturnPercent.toFixed(2)}% +
++ ${summary.totalWithdrawn.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
++ No hay cuentas para mostrar +
+ )} ++ No hay datos de rendimiento +
+ )} +| + Cuenta + | ++ Balance + | ++ Invertido + | ++ Ganancias + | ++ Retorno + | +
|---|---|---|---|---|
|
+
+ {account.product.name}
+
+ + {account.product.riskProfile} + + |
+ + ${account.balance.toLocaleString(undefined, { minimumFractionDigits: 2 })} + | ++ ${account.totalDeposited.toLocaleString(undefined, { minimumFractionDigits: 2 })} + | += 0 ? 'text-green-500' : 'text-red-500'}`}> + {totalReturn >= 0 ? '+' : ''}${Math.abs(totalReturn).toLocaleString(undefined, { minimumFractionDigits: 2 })} + | += 0 ? 'text-green-500' : 'text-red-500'}`}> + {returnPercent >= 0 ? '+' : ''}{returnPercent.toFixed(2)}% + | +
{config.label}
+ + {transaction.status} + ++ {new Date(transaction.createdAt).toLocaleDateString()} - {transaction.description || transaction.accountName || 'Sin descripción'} +
++ {config.sign}${Math.abs(transaction.amount).toLocaleString(undefined, { minimumFractionDigits: 2 })} +
++ Balance: ${transaction.balanceAfter.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
++ Historial completo de movimientos +
+Depósitos
++ +${stats.deposits.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+Retiros
++ -${stats.withdrawals.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+Distribuciones
++ +${stats.distributions.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+Comisiones
++ -${stats.fees.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+{error}
+ ++ {typeFilter === 'all' + ? 'Aún no tienes transacciones registradas' + : `No hay transacciones de tipo "${typeOptions.find(f => f.value === typeFilter)?.label}"`} +
+ + Ir al Portfolio + ++ ${withdrawal.amount.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
++ {new Date(withdrawal.requestedAt).toLocaleDateString()} {new Date(withdrawal.requestedAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} +
++ Motivo: {withdrawal.rejectionReason} +
++ Historial de solicitudes de retiro +
+Total Solicitudes
+{stats.total}
+En Proceso
+{stats.pending}
+Completados
+{stats.completed}
+Total Retirado
++ ${stats.totalAmount.toLocaleString(undefined, { minimumFractionDigits: 2 })} +
+{error}
+ ++ {statusFilter === 'all' + ? 'Aún no has solicitado ningún retiro' + : `No hay retiros con estado "${filterOptions.find(f => f.value === statusFilter)?.label}"`} +
+ + Ir al Portfolio + +