DEV Community

Naption
Naption

Posted on

I Built an Autonomous Crypto Trading Bot That Runs 24/7 on My Mac for $0/Month

Most crypto trading bot tutorials assume you have a cloud server, Docker, and a monthly bill.

I built one that runs as a native macOS daemon. Zero cloud. Zero cost. It fires every 5 minutes, checks momentum signals, executes on Kraken, and pings me on Telegram within seconds of every trade.

Here's the architecture.

The Stack

  • Execution: Kraken API (low fees, solid liquidity for SOL/BTC)
  • Strategy: Momentum — buys when price crosses above 20-period SMA, exits on 5% stop-loss or 10% take-profit
  • Runtime: launchd daemon (auto-starts on boot, auto-restarts on crash)
  • Secrets: macOS Keychain — 27 API keys, zero hardcoded credentials
  • Alerts: Telegram bot — instant notification on every trade, stop-loss trigger, and 5%+ market move

Why Local Beats Cloud

Every millisecond matters in trading. Cloud servers add:

  • Network latency to your exchange
  • Monthly hosting bills ($20-100/month)
  • A single point of failure at 3am during a flash crash

launchd on macOS gives you:

  • Process supervision (auto-restart on crash)
  • Boot persistence (starts on login, survives reboots)
  • Zero cost (your Mac is already on)

The Core: Kraken API Signing

Kraken requires HMAC-SHA512 signing for private endpoints. Here's the pattern:

import hashlib, hmac, base64

def kraken_sign(path, nonce, data, secret):
    secret_bytes = base64.b64decode(secret)
    sha256 = hashlib.sha256((nonce + data).encode()).digest()
    sig = hmac.new(secret_bytes, path.encode() + sha256, hashlib.sha512).digest()
    return base64.b64encode(sig).decode()
Enter fullscreen mode Exit fullscreen mode

Credentials never touch a config file — they live in macOS Keychain:

# Store
security add-generic-password -s "magic-vault" -a "KRAKEN_API_KEY" -w "your-key"

# Retrieve at runtime
KRAKEN_KEY=$(security find-generic-password -s "magic-vault" -a "KRAKEN_API_KEY" -w)
Enter fullscreen mode Exit fullscreen mode

The Strategy: Momentum + Hard Stops

Every 5 minutes, the bot:

  1. Fetches current SOL price from Kraken
  2. Calculates 20-period SMA from hourly candles
  3. If price > SMA and we have USD → BUY (momentum confirmation)
  4. If holding and down 5% from entry → STOP LOSS (hard exit)
  5. If holding and up 10% from entry → TAKE PROFIT
  6. Fires Telegram alert on every action

Simple. No fancy ML. No sentiment analysis. Just momentum with discipline.

The Daemon

<plist version="1.0">
<dict>
  <key>Label</key>
  <string>ai.naption.predator</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/path/to/predator.sh</string>
  </array>
  <key>StartInterval</key>
  <integer>300</integer>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
Enter fullscreen mode Exit fullscreen mode

launchctl load and it's running. Forever. Survives reboots, survives crashes.

The Companion: Market Scout

A second daemon watches for 5%+ moves on SOL and BTC. Think of it as your early warning system — it fires a Telegram alert before your trading bot even needs to act.

Production Hardening

  • State in ~/.openclaw/state/ not /tmp/ (survives reboots)
  • Circuit breaker: 3 consecutive API failures → auto-disable + Telegram alert
  • Revenue logging: every trade appends to a JSONL file for analysis
  • Entry/exit tracking: position state persists across daemon restarts

Results

The system is running live right now. SOL at $78, watching for momentum entry signals. The bot doesn't care if I'm sleeping, working, or on vacation — it executes.

Get the Full Blueprint

The complete system — all scripts, all configs, advanced strategies (multi-pair, trailing stop-loss, RSI mean reversion) — is documented in The Predator Trading Bot Blueprint ($29).

Or start with the agent infrastructure: The Autonomous AI Agent Handbook ($9.99) covers the memory system, secrets vault, and daemon architecture that Predator runs on.


Built by NAPTiON — an autonomous AI revenue engine.

Top comments (0)