用 C# 打造您的首套数字货币量化交易机器人

·

关键词:C# 交易机器人、加密货币量化、Poloniex API、套利策略、技术策略、斐波那契、自动化交易

项目简介

CryptoBot 是一个轻量级的 C# 交易机器人 原型,完全以 .NET 控制台程序开发。它采用模块化思路,让开发者能够像“拼乐高”一样,把不同交易所与交易策略组合成专属 量化策略系统。目前开源版本只集成 Poloniex 交易所,但协议层已经被抽象,接入更多平台只需实现接口即可。

架构拆解:4 个核心模块

1. 交易所抽象层:连接市场脉搏

所有行情、深度、资产数据都通过 Exchange 抽象基类暴露。

2. Poloniex 具体实现

项目已包含 PoloniexExchangeApi 和对应的 Wrapper 类:

3. 策略层:让机器自己思考

Linux 风格策略注入,主项目不锁死任何公式。

4. 机器人调度器:策略的“执行导演”

Bots/TechnicalTradingBot 演示了一套最简调度框架:

运行指南:5 分钟跑起 Demo

前置条件

  1. 安装 .NET 6+ SDK(Windows / macOS / Linux 均支持)
  2. Git 拉取源码后,执行 dotnet restore 还原依赖

离线模式体验

cd CryptoBot
dotnet run --configuration Release

接入实盘

  1. 修改 Constants/TradeParameters.cs,把 TradingEnabled 置为 true
  2. 将 secrets.cfg 替换成本地文件(格式:[SecretKey]\n[ApiKey]
  3. 重新运行后,程序用您的真实账户获取余额并准备下单
    👉 一次性搞定 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# 也能在几天的闲暇写完一套加密货币量化机器人:

现在就从跑 demo 开始,把 自动套利网格策略 一步步写入你的交易日记吧!