想更深入了解开源交易框架?请查看我们的详细评测和对比


为什么选择趋势跟踪?

在构建任何机器人之前,我想要一个简单、稳健且经过验证的策略。趋势跟踪满足所有条件——它基于价格动量,适用于各种市场。核心思想很简单:

当价格高于移动平均线时买入,低于时卖出。

考虑到这一点,我仅使用开源工具构建了完整的交易流程。


我使用的工具

  • Backtrader – 用于回测和策略逻辑
  • CCXT – 用于实时交易API接入(币安)
  • Pandas/NumPy – 用于数据处理
  • Python – 用于连接代码和脚本编写
  • Screen – 用于在VPS或树莓派上运行机器人

逐步构建流程

1. 策略逻辑(Backtrader)

///python class TrendStrategy(bt.Strategy): def init(self): self.sma = bt.indicators.SimpleMovingAverage(period=50)

def next(self):
    if self.data.close[0] > self.sma[0] and not self.position:
        self.buy()
    elif self.data.close[0] < self.sma[0] and self.position:
        self.sell()

///

我保持策略简洁:当价格突破50期简单移动平均线时买入,跌破时卖出。


2. 回测

利用通过CCXT下载的币安历史数据,我对BTC/USDT几个月的数据进行了测试。评估了:

  • 胜率
  • 最大回撤
  • 盈利因子

3. 使用CCXT进行实盘交易

///python import ccxt

exchange = ccxt.binance({ ‘apiKey’: ‘YOUR_API_KEY’, ‘secret’: ‘YOUR_SECRET’, ’enableRateLimit’: True })

ticker = exchange.fetch_ticker(‘BTC/USDT’) print(“当前BTC价格:”, ticker[’last’]) ///

确认策略有效后,我通过CCXT连接实时价格和订单执行,实现了实盘交易。


4. 部署

我使用screen在树莓派上部署了机器人,使其能够24小时不间断运行:

///bash screen -S trendbot python3 bot.py

按 Ctrl+A 然后 D 来分离会话

///


经验教训

  • 简单的策略在配合良好的风险管理时效果最佳
  • 开源工具功能强大,但需要动手调试
  • 真实资金交易时,日志记录和测试至关重要

想自己构建一个吗?

如果你想用Backtrader构建自己的趋势跟踪机器人,或查看我们的详细评测,请访问:
Backtrader框架评测和使用指南