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(***.***.***.***)已经投过票了 ...
随机推荐
- canvas详解---矩形绘制
首先,就上述绘制弧线的章节进行一个小小的补充: 如果我们使用了context.beginPath();紧接着后面的context.moveTo(x,y),可以改为context.lineTo(x,y) ...
- c小例子 10个数找出第一名
这个小例子,是从十个数中找到第一名,如果第一名的分数相同,则二者都可以晋级,进入下一轮比赛,我们就对这个数进行排序,这样要求输出晋级人员的标号0-9号中其中一个或几个. 如何用c语言来实现呢? 1) ...
- python基础知识笔记-集合
集合使用花括号将元素之间用逗号隔开即可.集合的输出里不会出现相同的元素.集合中有并集.交集.差集等,以下为一些简单的表达: def main(): list1=[1,1,2,2,3,3] print( ...
- wordpress面包屑导航简单实现
前面我们学了一行代码搞定WordPress面包屑导航breadcrumb,现在wordpress文档中有一个简单实现的方法,适用于page页面,有二级分类的情况(Simple breadcrumb t ...
- 学习:SLT_string容器
前言:这个学了感觉没多大用,自己只需要了解就好,忘记了可以参考以下网站的示例 参考网站:https://github.com/AnkerLeng/Cpp-0-1-Resource/blob/maste ...
- 在windbg调试会话中查找.NET版本
如何在调试会话中找到调试对象中使用的.NET运行时版本?以自动/脚本方式,不使用调试器扩展或符号? 答案: !for_each_module .if ( ($sicmp( "@#Module ...
- ent 基本使用十五 一个图遍历的例子
以下是来自官方的一个user group pet 的查询demo 参考关系图 环境准备 docker-compose mysql 环境 version: "3" services: ...
- luogu P4248 [AHOI2013]差异 SAM
luogu P4248 [AHOI2013]差异 链接 luogu 思路 \(\sum\limits_{1<=i<j<=n}{{len}(T_i)+{len}(T_j)-2*{lcp ...
- 洛谷p1967货车运输(kruskal重构树)
题面 题解中有很多说最优解是kruskal重构树 所以 抽了个早自习看了看这方面的内容 我看的博客 感觉真的挺好使的 首先对于kruskal算法来说 是基于贪心的思想把边权排序用并查集维护是否是在同一 ...
- shell 四则运算
test.sh #/bin/bash read -p "请输入第一个数:" a read -p "请输入第二个数:" b if [ $a -gt $b ] th ...