|
|
@@ -7,6 +7,7 @@
|
|
|
import { writable } from 'svelte/store';
|
|
|
import { onMount } from 'svelte';
|
|
|
import { browser } from '$app/environment';
|
|
|
+ import { ordensCompra as ordensCompraMock, ordensVenda as ordensVendaMock, startOrdensSimulator } from '$lib/mock/ordens.js';
|
|
|
|
|
|
const breadcrumb = [{ label: 'Início' }, { label: 'Trading', active: true }];
|
|
|
|
|
|
@@ -23,6 +24,27 @@
|
|
|
if (saved) orders.set(JSON.parse(saved));
|
|
|
} catch {}
|
|
|
}
|
|
|
+
|
|
|
+ const stopSimCompra = startOrdensSimulator({
|
|
|
+ get: () => ordensCompra,
|
|
|
+ set: (next) => { ordensCompra = next; },
|
|
|
+ intervalMs: 1500,
|
|
|
+ maxItems: 60,
|
|
|
+ minItems: 8
|
|
|
+ });
|
|
|
+
|
|
|
+ const stopSimVenda = startOrdensSimulator({
|
|
|
+ get: () => ordensVenda,
|
|
|
+ set: (next) => { ordensVenda = next; },
|
|
|
+ intervalMs: 1500,
|
|
|
+ maxItems: 60,
|
|
|
+ minItems: 8
|
|
|
+ });
|
|
|
+
|
|
|
+ return () => {
|
|
|
+ stopSimCompra?.();
|
|
|
+ stopSimVenda?.();
|
|
|
+ };
|
|
|
});
|
|
|
|
|
|
function addOrder(order) {
|
|
|
@@ -120,19 +142,49 @@ $: displayPendingSells = pendingSells.map((o) => ({
|
|
|
$: selectedCommodityObj = tokens.find((t) => t.id === selectedCommodity);
|
|
|
$: selectedCommodityLabel = selectedCommodityObj?.label || selectedCommodityObj?.name;
|
|
|
|
|
|
+ let ordensCompra = ordensCompraMock.slice();
|
|
|
+ let ordensVenda = ordensVendaMock.slice();
|
|
|
+ $: ultimaVenda = (ordensVenda && ordensVenda.length)
|
|
|
+ ? { valor: Number(ordensVenda[ordensVenda.length - 1]?.valor ?? 0), quantidade: Number(ordensVenda[ordensVenda.length - 1]?.quantidade ?? 0) }
|
|
|
+ : { valor: 0, quantidade: 0 };
|
|
|
+
|
|
|
const dadosMock = [
|
|
|
- { date: '2025-10-01', valor: 9.98 },
|
|
|
- { date: '2025-10-02', valor: 10.01 },
|
|
|
- { date: '2025-10-03', valor: 9.97 },
|
|
|
- { date: '2025-10-04', valor: 10.02 },
|
|
|
- { date: '2025-10-05', valor: 10.00 },
|
|
|
- { date: '2025-10-06', valor: 9.99 },
|
|
|
- { date: '2025-10-07', valor: 10.03 },
|
|
|
- { date: '2025-10-08', valor: 9.96 },
|
|
|
- { date: '2025-10-09', valor: 10.05 },
|
|
|
- { date: '2025-10-10', valor: 10.01 },
|
|
|
- { date: '2025-10-11', valor: 10.04 },
|
|
|
- { date: '2025-10-12', valor: 9.98 }
|
|
|
+ { date: '2025-10-01', valor: 9.98, high: 10.05, low: 9.90 },
|
|
|
+ { date: '2025-10-02', valor: 10.12, high: 10.25, low: 9.95 },
|
|
|
+ { date: '2025-10-03', valor: 9.85, high: 9.92, low: 9.60 },
|
|
|
+ { date: '2025-10-04', valor: 10.30, high: 10.55, low: 10.10 },
|
|
|
+ { date: '2025-10-05', valor: 10.05, high: 10.20, low: 9.85 },
|
|
|
+ { date: '2025-10-06', valor: 9.70, high: 9.85, low: 9.45 },
|
|
|
+ { date: '2025-10-07', valor: 10.45, high: 10.75, low: 10.25 },
|
|
|
+ { date: '2025-10-08', valor: 10.60, high: 10.80, low: 10.40 },
|
|
|
+ { date: '2025-10-09', valor: 9.55, high: 9.70, low: 9.20 }, // forte queda
|
|
|
+ { date: '2025-10-10', valor: 9.30, high: 9.50, low: 9.00 }, // fundo do poço
|
|
|
+ { date: '2025-10-11', valor: 9.85, high: 10.00, low: 9.60 }, // leve recuperação
|
|
|
+ { date: '2025-10-12', valor: 10.50, high: 10.80, low: 10.30 }, // disparada
|
|
|
+ { date: '2025-10-13', valor: 10.75, high: 11.10, low: 10.60 },
|
|
|
+ { date: '2025-10-14', valor: 10.95, high: 11.20, low: 10.80 }, // pico máximo
|
|
|
+ { date: '2025-10-15', valor: 10.40, high: 10.60, low: 10.10 },
|
|
|
+ { date: '2025-10-16', valor: 10.10, high: 10.25, low: 9.90 },
|
|
|
+ { date: '2025-10-17', valor: 9.85, high: 9.95, low: 9.60 },
|
|
|
+ { date: '2025-10-18', valor: 9.20, high: 9.35, low: 8.95 }, // nova queda brusca
|
|
|
+ { date: '2025-10-19', valor: 8.85, high: 9.00, low: 8.55 },
|
|
|
+ { date: '2025-10-20', valor: 9.50, high: 9.70, low: 9.20 },
|
|
|
+ { date: '2025-10-21', valor: 9.95, high: 10.10, low: 9.80 },
|
|
|
+ { date: '2025-10-22', valor: 10.25, high: 10.50, low: 10.05 },
|
|
|
+ { date: '2025-10-23', valor: 10.90, high: 11.15, low: 10.75 }, // novo pico
|
|
|
+ { date: '2025-10-24', valor: 11.40, high: 11.75, low: 11.10 },
|
|
|
+ { date: '2025-10-25', valor: 13.75, high: 13.95, low: 13.50 },
|
|
|
+ { date: '2025-10-26', valor: 13.60, high: 13.80, low: 13.40 },
|
|
|
+ { date: '2025-10-27', valor: 9.30, high: 9.45, low: 9.00 }, // queda acentuada
|
|
|
+ { date: '2025-10-28', valor: 9.10, high: 9.25, low: 8.80 },
|
|
|
+ { date: '2025-10-29', valor: 9.60, high: 9.80, low: 9.40 },
|
|
|
+ { date: '2025-10-30', valor: 10.25, high: 10.50, low: 10.05 },
|
|
|
+ { date: '2025-10-31', valor: 10.80, high: 11.00, low: 10.65 }, // novo rally
|
|
|
+ { date: '2025-11-01', valor: 11.20, high: 11.45, low: 11.00 },
|
|
|
+ { date: '2025-11-02', valor: 10.95, high: 11.10, low: 10.70 },
|
|
|
+ { date: '2025-11-03', valor: 10.50, high: 10.65, low: 10.30 },
|
|
|
+ { date: '2025-11-04', valor: 9.80, high: 9.95, low: 9.55 }, // nova correção
|
|
|
+ { date: '2025-11-05', valor: 10.05, high: 10.30, low: 9.85 }
|
|
|
];
|
|
|
</script>
|
|
|
|
|
|
@@ -165,7 +217,7 @@ $: displayPendingSells = pendingSells.map((o) => ({
|
|
|
<div class="p-4 space-y-4">
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
<div class="md:col-span-1">
|
|
|
- <TabelaOrdens />
|
|
|
+ <TabelaOrdens {ordensCompra} {ordensVenda} {ultimaVenda} />
|
|
|
</div>
|
|
|
<div class="md:col-span-2">
|
|
|
<GraficoCandlestick {dadosMock} />
|