量化交易其实就像《物种起源》里的物种一样,随着计算机与智能机器人的发展,投资量化是时代发展的必然产物。所谓能者为先适者生存,这是放诸四海皆为本的生存法则。在现代科技欣欣向荣的发展环境下,量化交易所表现出的种种优势,使全球投资者都必须花费庞大的人力、物力和财力用于机器人量化交易的研发上。
由于量化交易策略自身的特质,其首先存在着比较强的可塑性。作为采用数量化手段构建而成并进行决策的交易策略,其在构建过程以及决策过程中,都是可以被精确度量的。相对而言,主观交易与量化交易,虽然在复盘等过程中可以得到数量化的交易结果,但是由于缺乏整体性的精确度量;因此局部的定量化结果往往波动较大、在很大程度上不具备稳定的刻画能力。
这一特性带来了量化交易策略的另一个优点,即可验证性。由于未来的数据是不可得的,实际上交易员在判断一个交易策略时,很大程度上都依赖于历史数据上的测试结果。然而主观交易者在复盘或者其他测试过程中含有人为判断的成分,因此历史验证就成为了一个不可精确重复、缺乏稳定性和说服力的部分,这对于此类交易策略而言是一个比较严重的缺陷。
量化交易策略就不存在这个问题,在构建和表述数量化的基础上,进行庞大的历史数据回溯测试,均能够得到一致的结果。如果测试结果是正向的,至少可以说明该量化策略在历史检验上具有盈利能力。
上述两个特性使得量化交易策略具有较强的客观性。由于构建交易策略的过程中数量化手段占主导地位,交易决策更是具有明确的数量化规则,因此量化交易策略可以在很大程度上规避策略开发者的主观臆断,在构建的过程中始终获得客观的对待。
同时,明确的数量化交易决策规则这一特点,也使得交易员在执行量化交易策略时,有希望完全排除情绪对于整个交易过程的干扰和影响。基于数量化规则,量化交易策略本身具备相当的独立性,不需要交易员的主观判断也可以完整的指导整个交易流程。而主观的交易策略由于在交易操作中需要持续的人为控制和判断,因此不可避免的存在一定的偏向。行为经济学里研究了很多相关的问题,包括损失厌恶偏向、过度自信偏向、参考点偏向等等,都是一些人类固有的行为偏向。当这些客观存在的偏向影响到交易策略的实际执行时,交易结果的预期从最优点处发生偏移就无法避免了。
虽然量化交易策略不可能帮助我们完全的规避这些问题,但是数量化的框架和规则确实可以尽量减小这些不安定因素所带来的损害。
上面所说的排除情绪化操作,实际上也包含了交易员常常谈到的一致性,也就是保证交易策略在执行过程中,使用相同的交易规则,其中包括买入点、卖出点、交易仓位大小的确定等等。如果交易员在执行量化交易策略时不主动加入人为判断,量化的交易规则可以帮助其很轻松的完成这个任务。更为重要的是,量化交易策略可以做到历史验证过程和实际交易行为的一致性,因为不论是真实交易决策,还是历史回溯测试,所参照的交易规则都是由数量化表达精确定义了的。这种整体上的一致性,是绝大部分主观交易策略都无法保证的。
量化交易策略的数量化特点,及其带来的一致性,使得这种策略具备了比较好的可移植性。除非使用特定的量化因素,一般而言量化交易策略是比较容易在一个市场或者资产上证实有效后,移植到其他的市场或资产上使用的。
例如,当策略使用的量化数据仅限于价格时,所有存在报价的市场都能够使用历史数据来验证这种量化交易策略。而当使用的量化数据包括价格和成交量时,除了外汇市场等少数情况外,量化交易策略也是能够移植到其他大部分的场内交易市场上的。量化交易策略所使用的数据的可得性越强,其移植能力也就越强。
同时,由于量化交易策略可以很方便的得到数量化的验证结果,收益、风险等策略特征都能够通过数据形式得以呈现。因此,在量化交易策略被应用到多个市场或者资产上时,策略开发人员可以通过数量化结果这样的直观形式来进行横向对比,从而针对性的选取适合某一特定量化交易策略的市场,或者在多个市场之间进行配比。而由于量化交易策略的执行过程中不需要交易员的主观判断,因此相比于主观化的交易策略,其有能力同时覆盖大量的市场和资产,这对于投资组合的分散化来说具有很好的辅助作用。在现实中,大部分的量化基金都持有数量较多的资产和资产种类来组成投资组合,这正是利用了量化交易策略的特性从而更方便的分散风险。
另一方面,对于量化交易策略而言,这种多个市场间的策略移植所需要的成本很小,在一些情况下甚至不需要变动原先的基础工具,因此降低了研发成本,同时节省了宝贵的研发时间。而量化交易策略不仅仅可以在策略研发的过程中帮助节省时间、降低成本,由于其具有非常明确的数量化规则用以指导交易,因此策略在实际使用的过程中可以脱离人为判断,执行速度更快,运作效率得到了提高。不论是否采用程序化的执行手段,量化交易策略都能够在实际交易中减少人的负担,也就减少了许多重复性的劳动。对于一个交易策略的控制者而言,就能够把更多的精力放在最为核心的策略创新上。
而在策略创新上,量化交易策略本身也具有一定的优势。在科学不断进步的今天,越来越多的先进技术被创造出来并应用到各种情境之下。通过结合多个不同学科的知识和相应的数学模型,量化交易策略更有可能发现一些隐藏较深的复杂数据规律,而这些规律往往不太容易被主观交易者察觉得到。时至今日,神经网络、支持向量机、隐马尔科夫模型等机器学习模型已经开始被量化交易从业人员频繁提起。

实际上就整个行业的状况而言,量化交易策略还有一个不太被人提及的优点或者说特点,那就是能够在一定程度上帮助公司减小对所谓的明星交易员的依赖。由于在交易流程当中,做决策的不再是具体的交易员,而是已经具有明确规则的量化交易策略,因此在量化交易策略研发完毕、甚至只是核心理念构建完成之后,公司对于量化交易策略的研发者的依赖程度就会迅速下降,这一方面可以帮助公司在人员配置上减少支出,更重要的是提高了公司对于交易整体的控制程度。整个公司系统的核心优势在于量化交易策略本身,因此不会由于人员变动等问题而非常迅速的消失,有利于公司在量化交易方面保持长期稳定。
不过这个特质在稳定公司的同时,实际上也损害了量化交易策略研发者的利益。
量化交易策略的研究人员在策略研发完成之后丧失了一定的价值,因此在薪资等方面也不如主观交易的明星交易员一般具有讨价还价的底气。这也导致一部分的量化交易从业者较为消极的对待工作,甚至选择保留核心交易策略,进而隐性的损害了公司的利益。好在很多情况下,量化交易策略即使在研发完成之后,仍然需要不断的改进,从而适应市场环境的不断变化,因此对量化交易策略研发人员的持续需求仍然是存在的。当然,这个问题要妥善解决,仍然在于公司对此的激励政策。
量化交易策略由于其明确而数量化的交易规则,不仅仅会造成上面提到的这一缺点,更重要的是,这些明确的量化规则是非常容易复制的。量化交易策略和许多科技创新一样,具有研发困难、复制简单的特点。即使在最终交易规则保密程度良好的情况下,仅仅只是泄露出一些策略理念出来,相比于主观交易策略,量化交易策略也有更大的可能会被逆向工程破解从而外泄。这种特性一方面增加了量化交易策略使用的成本,另一方面也加大了量化交易策略在交易之外的风险。一些量化交易的从业者在交流过程中非常的小心谨慎,一些公司在管理量化交易时执行诸多规章条例,或者对员工在合同上的严格限制甚至对簿公堂,都是由量化交易策略这一特性引起的。
量化交易策略还有一个非常重大的缺点,就在于量化这个特性本身。诚然这一特征为量化交易策略带来了多种优势,但是由于这一特点,使得量化交易策略在对待无法量化的因素时,只能采取舍弃这样较为无奈的处理办法。因此,量化交易策略损失掉了很多其实有可能带来盈利的信息,也使得策略在处理信息时所覆盖到的范围变得狭窄。当然,随着科学技术的发展,一些之前无法被量化的因素开始进入量化交易策略的研究范围之内,例如针对网络信息刻画出的投资者情绪等等。但是,即使科技手段会让量化交易策略能够处理的信息范围更广更深,对比起主观交易策略而言,这样的缺陷始终是量化交易策略无法彻底摆脱的。这种来源于自身特性的缺点,只能改善而无法根治。
同时,由于量化交易策略在构建过程中采用的是数量化的方法,需要一定数量的数据样本进行研究,而相应的数据都是随着时间逐渐产生的,因此当量化交易策略的构造形式没有本质上的改变时,从数据中抽取的数量化特征也只会随着时间逐渐变化,策略所形成的交易也只能缓慢的变化。当市场情形发生重大转变时,这种缓慢变化的特性会导致量化交易策略无法适应转折期的市场,在短时间内造成较大的损失。相比较而言,一部分定性的交易策略由于主要基于逻辑上的思路来进行交易,因此当市场情形发生改变时,能够基于主观逻辑迅速进行本质上的策略调整。转向缓慢这一特点也是量化交易策略一个较难改善的缺陷。
我正在使用这个:4.times{|i|assert_not_equal("content#{i+2}".constantize,object.first_content)}我之前声明过局部变量content1content2content3content4content5我得到的错误NameError:wrongconstantnamecontent2这个错误是什么意思?我很确定我想要content2=\ 最佳答案 你必须用一个大字母来调用ruby常量:Content2而不是content2。Aconstantnamestart
是否存在GC.disable会降低性能的情况?只要我使用的是真正的RAM而不是交换内存,就可以这样做吗?我正在使用MRIRuby2.0,据我所知,它是64位的,并且使用的是64位的Ubuntu:ruby2.0.0p0(2013-02-24revision39474)[x86_64-linux]Linux[redacted]3.2.0-43-generic#68-UbuntuSMPWedMay1503:33:33UTC2013x86_64x86_64x86_64GNU/Linux 最佳答案 GC.disable将禁用垃圾回收。像rub
我想知道使用fork{}从Rails应用程序“后台”处理是否是个好主意...从我收集到的fork{my_method;Process#setsid}实际上做了它应该做的事情。1)创建另一个具有不同PID的进程2)不中断调用过程(例如它继续w/o等待fork完成)3)执行子进程直到它完成..这很酷,但这是个好主意吗?fork到底在做什么?它会在内存中创建我的整个railsmongrel/passenger实例的重复实例吗?如果是这样那就太糟糕了。或者,它是否以某种方式在不消耗大量内存的情况下完成。我的最终目标是取消我的后台守护进程/队列系统,转而支持这些进程的fork(主要是发送电子邮件
我有一个单表继承设置,我有一个Controller(我觉得有多个Controller会重复)。但是,对于某些方法,我想调用模型的子类。我想我可以让浏览器发送一个参数,我会针对该参数编写一个case语句。像这样的东西:case@model[:type]when"A"@results=Subclass1.search(params[:term])when"B"@results=Subclass2.search(params[:term])...end或者,我了解到Ruby的所有技巧都可以用字符串创建模型。像这样的东西:@results=params[:model].constantize.
在我的Rails应用程序中,我收到来自brakeman的以下安全警告。使用模型属性调用的不安全反射方法常量化。这是我的代码正在执行的操作。chart_type=Chart.where(id:chart_id,).pluck(:type).firstbeginChartPresenter.new(chart_type.camelize.constantize.find(chart_id))rescueraise"Unabletofindthechartpresenter"end根据我的研究,我还没有找到任何具体的解决方案。我听说你可以创建一个白名单,但我不确定brakeman在寻找什么。
我想使用比Rails(Sinatra/Ramaze/Camping)更轻的框架,但我担心这样做我将无法使用许多以插件形式为Rails定制的共享库.这是一个主要问题,还是这些插件中的大多数都可以跨不同的Ruby框架使用?使用Ruby框架而不是Rails是否还有其他潜在的缺点? 最佳答案 您仍然可以使用gems在你提到的所有框架中,很多东西都是可重用的。想要交换一个新的ORM,没问题。想要一个花哨的shmacy语法高亮,没问题。Rails一直在大力插入摆脱旧的插件模型,转而使用gems。如果其他框架之一符合您的需求,最好使用它。请记住,
我想知道在Rails中是否可以在一个事务下进行多次更新和创建。我想创建一个no。来自任何数组的Products。但是对于每个产品,我还需要为其创建Company和Category。所以思路是这样的--Startatransaction//createacompany//createacategorywhileproduct_list{//createaproductwithcompanyandcategorycreatedabove}--endatranscation因此,如果任何创建失败,我希望回滚较早的更新/创建。 最佳答案 b
推荐阅读1:【创业粉引流变现项目】推荐阅读2:【抖音网上如何赚钱变现】推荐阅读3:【中视频横版16:9视频制作教程】对金融人士来说,“洗盘交易”(washtrading)并不是一个新词。加密货币也以相同的买入和卖出手法来回进行“洗盘”, NFT 市场亦是如此。“洗盘交易”使得NFT爱好者很难衡量市场对某一系列的真正兴趣,还夸大和扭曲了交易量,对交易平台的分析也造成误导。那如何用链上数据来识别“洗盘交易”,检测可疑活动呢?本文来自 Forkast,原文作者:ANNDYLIAN,由Odaily星球日报译者Katie辜编译。什么是“洗盘交易”?洗盘交易是一种市场操纵形式,投资者同时买卖同一种金融产品
为什么需要NFT市场?NFTMarketplace允许用户购买、出售、交易、查看或创建自己的NFT,就像他们需要一个市场来购买物理或数字世界中的大多数产品一样。几乎每个人都可以进入NFT市场,但要做到这一点,用户必须满足以下要求:一个NFT市场用户账户,允许您在给定平台上购买NFT。你需要一个与区块链兼容的加密钱包来购买NFT。NFTMarketplace非常重要,因为它连接了买卖双方,并为用户提供了多种工具来快速创建自己的NFT。艺术家可以在市场上列出要出售的NFT,买家可以通过投标过程探索市场并购买物品。NFT市场开发过程解释创建NFT市场是一个耗时的过程,需要编程知识和理解。那么搭建NF
我看过很多过时的播客,其中提到摩卡是我想安装的一个宝石,因为它确实比rspec更好模仿。我有一种感觉,rspec开发人员已经意识到这一点,并从那时起改进了他们的模拟。但是,在默认的spec_helper.rb文件中,我看到三个模拟框架的一些注释掉的代码存根mochaflexmockrr向任何能给我一个像样答案的人投赞成票,就这些框架中至少一个的利弊与rspec自己的模仿框架进行比较。如果你能给我一个关于这三个问题的详细说明,我会接受你的回答。 最佳答案 真的,这只是口味的问题。看一看语法,看看什么最适合你。当然,使用rspec的内置