Day 1 — 开账号 & 配置 API Key

config.json 示例:

{
  "mode": "test",           // "live" / "test"
  "api_key": "YOUR_API_KEY",
  "api_secret": "YOUR_API_SECRET",
  "base_currency": "USDT",
  "symbol": "BTC/USDT",
  "order_size": 0.01
}

Python 读取:

import json

with open("config.json") as f:
    cfg = json.load(f)

API_KEY = cfg["api_key"]
API_SECRET = cfg["api_secret"]
MODE = cfg["mode"]
SYMBOL = cfg["symbol"]
ORDER_SIZE = cfg["order_size"]

print(f"Mode: {MODE}, Symbol: {SYMBOL}, Order Size: {ORDER_SIZE}")

⚠️ 注意:API Key 不要上传到 GitHub,存放 .env 或 VPS 环境变量中。


Day 2 — Testnet 下单测试(市价单)

import ccxt
import os

exchange = ccxt.binance({
    "apiKey": API_KEY,
    "secret": API_SECRET,
    "enableRateLimit": True,
    "options": {"defaultType": "future"}
})

if MODE == "test":
    exchange.set_sandbox_mode(True)

# 市价下单测试
order = exchange.create_order(
    symbol=SYMBOL,
    type='market',
    side='buy',
    amount=ORDER_SIZE
)

print(order)

✅ 对比 paper trading 下单结果:检查 filled, avgPrice, fee 等字段。


Day 3 — 连续运行 24h + 小资金下单

import time

while True:
    # 这里可调用策略 signal
    signal = 1  # 1 = buy, -1 = sell, 0 = no action

    if signal == 1:
        try:
            order = exchange.create_order(SYMBOL, 'market', 'buy', ORDER_SIZE)
            print(order)
        except Exception as e:
            print("Order failed:", e)

    time.sleep(60)  # 每分钟一次

监控失败情况:记录到日志

import logging
logging.basicConfig(filename="live_test.log", level=logging.INFO)
logging.info(order)


Day 4 — 汇总日志 & 对比回测

import pandas as pd

df_live = pd.read_json("live_test.log", lines=True)  # 如果每行是 JSON
# 选择关键字段
df_live[['timestamp','side','amount','price','fee','status']].head()

# 对比回测结果
df_backtest = pd.read_csv("backtest_results.csv")
# 可以对比收益、手续费、滑点等

⚠️ 发现异常立即停止实盘

# 简单停止脚本
import sys
sys.exit()