你大概知道量化的思想最早在古巴比伦人计算行星轨迹的时候就已经诞生(算术运算),后来借助古希腊的形式化逻辑的发展,人们日益能从量化的思想中提炼和描述自然规律并运用到生产之中。不过,基于量化的思想打造一个交易系统,到底是什么体验呢?

于是你踏上了量化的不归路:硬生生的概念仿佛是刻在石碑上的咒文。

硬着头皮往下看咯。

量化系统的组成

策略

策略的组成要素:条件(信号)、动作

策略核心的思想是“条件 => 动作”,设定任意的条件,一旦满足,就触发交易动作。

常见的条件包括:价格、资产、时间。

常见的动作包括:买入、卖出。

只需要简单的这几个元素,就可以组成非常丰富的交易策略,很神奇,是不是?

是否能找到好的触发条件,在既定条件下能不能做出好的动作,以及这个过程能不能持续循环和持续盈利, 这就是量化系统里面交易意志的体现。一般人说起量化,想到的首先也是策略,它是量化系统里面的灵魂。

计算机交易程序

计算机交易程序相当于旧时期的(股票)经纪人、接线员,他会根据客户的买卖指令,实际向交易平台提交买卖请求,完成资金和合约的交割,并把交易的结果返还给客户。试想一下,如果没有了这个代办的环节,你想到了一个很酷的交易想法,然后要下楼开车去到交易大厅,中间堵车不说,到那发现忘带身份证,厚着脸皮叫来管理人员理论一番,发现自己表格填错了——任何一个环节出错,你的交易算是泡汤了。

一个完善的计算机交易程序,帮你把所有的细节都处理掉,你只需要在合适的时间告诉他,干,管家式的服务就告诉你,妥了。

上面讲的比喻成分太多。一个计算机交易程序需要解决以下的问题:交易帐号验证与帐号授权、资金帐号对接、交易接口网络请求、异常处理、自动排队和重试,确认交易结果,同步帐号信息,这些都是最基本的,还有机器容灾、风险控制等高级功能,必要时候还能人工介入处理,这些都独立于交易意志之外,但又不可或缺。好的交易程序犹如训练有素的仆人,把你想到的和没想到的事情,一并给你处理好,让你专心在策略的设计上。

情报系统

前面说到的交易意志,神人可以靠灵感,神棍可以夜观天象,一般的从业人员多是老实巴交地收集关键情报,用固定的逻辑模板和公式进行计算,从而得出特定的信号,再根据实际策略条件,进行动作。这个过程应该是有条不紊的。情报系统应运而生:稳定、持续地提供信息源,让交易意志能不断地被体现。通常来说,情报系统就是一组不断更新的数据服务。

一个简化的量化系统

普及完上面的基础概念,我们来看一个实际的量化系统怎么运转。细心且学有余力的朋友,可以从无到有实现一个简单的量化系统。

要实现这样一个系统,我们主要解决以下问题。

这个系统有哪些部件?

前面已经回答过了:策略系统、交易系统、情报系统。

这些部件怎么连接起来?

程序从情报系统循环地拉取最新的消息,给到策略系统,然后执行策略逻辑,并把策略系统产生的交易指令给到交易系统,交易系统把处理的结果反馈到情报系统,从而实现量化系统的持续更新,一个类似永动机的循环就这样跑起来了。

是不是听起来太简单了点?实际上整个量化系统的逻辑从结构上来看就是那么简洁。至于具体到每个子系统的细节,则需要另写文章逐步一一讲解了。感兴趣的朋友可以往后面阅读。

# 量化系统示例伪代码开始 { 初始化程序(策略系统,情报系统,交易系统) 循环:当(情报系统.有更新)时执行 { 策略系统.读取信息 策略系统.计算信号 如果(策略系统.有交易指令)执行 { 交易系统.执行交易 } 情报系统.更新 }}

有没有简单的方式?

有的,例如,有人把交易系统、情报系统、策略系统都给你准备好,你只需要在上面拼装自己的策略,系统自动就能运行起来了。

有没有更简单的方式?

当然还有,你连策略都不用自己写,直接用别人的。

但是需要提醒的是,交易策略是有生命周期的,并非什么时候都可以无脑使用,建议你从别人的策略开始学习起,理解里面的交易意图,融会贯通,再调整成为自己独有的策略,结合现成的量化系统,就可以开始量化交易了。

这样一圈下来,你对量化交易是不是理解更深入一些了呢?

结语

理解量化交易概念最快的方法是实际做一次。

但在你启航之前,出于安全的考虑,我们建议你读下一篇文章《利用回测工具降低交易风险》。然后,我们会把量化系统在比特币市场的功能细节,给你一一讲解,并提供实际可用的模板,供你在回测和调试。也许足够坚持和幸运的话,你会真正走到实际交易的那一步。

WeQuant教程—1.2 从简单的量化系统开始的更多相关文章

  1. WeQuant教程—1.3 利用回测工具降低交易风险

    量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...

  2. WeQuant教程—1.4 实践教学:比特币量化定投

     在wequant.io,为了让读者能直接体验量化系统的魅力,我们用前面的思路,实现了一套完整的量化系统和回测工具,这个系统非常简单,用户只需要把交易意志用策略表达出来,系统就可以自己完成交易效果的回 ...

  3. vue教程2-04 vue实例简单方法

    vue教程2-04 vue实例简单方法 vue实例简单方法: vm.$el -> 就是元素 vm.$data -> 就是data <!DOCTYPE html> <htm ...

  4. Directx11教程(42) 纹理映射(12)-简单的bump mapping

    原文:Directx11教程(42) 纹理映射(12)-简单的bump mapping        有时候,我们只有一个粗糙的模型,但是我们想渲染纹理细节,比如一个砖墙,我们如何在只有一个平面的时候 ...

  5. Directx11教程(19) 画一个简单的地形

    原文:Directx11教程(19) 画一个简单的地形       通常我们在xz平面定义一个二维的网格,然后y的值根据一定的函数计算得到,比如正弦.余弦函数的组合等等,可以得到一个看似不错的地形或者 ...

  6. Directx11教程(6) 画一个简单的三角形(2)

    原文:Directx11教程(6) 画一个简单的三角形(2)      在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变, ...

  7. Directx11教程(5) 画一个简单的三角形(1)

    原文:Directx11教程(5) 画一个简单的三角形(1)       在本篇教程中,我们将通过D3D11画一个简单的三角形.在D3D11中,GPU的渲染主要通过shader来操作(当然还有一些操作 ...

  8. AI趋势量化系统(Binance升级版)

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. B圈大跌行情,如何应对? 近期,伴随着美联储持续的加息进程,数字货币市场不论是市场焦点LUNA,还是BT ...

  9. 【小型系统】简单的刷票系统(突破IP限制进行投票)

    一.前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了 ...

随机推荐

  1. Discuz! X3 数据字典

    pre_common_admincp_cmenu 后台菜单收藏表 字段名 数据类型 默认值 允许非空 自动递增 备注 id smallint(6) unsigned    NO 是   title v ...

  2. Spring Boot 与 Spring Cloud 的版本对应

    事项 列表 spring官方对应查看网址 https://start.spring.io/actuator/info spring-cloud-dependencies 版本列表 https://mv ...

  3. VoIP基本原理

    VoIP基本原理 VoIP是通过Internet等互联网络传递语音信息的,主要包括终端设备.网关.网守和网络管理等部分.网关负责提供IP网络和传统的PSTN接口. VoIP的基本原理:通过语音压缩算法 ...

  4. Splay&LCT

    Splay && LCT \(\text{Splay}\) 基本操作 1.\(Zig \& Zag\) 其思想是维护中序遍历不变 实现中我们不真的用\(Zig\)或\(Zag\ ...

  5. Selenium元素定位的几种方式

    一.通过id查找 例:<input id="kw" name="wd" class="s_ipt" value="" ...

  6. 解决mysql无法显示中文/MySQL中文乱码问号等问题

    一般都是编码格式问题 显示编码格式: show variables like'character_set_%'; 将其中Value不是utf8的改为utf8: set character_set_cl ...

  7. nginx 访问控制之 document_uri

    这就用到了变量$document_uri,根据前面所学内容,该变量等价于$uri,其实也等价于location匹配. 示例1: if ($document_uri ~ "/admin/&qu ...

  8. MyBatis智能标签!

    if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ...

  9. 实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)

    主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生成一个 log ...

  10. cocos执行tolua/genbindings.py文件,错误搜集:

    1.PYTHON_BIN not defined, use current python.这个不是错误 2.llvm toolchain not found!path: /Users/staff/Do ...