目前我的量化交易系统已经从之前Python写的版本切换为.netCore版本。系统的数据库存储采用SQLite,ORM用的Dapper,最近在给系统扩展功能时遇到了一个实体类字段为表外字段的问题,这里记录一下处理方案。 问题的起因是K线数据实体类的扩展。在原设计中,数据库对K线进行存储的表只有OHLCV这5个维度,实际上通过某些接口,还可以拿到振幅,换手率等数据,这些数据是在做标的分析时很有用的参考,尤其是换手率。于是我考虑对原K线的实体类进行扩展,由此就引申出一个表外字段的映射问题。 关于Dapper下表外字段处…

2023年8月14日 0条评论 262点热度 1人点赞 阅读全文

playwright是一个基于Node.js的浏览器自动化测试库,.netCore中也有对应的版本。写一些稍微复杂点的spider有时候会用到它。这里分享一下C#(基于.netCore6平台)调用playwright获取Cookies字符串的简单实现。 playwright的安装非常简单,通过nuget包引入即可,但是在导入nuget包后,还需要下载其对应的浏览器驱动(Chromium、Firefox、WebKit)。 在项目目录\bin\Debug\net6.0-windows(如果是控制台程序,目录名会不同) …

2023年7月15日 0条评论 446点热度 1人点赞 阅读全文

.NetCore目前在金融计算这块的生态的确比不上Python,并没有太多的轮子可以拿来直接用,很多功能需要自己实现。于是最近就在尝试写一些资产绩效评价指标的模块,比如最大回撤,夏普比率,年化收益之类的东西,在这个过程中遇到了一些关于数据精度的问题,感觉是个坑,在这里记录一下。 数学计算方面,.NetCore中一般会使用System.Math这个库,在进行年化计算时要用到Pow这个幂函数,但Pow只支持double型入参,这就造成了明显的精度丢失,计算结果与期望结果相去甚远。 搜索了很多相关文章,都不是有效的解决办…

2023年4月24日 0条评论 330点热度 0人点赞 阅读全文

Attribute(特性)是C#一个比较有意思的类,通过使用Attribute注释,可以在运行时将特定内容与被注释对象进行绑定,用以约束程序行为。在自定义Attribute上过去没有尝试过,今天尝试写了个小Demo,这里做些记录分享: 举个应用场景的例子,有一个方法,动作是每天收盘后自动操作国债逆回购,国债逆回购的收市时间是3点半,也就是说这个方法执行时要在15:00-15:30这个时间段。按照一般思路,我可能要为这个功能做一个定时任务,在每天的一个固定时间执行一次,这样做当然可以,但如果我不想为这个特定功能再去做…

2023年4月20日 0条评论 439点热度 3人点赞 阅读全文