- 从私募离职后好久没更新过这个项目了,想着先把README更新一下,规划之后这个项目需要做些什么。 这个项目其实是为了证券私募结算服务而来的,在私募工作时也是一直从事私募结算开发方面的工作。 一直没有什么较好的进展,由于也确实人手不足,仅有两个人,最后也无奈只能交给三方服务来做,选择离开。 但是这个项目一直很不甘心,还是不想放弃,想着开发一套专门为了证券私募结算方便的应用出来,至此。
-
离职私募以后就只写了一些工具封装,距离应用还有很长的一段路需要去走,目前市面上也并没有这样一套符合 证券私募结算的服务,尤其针对高频交易,账户层面的数据处理、分析工具。目前主流的私募服务都是一些公开 数据服务(恒生、朝阳永续这些)以及产品层面数据(比如估值表)的服务,针对私募内部的交易账户完全没有可循 资源,可能有人在做但都是闭门造车。
-
在私募时主要用到 Airflow 作为任务调度的工具,对数据定时处理。尽管他确实很强,但还是对这个东西不感冒, 并不是我预想中的或者说理想中的应用组件,我的期望是实时处理,当券商/托管等等一旦给到数据就及时处理,比如像 flink 这类流式处理,当时提出采用 flink 被否了,简单来说就是杀鸡焉用牛刀,一直搁浅后来也就不了了之没用上这项技术, 自己也没什么学下去的动力了,最后就用 redis 和 RPC 做了个简单的实时响应处理。
-
这个项目本身也是针对国内的证券私募来做的,英文说明文档什么的也不会有了一般,总不能老外跑来🇨🇳做结算开发吧。之前 整了一堆 en doc,想想也是脱裤子放屁,毛用没有。
-
列个简式清单后续要做些什么:
-
对于SQL数据库的连接等操作替换成SQLAlchemy, 未来pandas对于SQLAlchemy也是会越来越支持, pymysql等多少在 实际开发中都存在不少问题. 为了避免不必要的麻烦以后都采用SQLAlchemy连接数据库,同时也不用自己去写SQLite这种 容错问题,省去不少麻烦.
-
写一套框架限定的共享内存处理,多个应用联合难免用到共享数据,能够简单使用共享内存也就可以考虑去除Redis(单机)
-
先完成基础的数据解析工具,主要针对估值表的 Excel 表格,对账单的 Excel、csv、txt 文件, 尽可能封装到极致,能够让做分析的人也能用好这个东西。个人了解的来说,私募的开发资源总体比较紧张, 再到结算的开发就更少了,老东家也算是个不小体量的了,结算也就三三两两,其他开发资源都集中在ML、 运维和交易系统。对于小私募来说更甚,有时候可能做分析的会被顶着当开发来用。
-
公开数据的对接,目前主要是针对 TuShare 的平台免费数据,现在也就只做了基本的交易日数据封装了一些日期工具。 后续需要对接一些公开的市场数据,比如指数这些,用这些数据来做些简单的比对分析工具。也可能会考虑用些新闻数据 做点舆情分析(这个大概率不会做,视情况来定)。至于其他的数据源,暂时没想好,恒生/聚源这些数据价格实在是搞不起, 只能花千把块买点数据这样子。
-
可视化部分。这一块前端必不可少,尽管对于私募内部结算来说基本就是看图说话,发发 matplotlib 绘图这样子, 但是真正做起来的时候才会知道前端这块对于结算工作有多重要,不了解的业务让运营参与进来,总不能让人家直接看你的 代码来做吧,搞个前端可视化配置啊什么的可少不了。这里就不细说要做什么了,太多了,目前也只有个简单的规划,以后想 好了在细写一下。针对部门之间的协同必定是需要这一项的,还有针对策略部门,虽然每天搞个账户结算邮件就可以解决, 但是真的很不方便,一个账户就得自己配一次,经常有搞不懂的业务去问还得被鄙视一番,很难受的,谁让策略惹不起呢。 之前结算自己学了一星期vue搞了个简易的账户配置和产品资产分析,哎,也就能用的状态,套一堆ElementUI。算了这块 就先写这些吧。
-
都有前端了,后端怎么可能跑得掉,之前用的Flask作为后台,咋说呢,简单易用易扩展,但不是那么喜欢,这次就打算 用FastAPI来做了。后台这块基本走一步看一步吧,要做封装可太多API要写了,涉及的业务还特别广泛。
-
先写这些吧,都是一些大体需要做的东西,要展开说开一星期会都说不清楚,还有很多是经验之谈,就先这样吧
-
-
X2.XDB.sql.connections.LocalStorage
(SQLite DB)默认位置$HOME/X2_SQLite_DB.db
-
X2.XMessage.xmail.record.RecordsStorage
(SQLite DB)邮件下载记录存储默认位置$HOME/.mail_metadata.db
-
以下配置用于CEPH分布式存储使用
CEPH_ENDPOINT
(使用CEPH存储时该参必须给定)- 以下二选一
- access key参数直连方式(该形式优先,可以尽可能避免错误)
CEPH_ACCESS_KEY
CEPH_ACCESS_SEC
- LDAP形式
LDAP_USERNAME
LDAP_PASSWORD
- access key参数直连方式(该形式优先,可以尽可能避免错误)
-
配置了以下参数,在下载邮件的时候 MySQL 将会记录下载邮件信息,否则仅在本地使用 SQLite 记录
X2_MAIL_MYSQL_USER
X2_MAIL_MYSQL_PASSWORD
X2_MAIL_MYSQL_DB
X2_MAIL_MYSQL_HOST
X2_MAIL_MYSQL_PORT
-
需要Avenger连接时,需要配置以下参数
AVENGER_USERNAME
AVENGER_PASSWORD
-
需要更新本地股票基本数据时需要配置tushare的token信息
TUSHARE_TOKEN