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(***.***.***.***)已经投过票了 ...
随机推荐
- Win10系统如何关闭自动更新?
现在很多电脑的系统都升级到了win10了,win10已经渐渐普及到每个人的电脑中,但是,win10系统有一个功能特别讨人厌,我自认为挺讨厌这个功能的,它就是“自动更新”功能,你可能会说,自动更新不是挺 ...
- DT下重新定义设置发布发布条数后的跳转页面
destoon系统有些地方还是做得不够细致,今天给大家分享一个重新定义发布条数满了以后的页面跳转 正常逻辑跳转应该是会员升级页面而不是会员中心首页,修改方法如下:(感谢DT朋友提供的修改方案) 打 ...
- 原生js的常用方法总结
=============== 通知: 博主已迁至<掘金>码字,博客园可能以后不再更新,掘金地址:https://juejin.im/post/5a1a6a6551882534af25a8 ...
- 学习:费马小定理 & 欧拉定理
费马小定理 描述 若\(p\)为素数,\(a\in Z\),则有\(a^p\equiv a\pmod p\).如果\(p\nmid a\),则有\(a^{p-1}\equiv 1\pmod p\). ...
- c语言联合union的使用用途
在使用联合的使用,我们通常用来判断大小端,但是其实不仅仅有这个用处. 我在网上看到还有其他的用途: 1.分离高低字节 这个需要结合cpu大小端来判断,原文如下: 这样的操作,而一个除法消耗四个机器周期 ...
- html 复习(for循环不同内容的div)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 【JZOJ6233】【20190627】心的旋律
题目 你需要构造一个\(n\)个点的二分图 定义\(F(A)\)表示左部点集\(A\)能够到达的右部中的点 使得满足 $ F(A) \lt |A| $ 的集合恰好有 $ k $ 个 \(1 \le n ...
- 原创:Kmeans算法实战+改进(java实现)
kmeans算法的流程: EM思想很伟大,在处理含有隐式变量的机器学习算法中很有用.聚类算法包括kmeans,高斯混合聚类,快速迭代聚类等等,都离不开EM思想.在了解kmeans算法之前,有必要详 ...
- python 虚拟环境指定python版本
virtualenv --no-site-packages -p python3.7 testenv source testenv/bin/activate deactivate 参考:https:/ ...
- python之turtle使用:画一颗美美哒的树
关于工具介绍这里小生就不赘述了,这里附上个人觉得最详细的文档地址:https://docs.python.org/zh-cn/3/library/turtle.html?highlight=turtl ...