anti-gambling-trader-tw
免費開源的投資反詐、交易統計與自動化交易程式工具:預設 PaperBroker,提供 14 種券商/交易所選項;交易紀錄分析在本機執行。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Dashboard com câmbio (dólar e euro em reais), juros e inflação (Selic, CDI, IPCA), as principais bolsas (Ibovespa, S&P 500, Nasdaq, Dow Jones, FTSE 100, Nikkei 225, Hang Seng) e commodities (petróleo Brent e ouro).
Requer Node.js 20.6 ou superior. Não há dependências para instalar.
cp .env.example .env # preencha as chaves
npm start # http://localhost:3000
Para ver o painel sem chaves nem internet: npm run demo (dados fictícios, sinalizados na tela).
Sem DEMO=1, o painel mostra apenas dados reais.
A forma mais simples é a Vercel, plano grátis:
vercel.json já cuida disso).BRAPI_TOKEN, FMP_API_KEY e
AWESOME_API_KEY. Depois, em Deployments, clique em Redeploy.https://dashboard-bolsas.vercel.app) no seu painel de BI.As cotações ficam em cache na CDN da Vercel: não importa quantas telas estejam abertas, cada fonte é consultada no máximo no ritmo descrito em "Frequência de atualização".
Opções no link (podem ser combinadas: ?modo=tv&tema=escuro)
?tema=escuro ou ?tema=claro força o tema (por padrão segue o sistema).?modo=tv força esse layout em qualquer tela; ?modo=normal força o layout com rolagem.Armazenamento (recomendado): ligue um Upstash Redis grátis ao projeto na Vercel
(Storage → Create Database → Upstash for Redis → Connect Project) e faça um Redeploy.
Com ele, as cotações ficam guardadas entre execuções, a última cotação boa cobre falhas das fontes
e a FMP tem um teto rígido de 200 consultas por dia (DAILY_BUDGET em src/config.js).
Confira em /api/status: "armazenamento": "redis" e o total de consultas do dia.
Embutindo no BI
<iframe src="https://SEU-LINK.vercel.app/?tema=claro" width="100%" height="100%"></iframe>.
Em relatórios, use um visual de conteúdo HTML/Web da AppSource que aceite URL.Cada ativo tem uma lista de fontes em src/config.js, tentadas em ordem até uma responder.
| Dados | Fontes (em ordem) | Chave |
|---|---|---|
| Ibovespa e ativos da B3 | brapi.dev | BRAPI_TOKEN (plano grátis) |
| S&P 500, Nasdaq, Dow Jones, FTSE 100, Nikkei, Hang Seng | Financial Modeling Prep | FMP_API_KEY (plano grátis) |
| Selic, CDI, IPCA 12 meses | Banco Central (SGS) | Não precisa |
| Petróleo Brent, ouro | Financial Modeling Prep | FMP_API_KEY |
| Dólar e euro | brapi → AwesomeAPI → PTAX do Banco Central → Frankfurter/BCE | AWESOME_API_KEY recomendada (sem ela, na Vercel, o câmbio cai para as cotações diárias) |
| DAX, CAC 40 | Desativados (enabled: false): fora do plano grátis da FMP, e a Stooq bloqueia a Vercel | — |
Na Vercel, a AwesomeAPI devolve 429, a Stooq devolve 403 e a FMP grátis não cobre câmbio com real.
A API do Banco Central também costuma não responder a servidores fora do Brasil. Por isso o
vercel.json fixa a função na região gru1 (São Paulo). PTAX e Frankfurter são cotações diárias;
o card mostra qual fonte está em uso.
Se todas as fontes de um ativo falharem, o card mostra Indisponível com o motivo. O painel
nunca exibe números fictícios fora do modo demo (npm run demo).
A tela pergunta ao servidor a cada minuto, mas cada cotação só é buscada de novo na fonte quando
seu prazo vence (valores em REFRESH_MINUTES, em src/config.js):
| Ativo | Pregão aberto | Pregão fechado |
|---|---|---|
| Dólar e euro (AwesomeAPI) | a cada 2 min (09h–18h, horário de Brasília) | guarda a última até a abertura |
| Ibovespa (brapi) | a cada 5 min | guarda a última até a abertura |
| Bolsas globais (FMP) | a cada 30 min | guarda a última até a abertura |
| Brent e ouro (FMP) | a cada 1 h (09h–18h, horário de Brasília) | guarda a última até as 9h |
| Selic, CDI, IPCA (Banco Central) | a cada 6 h | a cada 6 h |
| Gráficos de 30 dias | a cada 12 h | a cada 12 h |
Isso mantém a FMP em torno de 140 consultas por dia, abaixo do limite grátis de 250. Cada card mostra a fonte e o horário da cotação.
navegador ──/api/assets, /api/quote?id=…, /api/history?id=…──▶ api/*.js (Vercel) ou src/server.js
▲ (cotações a cada 1 min, gráficos a cada 30 min) │ cache da CDN com prazo por ativo
└──────────────── public/ (HTML, CSS, JS) ◀────────────────── src/markets.js → src/providers.js
src/page.js, api/page.js) já com os números, e se
recarrega a cada 5 min. Assim funciona em painéis de BI que não rodam JavaScript. Onde ele roda,
public/app.js atualiza os números a cada minuto sem recarregar.public/render.js, usado pelo servidor e pelo navegador.src/config.js. Ex.: { provider: 'brapi', symbol: 'PETR4', ... }
para uma ação da B3, ou { pair: 'BTC-BRL', name: 'Bitcoin' } em CURRENCIES.src/providers.js um objeto com quote(símbolo) e history(símbolo),
exporte-o e use o nome dele em sources no src/config.js.src/config.js ativos, fusos e horários de pregão
src/providers.js integração com cada API + dados demo
src/markets.js escolhe a fonte, define o prazo de cada cotação e as rotas /api/*
src/store.js armazenamento compartilhado (Upstash Redis na Vercel; memória sem ele)
src/server.js servidor HTTP local (npm start), com cache em memória
api/*.js as mesmas rotas como funções serverless da Vercel
public/ estilos, render.js (HTML das partes) e app.js (atualização no navegador)
src/page.js página completa montada no servidor