量化交易
文章平均质量分 66
永远的麦田
资深程序员,爱程序,爱生活
展开
-
文华商品指数研究
文华的商品指数如下:基本上据此可以很清晰的感知整个期货大势的情况,以及各板块的涨跌状况,进而对操作哪一个品种形成指导。那么这些指数是怎样来的呢?参考地址:文华指数 - 文华财经资讯股份有限公司 (wenhua.com.cn) 每一个品种的各个月份合约做加权平均,以合约持仓量为权重,总持仓量为1,各持仓量为占比,以价格为参数,乘上各自的权重然后累加,得出品种的加权价格如图所述,6月1日有效合约11个,总持仓量2562136手,将各合约的价格乘上自身持仓量与总持仓的比例即得出各合约的权重价,最后将权重价累加,即原创 2022-07-14 20:45:52 · 3811 阅读 · 0 评论 -
vnpy抽离candle_chart5 - 增加买卖信号
1 初步设想买卖信号应该和指标数据不一样,是有买卖才进行记录,没有买卖则不标记。比如某个时间点发生了买卖,将时间记录下来,然后再记下买卖了几手,同时标记一下是开仓还是平仓。2 买卖信号应该与K线图叠加,在K线的下方标记一个小三角,箭头向上表示开仓,红色表示做多,绿色表示做空。箭头向下表示平仓。3 由于上一节我们已经完成了多种图表的叠加,因此买卖信号相当于是买卖图表与K线图表的叠加。买卖信号的图形是箭头,我们可以画三角形,应该用到函数:painter.drawPolygon(poin原创 2022-04-24 12:05:37 · 516 阅读 · 0 评论 -
vnpy抽离candle_chart4 - 根据配置实现图形的任意组合显示
配置:plots: - max_height: 0 chart_item: - file_name: ../../data/ochl.txt type: Candle - file_name: ../../data/EMA5.txt type: Line - max_height: 200 chart_item: - file_name: ../../data/MACD12.26原创 2022-04-13 10:54:15 · 710 阅读 · 0 评论 -
vnpy抽离candle_chart3 - 实现图形叠加
vnpy抽离candle_chart2 - 实现line_永远的麦田的博客-CSDN博客前面chart2中实现了line,这次实现图形叠加,为了方便起见,就把candle和line叠加起来。通过进一步研究,发现plot实际上属于底层图形的实现,item则是具体的上层画图的动作。也就是说,底层plot实际上只需区分上中下或是自上而上的1234即可因此widget.py中的self._plots实际上不需要与chart_item进行对应,所以_plots修改为list,表示倒底是最上面的还是中间的或原创 2022-03-27 00:29:20 · 268 阅读 · 0 评论 -
vnpy抽离candle_chart2 - 实现line
前面写了基本完成了脱离vnpy形成K线图,存在几个问题:1、使用的vnpy的数据结构,这一点没啥不好,主要是灵活度太低2、只有K线和成交量,弄这个主查想将算法图呈现出来,类型缺少3、增加一个plot做成三格而不是两格时发现其中无法做成,细查是由于数据结构是dict引发,把item与plot互相完全绑死。4、指标如何叠加,这一点看起来没有实现,看到有个人写了相应方法,贴了图一堆人要但没有对应的代码由于目标就是算法图形化,因此上面的问题解决了基本和我要的东西就基本接近了:1.一组..原创 2022-03-26 16:13:02 · 1142 阅读 · 0 评论 -
vnpy抽离candle_chart
前面vnpy试用candle_chart弄出了一个K线图形,不过那个不是目的。真正的用意是做一个简单的图表,直接将给定的数据用图表显示出来,因此不能依赖vnpy,这个东西有点复杂,需要单纯化。方法很简单,做一个klinechart工程main函数的代码与之前vnpy中candle_chart项目的run.py类似:# -*- coding: utf-8 -*-from datetime import datetimefrom klinechart.trader.ui import ..原创 2022-03-25 00:51:41 · 1072 阅读 · 0 评论 -
vnpy试用candle_chart
好久之前听过vnpy,前两天看到还在更新,觉得可以研究一下。主要是对其中的K线的UI写期货回测最主要的是图形化的工具比较缺,都是用数字图表,不直观。前段时间用plot画图,发现画出来的都是静态的,且数据量多后慢的要死。看起来这个UI画的K线要好很多,值得研究一下。网上有说明vnpy可保存为sqlite和mongdb.一开始用的是sqlite,原因是无需安装,直接用,按照说明下载对应的组件,因为数据源这块vnpy已经抽象出BaseDatabase,需要用到哪一种组件再实现对应的组件,sql原创 2022-03-05 16:48:34 · 821 阅读 · 0 评论 -
一元线性回归slope
看通达信公式其中SLOPE用到的挺多,其中有一个买卖线的用到SLOPE(C,21),然后就网上搜索这个函数的意义。简单的说就是一组点比较接近线性关系,则找到一条直线,使得各点到此直接的距离最短。如下图所示:公式这一块的推导看的不明白,不过结果还是比较容易理解的我们只需要求出b来即可。验证起来也比较容易,可借助excel先把,这些值都算出来,然后通过公式:=(8*D10-(B10*C10))/(E10*8-B10*B10)即可算出系数b=2.06同样a也可根据公式.原创 2021-02-15 15:19:14 · 8683 阅读 · 0 评论 -
量化交易摸索-极限值参考
前面在做算法时发现自己的短板前端一直没有研究过,导致算法需要图形化表述时遇到了困难。花了些时间去看前端才发现这个类别也比较庞杂。只能借力来做。上升通道还是有些复杂。那天与同事交流发现某些票可能会存在极限跳高或是极限跳水的现象,如以下K线极限跳水的现象即下跌过程中突然放量,量超60日最高,60均3倍以上,K线形态爆涨,下跌的过程中表明恐慌出逃,完成后空头突然消失,此时做多正当时,可靠性极高。当然,这时可以加上弹球原理止盈,即极速下跌过程中落地反弹0.618高度可能会再次下跌,所以从底部反弹至0.618原创 2021-01-15 23:07:39 · 468 阅读 · 0 评论 -
量化交易摸索:确定上升通道
确定上涨初步考虑是获取K线的最高,然后将最高连成一条线,若一直向上,则表示为上涨通道。如下图所示:问题是如何通过程序判断。可以这样,取5根线的最高再连成一条线,若后一根总是大于前一根,可以认为是在上升通道。然后判断从哪一根开始,为0的越来越多,则表示上涨结束。在做算法的时候发现逻辑虽然重要,没有相应的图形显示,验证起来会很吃力,github上https://github.com/liihuu/KLineChartSample/tree/master/vue-sample/src演示的代码有几个特原创 2020-12-22 00:06:50 · 660 阅读 · 2 评论 -
深入理解EMA和SMA
一直对EMA的理解都比较模糊,总是不能完全把握,因此,凡是牵涉到EMA的公式都搞不清其内在的数学模型是什么。刚好看到个文章,觉得写的很好。参考内容:https://www.codeleading.com/article/9441142281/EMA公式:EMAtoday=α * Pricetoday + ( 1 - α ) * EMAyesterday;其中,α为平滑指数,一般取作2/(N+1)推导公式:EMA(X,N)=[2*X+(N-1)Y’]/(N+1)下面是对于公式的拆解,分别解出当N=原创 2020-10-07 00:47:18 · 8556 阅读 · 6 评论 -
rqalpha改造成自己的回测系统2
原先的funcat只接收日线数据,改造期实也简单,最终还是调用history_bars, 在调用之前把所有和日线相关的计算去除,保留最后精确到分钟的时间。下一步目标:明显逻辑上不再管频率的问题,而是把频率当成透明的存在。数据的时间间隔则是由数据本身决定,不再推算下一根的时间,以此解决不同开盘时间的数据及夜盘相关的数据再下一步:将IH99更新为IHL9或是auL9什么的,将期货相关的配置,比如手续费什么的通过其它方式外部动态获取。再下一步:利用均线系统进行简单的回测...原创 2020-08-17 23:50:33 · 470 阅读 · 0 评论 -
rqalpha改造成自己的回测系统
1、rq的版本在3.4.1左右,原因是最近修改的太多来不及看,而且看起来他们最近改的很多又调用了闭源的代码,不方便。2、目标是将其改造成可用版本,与funcat协调使用,成为一个直接可直接调用通达信公式的平台。3、日线级别的回测放弃。将其改造成5分钟(或n分钟)周期的数据源接入4、funcat相应改造,不再是固定周期,而是给的啥周期,就使用啥周期。5、平台只是基础,最终利用此平台,打造出可用的回测算法系统。目前看均线系统加上统计学原理可保持不亏。这一块是弱项,希望这一块有研究的人可以一起研究原创 2020-08-15 11:46:55 · 878 阅读 · 0 评论 -
python代码由cpu转成gpu运行
文章出处:https://blog.csdn.net/qq_28023365/article/details/87970505出处2:https://blog.csdn.net/u014636245/article/details/84404646看起来是通过Numba模块,通过装饰器@jit实现转换有一块样例代码:import numpy as npfrom numba import ...原创 2019-12-19 18:49:55 · 7840 阅读 · 1 评论 -
rqalpha实时模拟运行
rqalpha的回测前面已经可以回测5分钟数据了。现在需要解决实时模拟的问题sys_stock_realtime中,quotation_worker()判断交易日时段,然后每秒获取行情数据一次,将之存于data_board.realtime_quotes_df...原创 2019-12-09 17:40:36 · 756 阅读 · 0 评论 -
rqalpha 事件逻辑
SimulationEventSource为事件类由Executor类牵头,在代码for event in self._env.event_source.events(start_date, end_date, frequency):中调用SimulationEventSource中的events()函数其中有一个get_trading_dates()函数,给出start_date, ...原创 2019-12-09 16:59:40 · 355 阅读 · 0 评论 -
米框量化交易指标编写kd
代码主要来自于米框官方教程,由于官方教程有很多,且在开源代码上不一定运行成功,因此将试验成功的代码放于此,便于日后查验。rqalpha取自官方版本3.4.0到3.4.1之间。关键代码:history_bars()得到的是一个ndarray序列,这里是前30天的数据集bar_dict[stock].close调用的BarMap中的__getitem__()函数,然后通过self._data...原创 2019-12-07 08:10:54 · 1598 阅读 · 0 评论 -
rqalpha分钟数据的解析
rqalpha开源版不支持分钟数据,在此研究一下。要想将分钟数据放入系统需解决几个问题:1、数据格式(存储和加载)2、数据获取后怎样完成若干分钟一次的事件3、公式如何像获取日线一样获取到分钟数据数据格式:主表:_table:内容数据, ctable类型类型为:[('date', '<u4'), ('time', '<u4'), ('open', '<u4'), (...原创 2019-12-03 15:56:12 · 1471 阅读 · 0 评论