
Security News
Federal Audit Finds NIST Wasted Funds With No Plan to Clear NVD Backlog
Federal audit finds NIST lacked a plan to clear the NVD backlog, wasted funds on duplicate work, and delayed use of CISA data.
@backtest-kit/sidekick
Advanced tools
The easiest way to create a new Backtest Kit trading bot project. Like create-react-app, but for algorithmic trading with LLM integration and technical analysis.
The easiest way to create a new Backtest Kit trading bot project. Scaffolds a multi-timeframe crypto trading strategy with Pine Script indicators via PineTS runtime, 4H trend filter + 15m signal generator, partial profit taking, breakeven trailing stops, and risk validation.

📚 Backtest Kit Docs | 🌟 GitHub
@backtest-kit/pinets@backtest-kit/uiNew to backtest-kit? The fastest way to get a real, production-ready setup is to clone the reference implementation — a fully working news-sentiment AI trading system with LLM forecasting, multi-timeframe data, and a documented February 2026 backtest. Start there instead of from scratch.
npx -y @backtest-kit/sidekick my-trading-bot
cd my-trading-bot
npm start
That's it! You now have a working trading bot with:
my-trading-bot/
├── src/
│ ├── index.mjs # Entry point — loads config, logic, bootstrap
│ ├── main/bootstrap.mjs # Mode dispatcher (backtest / paper / live)
│ ├── config/
│ │ ├── setup.mjs # Logger, storage, notifications, UI server
│ │ ├── validate.mjs # Schema validation for all enums
│ │ ├── params.mjs # Environment variables (Ollama API key)
│ │ └── ccxt.mjs # Binance exchange singleton via CCXT
│ ├── logic/
│ │ ├── strategy/main.strategy.mjs # Main strategy — multi-TF signal logic
│ │ ├── exchange/binance.exchange.mjs # Exchange schema — candles, order book, formatting
│ │ ├── frame/*.frame.mjs # Backtest time frames (Feb 2024, Oct–Dec 2025)
│ │ ├── risk/sl_distance.risk.mjs # Stop-loss distance validation (≥0.2%)
│ │ ├── risk/tp_distance.risk.mjs # Take-profit distance validation (≥0.2%)
│ │ └── action/
│ │ ├── backtest_partial_profit_taking.action.mjs
│ │ ├── backtest_lower_stop_on_breakeven.action.mjs
│ │ └── backtest_position_monitor.action.mjs
│ ├── classes/
│ │ ├── BacktestPartialProfitTakingAction.mjs # Scale out at 3 TP levels
│ │ ├── BacktestLowerStopOnBreakevenAction.mjs # Trailing stop on breakeven
│ │ └── BacktestPositionMonitorAction.mjs # Position event logger
│ ├── math/
│ │ ├── timeframe_4h.math.mjs # 4H trend data — RSI, MACD, ADX, DI+/DI-
│ │ └── timeframe_15m.math.mjs # 15m signal data — EMA, ATR, volume, momentum
│ ├── enum/ # String constants for type-safe schema refs
│ └── utils/getArgs.mjs # CLI argument parser with defaults
├── config/source/
│ ├── timeframe_4h.pine # Pine Script v5 — Daily Trend Filter (RSI/MACD/ADX)
│ └── timeframe_15m.pine # Pine Script v5 — Signal Strategy (EMA/ATR/Volume)
├── scripts/
│ ├── run_timeframe_15m.mjs # Standalone 15m Pine Script runner
│ ├── run_timeframe_4h.mjs # Standalone 4H Pine Script runner
│ └── cache/
│ ├── cache_candles.mjs # Pre-download OHLCV candles (1m/15m/4h)
│ ├── validate_candles.mjs # Verify cached candle data integrity
│ └── cache_model.mjs # Pull Ollama LLM model with progress bar
├── docker/ollama/
│ ├── docker-compose.yaml # Ollama GPU container setup
│ └── watch.sh # nvidia-smi monitor
├── CLAUDE.md # AI strategy development guide
├── .env # Environment variables
└── package.json # Dependencies
timeframe_4h.pine)Determines the market regime using three indicators:
| Regime | Condition |
|---|---|
| AllowLong | ADX > 25, MACD histogram > 0, DI+ > DI-, RSI > 50 |
| AllowShort | ADX > 25, MACD histogram < 0, DI- > DI+, RSI < 50 |
| AllowBoth | Strong trend but no clear bull/bear regime |
| NoTrades | ADX ≤ 25 (weak trend) |
timeframe_15m.pine)Generates entry signals with EMA crossover confirmed by volume and momentum:
| Frame | Period | Market Note |
|---|---|---|
February2024 | Feb 1–29, 2024 | Bull run |
October2025 | Oct 1–31, 2025 | Sharp drop Oct 9–11 |
November2025 | Nov 1–30, 2025 | Sideways with downtrend |
December2025 | Dec 1–31, 2025 | Sideways, no clear direction |
# Create project with custom name
npx -y @backtest-kit/sidekick my-bot
# Create in current directory (must be empty)
npx -y @backtest-kit/sidekick .
| Package | Purpose |
|---|---|
| backtest-kit | Core backtesting/trading framework |
| @backtest-kit/pinets | Pine Script v5 runtime for Node.js |
| @backtest-kit/ui | Interactive charting dashboard |
| @backtest-kit/ollama | LLM inference integration |
| ccxt | Binance exchange connectivity |
| functools-kit | singleshot, randomString utilities |
| pinolog | File-based structured logging |
| openai | OpenAI API client |
| ollama | Ollama local LLM client |
Found a bug or want to add a feature? Open an issue or submit a PR!
MIT © tripolskypetr
FAQs
The easiest way to create a new Backtest Kit trading bot project. Like create-react-app, but for algorithmic trading with LLM integration and technical analysis.
The npm package @backtest-kit/sidekick receives a total of 541 weekly downloads. As such, @backtest-kit/sidekick popularity was classified as not popular.
We found that @backtest-kit/sidekick demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Federal audit finds NIST lacked a plan to clear the NVD backlog, wasted funds on duplicate work, and delayed use of CISA data.

Research
/Security News
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.

Research
/Security News
The North Korean malware loader hides in a Packagist-listed package and its GitHub branch to fetch and execute remote code in a likely Contagious Interview-style lure.