关键词:C# 交易机器人、加密货币量化、Poloniex API、套利策略、技术策略、斐波那契、自动化交易
项目简介
CryptoBot 是一个轻量级的 C# 交易机器人 原型,完全以 .NET 控制台程序开发。它采用模块化思路,让开发者能够像“拼乐高”一样,把不同交易所与交易策略组合成专属 量化策略系统。目前开源版本只集成 Poloniex 交易所,但协议层已经被抽象,接入更多平台只需实现接口即可。
架构拆解:4 个核心模块
1. 交易所抽象层:连接市场脉搏
所有行情、深度、资产数据都通过 Exchange 抽象基类暴露。
- 统一封装 REST API 调用结果,隐藏不同交易所的细节差异
- 内部缓存历史成交、实时订单簿、账户余额,降低 API 限频带来的延迟
- 日后支持的交易所(Binance、OKX 等)只需要继承并补上一两页代码即可上线
2. Poloniex 具体实现
项目已包含 PoloniexExchangeApi 和对应的 Wrapper 类:
- 公共接口:刷新当前价格、K 线历史
- 私有接口:获取资产余额、挂单、撤销订单
- 在本地配置 secrets.cfg 后,即可切换至实盘环境 👉 如何通过三步完成 Poloniex API 实名认证,立即开始实盘测试。
3. 策略层:让机器自己思考
Linux 风格策略注入,主项目不锁死任何公式。
TechnicalTradingStrategy提供 斐波那契回调、支撑位/ 阻力位 自动侦测- 策略只需实现
NextTradeSignal()方法,返回买/卖/观望 - 集成精细滑点控制管线,未来想做 高频策略 也可直接复用
4. 机器人调度器:策略的“执行导演”
Bots/TechnicalTradingBot 演示了一套最简调度框架:
- 每 2 秒轮询一次行情,匹配阈值即触发下单
- 事件总线支持多策略并行——例如同时启用趋势策略 + 套利策略
- 在本地
TradeParameters.cs中直接改阈值, 无需重新编译 即可热替换参数
运行指南:5 分钟跑起 Demo
前置条件
- 安装 .NET 6+ SDK(Windows / macOS / Linux 均支持)
- Git 拉取源码后,执行
dotnet restore还原依赖
离线模式体验
cd CryptoBot
dotnet run --configuration Release- 默认启用斐波那契支持位策略
- 按任意键立刻停止程序
- 终端只打印“可能买卖”的日志,不会真正打入市场
接入实盘
- 修改
Constants/TradeParameters.cs,把TradingEnabled置为true - 将 secrets.cfg 替换成本地文件(格式:
[SecretKey]\n[ApiKey]) - 重新运行后,程序用您的真实账户获取余额并准备下单
👉 一次性搞定 KYC,加速你的加密货币实战体验!
当前版本 仅模拟委托未真实成交——把钱交给代码前,务必先用 Paper Trading。
典型拓展:写一套全新的 15 分钟动量策略
下面示范如何 10 行代码加入自定义算法:
class FifteenMomentumStrategy : TechnicalTradingStrategy
{
protected override TradeSignal NextTradeSignal()
{
var last15 = GetTicks(TimeFrame.M15, 3); // 取最新 3 根 15 分 K
var change = (last15.Last().Close - last15.First().Open) / last15.First().Open;
if (change > 0.01m) // 1% 上涨
return TradeSignal.Buy;
if (change < -0.01m) // 1% 下跌
return TradeSignal.Sell;
return TradeSignal.Hold;
}
}将类注册到 Bots 容器后, 就可把原策略 {new TechnicalTradingStrategy()} 替换为 {new FifteenMomentumStrategy()},立即验证效果。
常见问题 FAQ
Q1:没有 C# 基础,能跑这套系统吗?
A:可以。示例代码里所有配置都是 JSON 或 cfg 文件,运行脚本只有单行 dotnet run。真正需要写 C# 的只有你要自定义策略那一步。
Q2:怎样防止 API Key 泄露?
A:永远不要把 secrets.cfg 提交到 GitHub。推荐配合 GitHub Actions 设置机密变量,或用自建 CI/CD 环境自动注入。
Q3:为何策略不赚钱?
A:当前内置策略只是教学级别——斐波那契在历史行情有效,但面对黑天鹅行情就失效。开源版本的真正价值在于架构本身,让你快速对接成交量分布、机器学习等成熟量化库。
Q4:是否可以本地回测?
A:框架预留了 BacktestingBroker,目前仅支持 CSV 商品。下一步社区预计将引入 PandasNet,实现像 Python backtrader 一样的本地 K 线回放。
Q5:能不能接入 OKX 以外的交易所?
A:可以。项目已抽象公共类 Exchange,你只需要实现 FetchTicker() / PlaceOrder() 方法即可,代码量不到 200 行。
Q6:如何控制滑点与手续费?
A:在校准 BacktestingBroker 和真实交易所 Broker 时,务必同步填入交易所费率表,并在策略层追加风控过滤器,例如单笔资金投入比例 <5%。
小结与下一步
CryptoBot 证明,用 C# 也能在几天的闲暇写完一套加密货币量化机器人:
- 优雅的类型系统 + async/await 关键字,天然适合 高并发行情通道
- 通过接口隔离,交易所切换或策略升级零成本
- 借助 .NET 跨平台运行时,可把同一套镜像部署到树莓派做 7×24 云端监控
现在就从跑 demo 开始,把 自动套利 与 网格策略 一步步写入你的交易日记吧!