v0.02

Mercados são dados.
Dados são imutáveis.
Vantagem é arquitetura.

Little Trader não é um app de trading. É um sistema funcional onde cada tick, cada brick, cada decisão existe como um fato — nunca sobrescrito, sempre auditável, perpetuamente composto.

;; the market speaks in ticks
;; we listen in immutable facts
(defn edge [market]
  (->> market
    (stream/consume!)
    (brick/generate)
    (signal/detect)
    (mel/advise)
    (execute/decide!)))
01

Pulsar: Streams imutáveis na velocidade do mercado

O mercado não espera. Cada milissegundo carrega informação que morre se não for capturada. Nosso fs-worker é a fonte única de verdade — um processo dedicado que se conecta diretamente às exchanges via WebSocket, consome cada tick, cada book update, cada trade, e os persiste em streams Pulsar imutáveis.

Nenhum dado é descartado. Nenhum estado é sobrescrito. O stream é o log. O log é a verdade. O sistema inteiro — do backtest à produção — consome dos mesmos fatos, na mesma ordem, com a mesma semântica.

;; fs-worker: single source of truth
;; exchange → websocket → pulsar topic

deribit/BTC-PERPETUAL
  → ws://deribit.com/ws/api/v2
    → pulsar://persistent/market/btc-perp-ticksconsumer-group: backtestconsumer-group: paperconsumer-group: production

;; same data. same order. every time.
02

Datomic + Fulcro: Onde CRUD morre e dados vivem para sempre

;; Datomic: open schema, accretion-only
;; add attributes whenever you need them
(d/transact conn
  [{:db/ident       :trade/conviction
    :db/valueType   :db.type/double
    :db/cardinality :db.cardinality/one}])

;; no migrations. no downtime. just grow.

;; Fulcro: the UI is the query
(defsc Trade [this props]
  {:query [:trade/id :trade/side
          :trade/entry-price
          :trade/conviction]  ; ← just added
   :ident :trade/id}
  ;; UI auto-normalizes. No reducers.
  ;; No action creators. No boilerplate.
  (render-trade props))

Datomic não é um banco de dados. É uma linha do tempo. Cada fato tem um timestamp. Cada schema é aditivo — nunca destrutivo. Precisa de um novo atributo? Transacione. Sem migrations, sem downtime, sem medo. O schema cresce com o sistema, não contra ele.

Fulcro fecha o circuito: o componente UI declara os dados que precisa como uma query EQL. O Pathom resolve. O estado se normaliza automaticamente. Não existe reducer, não existe action creator, não existe boilerplate. Você declara o que quer ver — o framework entrega.

03

Motor de execução portado: Do backtest ao mercado vivo

O mesmo motor que roda contra dois anos de dados históricos em segundos é o mesmo motor que executa ordens reais no Deribit. Não há duas implementações. Não há 'modo simulação' separado do 'modo produção'. Existe um pipeline de dados, uma cadeia de interceptores, uma lógica de decisão.

Bricks Renko transformam caos de preço em estrutura. Clara Rules detecta padrões como fatos lógicos. O motor decide — entrar, sair, ajustar stop, escalar posição — tudo como composição de funções puras sobre dados imutáveis.

;; one engine. three modes. zero drift.

(def execution-modes
  {:backtest   {:source  pulsar/historical
               :sink    datomic/sim-trades}
   :paper      {:source  pulsar/live-stream
               :sink    datomic/paper-trades}
   :production {:source  pulsar/live-stream
               :sink    deribit/real-orders}})

;; Clara Rules: patterns as logic
(defrule double-brick-reversal
  [Brick (= direction +1) (= idx ?i)]
  [Brick (= direction +1) (= idx (inc ?i))]
  [Brick (= direction -1) (= idx (+ ?i 2))]
  =>
  (insert! (->Signal :long :double-brick)))
04

Mel: A assistente local que nunca esquece

;; Mel runs in-browser via Cherry runtime
;; she sees what you see. knows what the
;; system knows. advises from the data.

mel> "BTC dropped 3 bricks in 20 min.
      Your trailing stop saved 1.2% on the
      last trade. Similar pattern 47 times
      in backtest — 68% reversal within
      5 bricks. Want me to tighten the
      stop or let the thesis play out?"

;; not a chatbot. a copilot.
;; grounded in YOUR data.
;; running on YOUR machine.

Mel não é um chatbot genérico. Ela é uma assistente local que roda no navegador via Cherry runtime, com acesso total aos dados do sistema — trades, sinais, bricks, métricas de backtest, posições abertas. Ela não alucina. Ela consulta.

Quando Mel diz que um padrão apareceu 47 vezes no backtest com 68% de reversão, é porque ela acabou de rodar a query contra o Datomic. Quando sugere apertar o stop, é porque analisou a volatilidade atual contra o ATR histórico. Ela é a ponte entre a intuição do trader e a memória perfeita da máquina.

05

Do crossover ao neural: Estratégia como espectro

Nível 1

Crossovers & Indicadores

Médias móveis, DEMA, RSI. As ferramentas clássicas. Simples, auditáveis, ponto de entrada para qualquer trader. O sistema não julga — executa.

Nível 2

Renko Bricks & Padrões

Renko filtra o ruído. Cada brick é uma decisão do mercado. Single-brick, double-brick, multi-brick — padrões detectados por Clara Rules como fatos lógicos, não heurísticas frágeis.

Nível 3

Convexidade & Volatilidade

Estratégia de convexidade: perder pouco muitas vezes, ganhar muito poucas vezes. Regime de volatilidade via ATR percentile, posicionamento dinâmico, trailing stops adaptativos. O edge não está na previsão — está na assimetria.

Nível 4

Opções & Estruturas

Venda de volatilidade em cripto com Deribit. Near-expiry, spreads, gestão de gregas. O mesmo motor, os mesmos dados, um instrumento diferente para capturar o prêmio do tempo.

Nível 5

Quant NN & LLM Advisory

Redes neurais treinadas em features extraídas dos bricks. LLM advisory ponderado por confiança. Não para substituir o trader — para dar a ele uma memória de 100.000 trades e um instinto calibrado por dados.

06

Um sistema, não uma coleção de ferramentas

🌊

Deribit WS

Tick data

fs-worker

Captura & persiste

📡

Pulsar

Streams imutáveis

🧱

Renko + Clara

Bricks & sinais

🧠

Mel + Engine

Decisão & execução

💎

Datomic

Memória eterna

Leia o código. Entenda a decisão.

Toda a documentação técnica, guias de arquitetura e materiais de aprendizado.

📂 Repositório no GitHub

Selecione um documento na barra lateral