https://github.com/vitalcheffe/sense-act-core
does follower count actually predict signal quality in oil markets? built this to find out. shadow mode — no real money, real architecture
https://github.com/vitalcheffe/sense-act-core
algorithmic-trading asyncio finbert genetic-algorith nlp oil-markets python sentiment-analysis
Last synced: 3 months ago
JSON representation
does follower count actually predict signal quality in oil markets? built this to find out. shadow mode — no real money, real architecture
- Host: GitHub
- URL: https://github.com/vitalcheffe/sense-act-core
- Owner: Vitalcheffe
- License: mit
- Created: 2026-03-03T02:58:50.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-28T16:44:28.000Z (3 months ago)
- Last Synced: 2026-03-28T18:31:25.645Z (3 months ago)
- Topics: algorithmic-trading, asyncio, finbert, genetic-algorith, nlp, oil-markets, python, sentiment-analysis
- Language: Python
- Homepage:
- Size: 220 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SENSE-ACT
Sentiment arbitrage engine for oil markets.
Shadow mode — no real money, real architecture.
---
A Ras Tanura pipeline engineer with 200 followers posts something on Twitter. Oil futures move 3 minutes later. Reuters publishes the same story 8 minutes after that. By then it's already priced in.
The signal was never in the follower count. It was in the information type.
---
## What It Does
Shadow-mode sentiment arbitrage engine tuned for oil/energy. Replaces standard follower-count weighting with explicit domain expertise scoring. The architecture is production-grade. The execution is virtual.
---
## Signal Flow
```
RSS/News API -> FinBERT scoring -> Semantic dedup (cosine) -> Welford z-score
-> Half-life decay -> Influence weighting -> Kill-switch check
-> Monte Carlo slippage -> Shadow book
```
---
## Key Components
| Component | What It Does |
|-----------|-------------|
| **FinBERT** | ProsusAI/finbert for financial text sentiment. Handles "maintains output despite pressure" correctly. |
| **Semantic Dedup** | Catches Reuters headline + Bloomberg paraphrase. Cosine similarity, threshold 0.82. |
| **Welford z-score** | Single-pass variance, O(1) storage. Flags anomalies in real-time. |
| **Half-life decay** | Signals lose 50% weight every 120s. Consistent with Hasbrouck (1991). |
| **Kill-switch** | Halts if spread or VIX doubles in 60 seconds. |
| **Monte Carlo slippage** | Realistic execution cost modeling. |
---
## Influence Weighting
```
weight = log10(followers) * hub_boost * domain_expertise * accuracy
```
A hub account with domain expertise gets 2.5x boost. A broadcast megaphone with 800K followers that just reposts Reuters 6 minutes late isn't worth much.
---
## Quick Start
```bash
pip install -r requirements.txt
# Run the backtest
python backtest.py
# Launch the dashboard
python dashboard.py
# Start the signal processor
python orchestrator.py
```
## Tests
```bash
python run_tests.py
# 30/30 passing
```
---
## License
MIT.