想更深入了解开源交易框架?请查看我们的详细评测和对比。
为什么选择趋势跟踪?
在构建任何机器人之前,我想要一个简单、稳健且经过验证的策略。趋势跟踪满足所有条件——它基于价格动量,适用于各种市场。核心思想很简单:
当价格高于移动平均线时买入,低于时卖出。
考虑到这一点,我仅使用开源工具构建了完整的交易流程。
我使用的工具
- 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框架评测和使用指南