WeQuant教程—1.2 从简单的量化系统开始
于是你踏上了量化的不归路:硬生生的概念仿佛是刻在石碑上的咒文。
硬着头皮往下看咯。
量化系统的组成
策略
策略的组成要素:条件(信号)、动作
策略核心的思想是“条件 => 动作”,设定任意的条件,一旦满足,就触发交易动作。
常见的条件包括:价格、资产、时间。
常见的动作包括:买入、卖出。
只需要简单的这几个元素,就可以组成非常丰富的交易策略,很神奇,是不是?
是否能找到好的触发条件,在既定条件下能不能做出好的动作,以及这个过程能不能持续循环和持续盈利, 这就是量化系统里面交易意志的体现。一般人说起量化,想到的首先也是策略,它是量化系统里面的灵魂。
计算机交易程序
计算机交易程序相当于旧时期的(股票)经纪人、接线员,他会根据客户的买卖指令,实际向交易平台提交买卖请求,完成资金和合约的交割,并把交易的结果返还给客户。试想一下,如果没有了这个代办的环节,你想到了一个很酷的交易想法,然后要下楼开车去到交易大厅,中间堵车不说,到那发现忘带身份证,厚着脸皮叫来管理人员理论一番,发现自己表格填错了——任何一个环节出错,你的交易算是泡汤了。
一个完善的计算机交易程序,帮你把所有的细节都处理掉,你只需要在合适的时间告诉他,干,管家式的服务就告诉你,妥了。
上面讲的比喻成分太多。一个计算机交易程序需要解决以下的问题:交易帐号验证与帐号授权、资金帐号对接、交易接口网络请求、异常处理、自动排队和重试,确认交易结果,同步帐号信息,这些都是最基本的,还有机器容灾、风险控制等高级功能,必要时候还能人工介入处理,这些都独立于交易意志之外,但又不可或缺。好的交易程序犹如训练有素的仆人,把你想到的和没想到的事情,一并给你处理好,让你专心在策略的设计上。
情报系统
前面说到的交易意志,神人可以靠灵感,神棍可以夜观天象,一般的从业人员多是老实巴交地收集关键情报,用固定的逻辑模板和公式进行计算,从而得出特定的信号,再根据实际策略条件,进行动作。这个过程应该是有条不紊的。情报系统应运而生:稳定、持续地提供信息源,让交易意志能不断地被体现。通常来说,情报系统就是一组不断更新的数据服务。
一个简化的量化系统
普及完上面的基础概念,我们来看一个实际的量化系统怎么运转。细心且学有余力的朋友,可以从无到有实现一个简单的量化系统。
要实现这样一个系统,我们主要解决以下问题。
这个系统有哪些部件?
前面已经回答过了:策略系统、交易系统、情报系统。
这些部件怎么连接起来?
程序从情报系统循环地拉取最新的消息,给到策略系统,然后执行策略逻辑,并把策略系统产生的交易指令给到交易系统,交易系统把处理的结果反馈到情报系统,从而实现量化系统的持续更新,一个类似永动机的循环就这样跑起来了。
是不是听起来太简单了点?实际上整个量化系统的逻辑从结构上来看就是那么简洁。至于具体到每个子系统的细节,则需要另写文章逐步一一讲解了。感兴趣的朋友可以往后面阅读。
有没有简单的方式?
有的,例如,有人把交易系统、情报系统、策略系统都给你准备好,你只需要在上面拼装自己的策略,系统自动就能运行起来了。
有没有更简单的方式?
当然还有,你连策略都不用自己写,直接用别人的。
但是需要提醒的是,交易策略是有生命周期的,并非什么时候都可以无脑使用,建议你从别人的策略开始学习起,理解里面的交易意图,融会贯通,再调整成为自己独有的策略,结合现成的量化系统,就可以开始量化交易了。
这样一圈下来,你对量化交易是不是理解更深入一些了呢?
结语
理解量化交易概念最快的方法是实际做一次。
但在你启航之前,出于安全的考虑,我们建议你读下一篇文章《利用回测工具降低交易风险》。然后,我们会把量化系统在比特币市场的功能细节,给你一一讲解,并提供实际可用的模板,供你在回测和调试。也许足够坚持和幸运的话,你会真正走到实际交易的那一步。
WeQuant教程—1.2 从简单的量化系统开始的更多相关文章
- WeQuant教程—1.3 利用回测工具降低交易风险
量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...
- WeQuant教程—1.4 实践教学:比特币量化定投
在wequant.io,为了让读者能直接体验量化系统的魅力,我们用前面的思路,实现了一套完整的量化系统和回测工具,这个系统非常简单,用户只需要把交易意志用策略表达出来,系统就可以自己完成交易效果的回 ...
- vue教程2-04 vue实例简单方法
vue教程2-04 vue实例简单方法 vue实例简单方法: vm.$el -> 就是元素 vm.$data -> 就是data <!DOCTYPE html> <htm ...
- Directx11教程(42) 纹理映射(12)-简单的bump mapping
原文:Directx11教程(42) 纹理映射(12)-简单的bump mapping 有时候,我们只有一个粗糙的模型,但是我们想渲染纹理细节,比如一个砖墙,我们如何在只有一个平面的时候 ...
- Directx11教程(19) 画一个简单的地形
原文:Directx11教程(19) 画一个简单的地形 通常我们在xz平面定义一个二维的网格,然后y的值根据一定的函数计算得到,比如正弦.余弦函数的组合等等,可以得到一个看似不错的地形或者 ...
- Directx11教程(6) 画一个简单的三角形(2)
原文:Directx11教程(6) 画一个简单的三角形(2) 在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变, ...
- Directx11教程(5) 画一个简单的三角形(1)
原文:Directx11教程(5) 画一个简单的三角形(1) 在本篇教程中,我们将通过D3D11画一个简单的三角形.在D3D11中,GPU的渲染主要通过shader来操作(当然还有一些操作 ...
- AI趋势量化系统(Binance升级版)
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. B圈大跌行情,如何应对? 近期,伴随着美联储持续的加息进程,数字货币市场不论是市场焦点LUNA,还是BT ...
- 【小型系统】简单的刷票系统(突破IP限制进行投票)
一.前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了 ...
随机推荐
- Discuz! X3 数据字典
pre_common_admincp_cmenu 后台菜单收藏表 字段名 数据类型 默认值 允许非空 自动递增 备注 id smallint(6) unsigned NO 是 title v ...
- Spring Boot 与 Spring Cloud 的版本对应
事项 列表 spring官方对应查看网址 https://start.spring.io/actuator/info spring-cloud-dependencies 版本列表 https://mv ...
- VoIP基本原理
VoIP基本原理 VoIP是通过Internet等互联网络传递语音信息的,主要包括终端设备.网关.网守和网络管理等部分.网关负责提供IP网络和传统的PSTN接口. VoIP的基本原理:通过语音压缩算法 ...
- Splay&LCT
Splay && LCT \(\text{Splay}\) 基本操作 1.\(Zig \& Zag\) 其思想是维护中序遍历不变 实现中我们不真的用\(Zig\)或\(Zag\ ...
- Selenium元素定位的几种方式
一.通过id查找 例:<input id="kw" name="wd" class="s_ipt" value="" ...
- 解决mysql无法显示中文/MySQL中文乱码问号等问题
一般都是编码格式问题 显示编码格式: show variables like'character_set_%'; 将其中Value不是utf8的改为utf8: set character_set_cl ...
- nginx 访问控制之 document_uri
这就用到了变量$document_uri,根据前面所学内容,该变量等价于$uri,其实也等价于location匹配. 示例1: if ($document_uri ~ "/admin/&qu ...
- MyBatis智能标签!
if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ...
- 实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)
主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生成一个 log ...
- cocos执行tolua/genbindings.py文件,错误搜集:
1.PYTHON_BIN not defined, use current python.这个不是错误 2.llvm toolchain not found!path: /Users/staff/Do ...