零成本搭建AI交易机器人:GitHub Actions + Alpaca实战指南
用300行Python代码,打造你的24小时自动交易员
问题引入:散户投资者的三大痛点
作为一个有编程基础的散户投资者,你是否经历过这些场景?
场景一:深夜盯盘的疲惫
美股开盘时,你正准备睡觉。看到持仓股票突然大跌,犹豫要不要止损——等你纠结完,已经跌去5%。
场景二:纪律执行的困难
你制定了一套定投策略:每月1日买入500美元VOO。结果一到执行日就犹豫:"这个月涨得有点高,要不要等回调?"——然后完美错过入场时机。
场景三:信息过载的焦虑
关注了30个财经博主,加了8个投资群,每天被各种"内幕消息"轰炸。反而越来越不敢下手,越研究越迷茫。
如果你点头了,那么自动化交易可能是你的解药。
方案概述:为什么选GitHub Actions + Alpaca?
在2025年的今天,散户做自动化交易有三大免费神器:
| 组件 | 作用 | 成本 |
|---|---|---|
| Alpaca | 零佣金券商,提供API接口 | $0 |
| GitHub Actions | 云端定时任务调度 | $0 (每月2000分钟) |
| Python | 策略逻辑编写 | $0 |
这套组合的核心优势:
- 零成本:从数据获取到交易执行,全程免费
- 零运维:GitHub Actions托管,你只管写代码
- 零情绪:代码不会恐慌,也不会贪婪
- 低风险起步:支持Paper Trading(模拟盘),用假钱练手
详细步骤:手把手搭建你的第一个交易机器人
第一步:注册Alpaca账号(5分钟)
访问 alpaca.markets 注册账号。
关键操作:
- 注册后先启用 Paper Trading(模拟交易)模式
- 进入 Dashboard → API Keys,生成你的API Key和Secret Key
💡 建议:先用Paper Trading跑1-3个月,确认策略有效后再切实盘。
第二步:创建GitHub仓库(3分钟)
- 登录GitHub,创建新仓库,命名为
my-trading-bot - 设置为Private(毕竟涉及你的交易策略)
- 克隆到本地
第三步:编写核心交易逻辑(20分钟)
创建 trading_bot.py:
#!/usr/bin/env python3
import os
import json
from datetime import datetime
import alpaca_trade_api as tradeapi
# 从环境变量读取API密钥
API_KEY = os.getenv('ALPACA_API_KEY')
API_SECRET = os.getenv('ALPACA_SECRET_KEY')
BASE_URL = 'https://paper-api.alpaca.markets'
# 策略配置
CONFIG = {
'symbol': 'VOO',
'invest_amount': 500,
'day_of_month': 1,
}
def get_api():
return tradeapi.REST(API_KEY, API_SECRET, BASE_URL, api_version='v2')
def should_trade_today():
today = datetime.now()
return today.day == CONFIG['day_of_month']
def execute_trade(api):
symbol = CONFIG['symbol']
# 获取最新价格并计算购买数量
barset = api.get_latest_bar(symbol)
price = barset.c
qty = int(CONFIG['invest_amount'] / price)
if qty < 1:
print(f"资金不足购买1股 {symbol}")
return None
# 提交市价单
order = api.submit_order(
symbol=symbol,
qty=qty,
side='buy',
type='market',
time_in_force='day'
)
print(f"✅ 买入 {qty} 股 {symbol} @ ${price:.2f}")
return {'symbol': symbol, 'qty': qty, 'price': price}
def main():
print(f"🤖 交易机器人启动 - {datetime.now()}")
if not should_trade_today():
print("今天不是交易日,跳过")
return
api = get_api()
account = api.get_account()
print(f"💰 账户现金: ${account.cash}")
trade_info = execute_trade(api)
if trade_info:
print(f"📊 交易完成!")
if __name__ == '__main__':
main()
第四步:设置GitHub Actions自动运行
创建 .github/workflows/trading-bot.yml:
name: Trading Bot
on:
schedule:
- cron: '0 14 1 * *' # 每月1日 UTC 14:00
workflow_dispatch: # 允许手动触发
jobs:
trade:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install alpaca-trade-api
- run: python trading_bot.py
env:
ALPACA_API_KEY: ${{ secrets.ALPACA_API_KEY }}
ALPACA_SECRET_KEY: ${{ secrets.ALPACA_SECRET_KEY }}
第五步:配置GitHub Secrets
- 进入GitHub仓库 → Settings → Secrets → Actions
- 添加:
-
ALPACA_API_KEY:你的Alpaca API Key -
ALPACA_SECRET_KEY:你的Alpaca Secret Key
-
第六步:测试运行
- 提交代码到GitHub
- 进入Actions标签页
- 点击 "Run workflow" 手动触发
- 查看日志,确认交易成功
看到类似输出?恭喜你,机器人上线成功!
🤖 交易机器人启动 - 2025-02-01 14:00:05
💰 账户现金: $100000.00
✅ 买入 1 股 VOO @ $532.45
📊 交易完成!
风险提示:自动化交易不是印钞机
⚠️ 技术风险
- API故障、网络延迟、代码Bug
- 缓解:设置单日最大交易金额,添加重复订单检测
⚠️ 市场风险
- 策略失效、黑天鹅事件、流动性风险
- 缓解:只投资指数基金(VOO/VTI),不要All-in
⚠️ 心理风险
自动化最大的敌人是:手痒干预
铁律: 要么完全相信系统,要么不要自动化。
进阶玩法
1. 添加技术指标过滤
只在价格高于20日均线时买入
2. 集成邮件通知
每次交易后发送报告到邮箱
3. 多标的策略
PORTFOLIO = {
'VOO': 0.5, # 50% 标普500
'VXUS': 0.3, # 30% 国际股票
'BND': 0.2, # 20% 债券
}
结语:自动化是纪律的延伸
搭建这个交易机器人,最大的收获不是"躺着赚钱"——那是不现实的期待。
真正的价值在于:
- 建立纪律:代码无情地执行你的策略,不受恐惧和贪婪干扰
- 节省时间:把盯盘的时间用来学习、工作、陪伴家人
- 积累经验:通过实践理解自动化系统的设计与风险
记住,最好的交易策略往往是最简单的策略。
现在,fork这个仓库,修改配置,启动你的第一个自动化交易项目吧。
本文仅供技术学习参考,不构成任何投资建议。自动化交易存在风险,请谨慎操作。
Top comments (0)