
交易系统
文章平均质量分 56
griffin041702
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BackTrader学习日志01-第一个例子代码-1
第二天:由于习惯了使用VS工具进行单步或逐句调试程序,所以先查了一下资料,使用pycharm是如何调试的:其实本人还是喜欢用spider,可能是习惯问题:例子还是用昨天的例子在例子代码开头即是from xxx import xxx,其实这相当于C语言或其它语言的头文件包含的作用,在任何一种编程语言来说,任何函数都必须先定义或先声明后定义之后,才能被调用,python也不例外,所以需要用到什么东西,都需要先包含进来,而python中需要使用内置库也好,第三方库也好,都必须先导入。这个“库”其原创 2022-01-16 16:00:11 · 709 阅读 · 0 评论 -
BackTrader学习日志00-从安装开始
第一天首先,BackTrader就不作介绍了,直接获取源码回来:方法一:在Backtrader的参考手册上,直接使用命令来安装,这很多时候是在Mac或Linux平台下直接执行即可,如果在Windows平台下的话,最好直接安装一下Anaconda工具集,然后再使用pip install backtrader来安装,因为backtrader是使用Pyhon语言写的,那么运行环境和编程语言下,必须要求会一点Python,所以Anaconda似乎是必选项。方法二:去backtrader的官网,再转到Githu原创 2022-01-16 13:51:09 · 2194 阅读 · 0 评论 -
数据排版--大概思路
首先是行情数据:1.数据服务端:一、数据服务端负责历史数据的存放:当客户端连接上服务器之后,首先是要告诉服务器,你需要的是哪些合约品种的行情,因为不同的交易者所需要的数据是不一样的,后续可能会把全市场的行情都传送,但就目前而言,这样的数据传输量较大,而且速度慢,如果是按流量计费的话,成本也高,所以目前来说,只针对主力合约或准主力合约的行情。二、数据服务端的历史行情数据只提供1分钟K线数据,而且以当根Bar的开始时间作为记录(有些软件是以结束时间作为记录的)。三、实时行情的传送也是按最新的1分钟K线原创 2021-11-08 13:58:46 · 13013 阅读 · 0 评论 -
一个简单的界面
有了前文的说明,现在就做一个简单的界面:在配置中,可以设置数据服务器的配置,因为后续是准备做一个数据服务器,为客户端提供1分钟基本行情数据,实现数据与交易分离。如果不分离的话,每次关闭客户端,那么数据则会丢失,这样的后果可不是咱们想要的,为了保证数据的及时性和准确性,使用数据服务器势在必得。另外想说的是,后续策略的都做成动态库,在客户端,把策略基类封装一下即可,不需要知道太多的细节。、在这里提出一个“策略元”的概念,其实就是策略与账号、合约的一种绑定关系,不同平台不同全名,而我取名为“策略元”。原创 2021-11-08 06:05:03 · 373 阅读 · 0 评论 -
带界面的程序化交易软件-从今天开始
之前在B站上面也演示了一下以前做的界面程序,但总觉得有点别扭,所以就暂停了一段时间。https://www.bilibili.com/video/BV1WB4y1w71g?spm_id_from=333.999.0.0原来做的时候也没有什么思路,想到哪就做到哪,现在的想法是,如果自己没有好的设计,则参考目前流行的软件的思路进行模仿。那么目前在国内做程序化平台较为流行的也就MC,TB,文华,首先,排除文华的,因为他的界面偏向于行情分析,而不是注重交易。TB的界面也是偏重于行情分析和策略开发,交易部分倒原创 2021-11-01 11:56:04 · 464 阅读 · 0 评论 -
MT5直接调用C++ Dll库
一、 MT5简介MT5本身应该不需要过多介绍了,就是强大。二、获取MT5安装程序https://www.metatrader5.com/,直接下载并安装打开MT5界面,看到导航窗口,右击服务,创建一个新服务填上相关信息,点击完成即可。现在一行代码没有写,点击MetaEditor菜单上的编写,编译这个服务,然后在MT5l中导航窗口刷新一下,就看到新建的服务程序了。也可以看到MT5的安装目录下,MQL5下面的Services目录下已经生成可执行程序。然后我们回到VS2015上面来,新建一原创 2021-10-24 16:32:57 · 1741 阅读 · 1 评论 -
一个奇思妙想
最近有时候要搞一下开发,但时间长了,就想休息一下,反正无聊,所以就看看电影或…最近看到有个开源的平台,BackTrader,然后抱着看看人家写的交易平台可能会学点什么的心态,在网上找了些资料来看了看,有一些是文字的,官方英文版的资料就没兴趣看了,虽然以我英语专业的水平,看这文档应该不成问题,但现在人老了,也懒了,so …反正大概的框架看一个图应该就差不多了,所以在网上拿了个图出来看看。这样一看,似乎跟VNPY的框架图又很相似,你懂的。反正,怎么说,都是由几个大的模块组成,相互协作完成任务的。首先原创 2021-08-03 21:47:40 · 174 阅读 · 0 评论 -
推倒再推倒 不断尝试才能不断进步
细数一下,自己尝试写基于CTP的程序化交易软件有以下:1、第一次,是基于控制台的,就是网上找回来的别人写的demo,再修修改改而成的。2、第二次,基于前面的版本,做了个有界面的,当然,这界面只是为了输出一些数据更容易查看,控制台的输出是怎样的,大学应该都知道的。3、第三次,基于第一次的版本,做成Linux平台版本4、第四次,基于第二次版本,做成了一个只记录行情数据的DataRecorder,尝试把行情分离出来5、第五次,基于第四次和第二次,做成了有界面的,但行情数据没有分离的一个集合,而且添加了画原创 2021-04-02 17:03:41 · 194 阅读 · 0 评论 -
TinyXML2的简单使用
配置文件的读取方面,以前是用最笨的方法,使用C语言按字符来读取,所以配置文件也很简单,就是一个文本文件,现在TinyXML2出来的,使得读取XML文件很轻松,所以也应该向这边去转变。在使用TinyXML2之前,首先看一下XML文件的格式<?xml version="1.0" encoding="UTF-8"?> //声明 //根节点 //第二层子节点 //第三层子节点,包含多个属性,以空格隔开This is … //第二层子节原创 2021-02-06 12:53:31 · 862 阅读 · 0 评论 -
再一次推倒重来
无奈中的无奈,原本是想做个交易软件拿来自己用的,所以功能实现了就基本OK了。但是..........很偶然的一天(前几天),因为我现在实盘交易是使用TB来的,所以有时候也会上官网上去看看(无聊的时候),但就在前几天,我发现了一个问题,不知道跟我一样使用TB来实盘的朋友有没有发现:TB官网上的软件下载居然没有了之前吹得火的极速版了,而在论坛中还是能搜得到关于极速版的一个信息:关于极速版为什么下架,我不知道原因,我只知道它被下架了。但是由此引出一系列问题,旗舰版也会被下架吗?TB还做下去吗?之前使用极速原创 2020-12-30 01:37:20 · 268 阅读 · 0 评论 -
发送消息和数据到主窗口----测试
基本框架已经完成了一半,现在就是测试一下,从子窗口中把消息和数据都传回主窗口,既然要传数据,那么,随便定义一个数据结构,然后,在具体的行情类中,使用其中保存的子窗口的句柄来把消息和数据传给主窗口void CCTPMdSpi::StartMd(){ BarData* bar = new BarData; bar->BarTime = 210205; strcpy_s(bar->InstrumentID,sizeof("ABCD"), "ABCD"); LPARAM a = WM_AB原创 2020-12-18 00:33:51 · 234 阅读 · 0 评论 -
基本框架
上篇中提到的程序框架是这样的:那么,现在来实现一下,首先,窗口包含一个行情响应对象,一个创建行情响应对象的抽象工厂,行情响应对象从抽象工厂中创建,在主窗口中给出特定的工厂方法,所以后续要改变的话,在主窗口中修改即可,子窗口中的代码就不需要改变了,这样也算是比较大程序的解耦了(在自己能力范围内考虑)具体代码就不附上了,给出个链接请各自下载好了。源码:链接:https://pan.baidu.com/s/1en4zgBMz65_nLACM0KoU7A提取码:fd6g...原创 2020-12-13 11:48:15 · 734 阅读 · 0 评论 -
利用MFC尝试事件驱动
首先是建立一个MFC程序,基于对话框的(最简单的,About对话框也不要了,只留下一个窗口)。把原来的窗口上的控件全部删除,然后添加一个按钮,在按键上添加事件处理响应函数用于测试。新建一个对话框资源,在对话框中添加一个类,类名随便起,在主窗口中的按钮事件处理响应函数中,以非模态方式创建子窗口,因为不需要显示,所以代码如下:void CSendMsgDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 if (ChildDialog == NULL)原创 2020-12-11 14:15:24 · 357 阅读 · 0 评论 -
基于事件驱动编程
前文已经提过,要模仿VNPY的设计来做,那么其中最重要的莫过于他的核心,也就是基于事件的消息传递。我从CppVnpy项目中找到事件的定义:#define EVENT_LOG "eLog" //# 日志事件,通常使用某个监听函数直接显示#define EVENT_TDLOGIN "eTdLogin" //# 交易服务器登录成功事件#define EVENT_TIMER "eTimer" //# 计时器事件,每隔1原创 2020-12-11 10:38:41 · 696 阅读 · 0 评论 -
重新设计量化交易软件的思考
任何工程,可能都需要从需求出发,所以我在这里先把自己对量化交易软件的想法先理清晰。其实,我觉得TB是挺好用的,就是有些思想受限制,不能自由发挥,而且行情数据比较慢(其实做中低频的策略也够用了),再一个就是策略的安全性(这个不好说),最后,就是收费的问题(加收25%,相对MC和文华来说,算是便宜的了。)第一、...原创 2020-12-05 16:54:42 · 280 阅读 · 0 评论 -
推倒重来
随着学习编程时间长了,越来越越发现自己写的程序的问题原创 2020-11-28 17:17:06 · 261 阅读 · 0 评论 -
小谈 《日内交易策略--谷物期货交易实战指南》中提到的策略
昨天有空上网看到很多网友都说日内策略很好,而且都比较推荐一本书:《日内交易策略--谷物期货交易实战指南》,所以就下载了电子版的来看了一下,书中讲到他的策略是日内交易的,具体的策略: 从作者所描述的策略入场条件来说,与我们平时看到的日内突破交易策略有很大的相似之外,唯一不同的就是,作者的策略是在第一次突破后,等待有效回调,再次同向突破才进场。这样看来,是不是跟《专业投机原理》中的2B法则很相似呢?其实现在市场上最广泛被人们使用的策略基本都是基于趋势而来的,上面的策略一样,作者也讲了,从当天第一根K.原创 2020-05-16 11:02:04 · 2755 阅读 · 0 评论 -
我的交易系统-第一章 从认识K线开始
我的交易系统第一章 从认识K线开始第一章 从认识K线开始第一章 从认识K线开始一根K线代表一个单位时间内,市场价格波动的轨迹,包含这单位时间内最重要的四个价格。有关K线的含义和类型等内容都可以在网上查到,而在这里,大家只需要大概地了解K线是长什么样子的就足够了,而重点是要求大家清楚K线是怎样动态形成的。这当然需要大家从实际的走势上去亲自体验,只要打开行情软件,就可以看得一清二楚。但要提醒...原创 2019-05-28 11:03:30 · 1766 阅读 · 0 评论