# FastTrader **Repository Path**: kevinosc/FastTrader ## Basic Information - **Project Name**: FastTrader - **Description**: 开源可拓展的快速量化交易系统 1.主要用于实现日内交易策略 2.支持多家API供应商 3.跨平台 4.支持多种技术指标,多周期 5.可以灵活扩展 6.方便运维 7.接口尽量简单容易理解 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 80 - **Created**: 2020-07-27 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastTrader 简介 开源可拓展的快速量化交易系统平台,目前已用于一些个人或公司的实盘环境,一些实现的过程可以看里面的docx文档和源 1. 主要用于实现日内交易策略 2. 支持多家API供应商 3. 跨平台 4. 支持多种技术指标,多周期 5. 可以灵活扩展 6. 方便运维 7. 接口尽量简单容易理解 # 依赖 boost 1.60+ 版本 spdlog 日志采用了异步模式 tinyxml 配置文件解析 Qt 可选的,用于支持带界面的策略 python 2/3 可选的,用于支持导出python调用的接口,可以配合flask搭建运维平台 sqlite3 用来存行情数据 # FastTrader分为以下几个基本模块 1. common和sdk目录为平台定义的数据结构,包括Tick,Order,Trade,KData这些 2. FacilityBaseLib 提供基础数据结构的容器和包装 3. TechLib 技术指标库 4. ServiceLib 交易和行情接口的抽象层,及用户账户的管理 5. SimpleStrategyLib 策略接口的抽像层,及策略基本功能的封装,每个策略的逻辑运行在自己的线程里 6. DataStoreLib 数据接收,过滤,存储层 7. ConfigLib 配置文件解析库 8. FastTrader 主程序,用于启动交易平台 9. FastMarket 主程序,用于启动行情接收器 10. DualMA 一个双增均线策略的使用示例,后续会添加更多示例 # 说明 整个系统综合考虑了一些情况,做了折衷处理 比如,行情数据存储用sqlite数据库,考虑几点,1、方便查看,2、出错了方便纠正,3、方便与其他格式的数据互相转换, 此外,可以用其他格式的数据接入到DataStoreLib里面,实现自己的存储器 每个策略一个线程,这样策略在进行一些操作的时候,就不用每次进行加锁, 风控,报单,撤单的逻辑,可全部由策略接管所有细节,如果需要更简洁的接口,比如CTA那种,可以自己进行封装, 这样对于各种需求的策略都可以实现和集成在本系统中了