股票量化交易软件:赫兹量化中新用户的几个小窍门

.3. 人工系统的自动化

这是最复杂的类型之一。,一个人可能是训练有素而且成功的交易高手,但是他把他的交易系统变成某种算法的时候,可能最终要把图标中的每个价格和指标的数值都描述清楚。这是因为他是根据直觉来交易的,交易信息的处理是隐藏在潜意识中,输出的是最终结果。这样的交易人员并不知道结果是如何导出的。赫兹量化交易软件

如果系统建立失败了,最好的选择是逐步自动化交易过程。任何系统都是有标准的元素组成的(打开/关闭 仓位/订单, 风险控制, 仓位管理等等)。把你的工作分成阶段,然后分别处理每个阶段。这样交易过程逐步就能够全部自动化.赫兹量化交易软件

第二个选择是立马放弃全自动系统的想法,专注于开发一个半自动系统. 大致过程是这样的: 交易人员决定什么时候在哪里开启仓位,其他部分由EA智能交易程序完成。要不然,你也可以设定进场的时间和/或价格范围,定义成一定的条件,然后智能交易程序监测这些条件,当条件在范围之内的时候开启仓位。赫兹量化交易软件

这样的话,最好分两步进行. 第一步是从开发半自动系统开始,用来处理主要的常规的交易操作. 第二步把你的工作分成几个阶段,每个阶段都是最终版本智能交易程序中独立的行为。前面两步也可以相结合来做.赫兹量化交易软件

2.4. 使智能交易程序去泡茶

有的时候,有些订单只是在需求规格的一小部分中列出一系列关于交易模式的功能,而其余大部分写的是监测计算机环境和网络,发短信息和通知电子邮件,跟踪各种故障包括交易程序环境的细微改变。然后用声音(或者语音)通知给客户.赫兹量化交易软件

以上这些,如果客户和执行方都想去做的话是可行的,但是客户一般不会愿意花钱做这些功能,智能交易程序真的需要做这些吗?我相信不需要。这样的智能交易程序也不能保证能够独立工作, 因为总有可能发生致命错误(比如断电)。赫兹量化交易软件

所以这一类功能在智能交易程序中只要很简单就可以了,这样的话,开发智能交易程序不仅需要的钱会少一些,而且也会使程序更可靠,因为功能越少,错误也会越少。赫兹量化交易软件

2.5. 做那个,不知道做哪个

这句话的前一部分 - "去那儿,不知道去哪儿",常用在客户和执行者之间工作即将做完的时候。因为交易系统并不会考虑周全, 在开发智能交易程序(或者指标)的时候,客户会要求进行修改,增加和删除需求规格。赫兹量化交易软件

我认为,如果这样的变化从编程角度上看不需要很多精力,那是可以接受的。一些细节是很容易忽视或者忘记的。然而,有些从客户角度看起来很应当的改变实际上需要修改智能交易程序的基本部分,最关键的是,这些改变会要求改变程序的逻辑。常见的例子是,智能交易程序从原来的直接从市场下单改为挂限价单。赫兹量化交易软件

这里能给的建议只能是,需求规格对执行者和客户都要完整清晰。对需求规格的修改时间有的时候可能比开发工作本身还要长 . 而且我相信,确定目标也是工作的一部分,所以这很正常。赫兹量化交易软件

3. 理想的需求规格,是什么样的?

一般来说,从为开发而写需求规格的结构角度,理想的需求规格大致如下:

3.1. 操作环境

需要开发的终端 赫兹量化交易软件). 这是订单中最重要的,也是通常在需求规格中被忽视的。这应该在订单主题中说明,因为不是每个开发人员都同样熟悉MQL5语言,或者相反,开发人员可能直接学习了MQL5而没有学习MQL4。赫兹量化交易软件

3.2. 开发所要对应的交易中心或者交易经纪公司

这个信息在开发EA智能交易程序或者脚本的时候需要。不同的交易中心或经纪人可能有不同的特点,比如:订单的执行,最小/最大手数, 隔夜仓位, 报价的小数位数, 账户的币别, 跨周报价是否需要额外处理, 固定点差或者浮动点差, 运作是基于新柱开启还是每一订单, 等等。

客户最好根据自己的交易中心或经纪人的特点,用所需的币别开一个模拟账户,然后在给开发人员使用。这是必要的,因为有些交易中心(比如Oanda)在开模拟账户的时候还是需要在它的网站注册并且填写一些资料等等。这将会节约开发人员的时间,可能在程序调试和测试工作中需要。

3.3. 开发是需要针对真实账户还是只需要测试或者模拟账户

这点区别其实很关键. 测试过程中,速度是最关键的 (它会影响优化的时间), 而且为真实账户做开发的话,有一部分重要的工作是做错误处理和恢复机制,当EA交易程序遇到各种连接失败或者终端重启后能够重建回正常状态。也就是说,测试针对真实账户的智能交易程序,需要的时间可能多几倍甚至几十倍。这也会很大程度上影响所需开发经费的多少。赫兹量化交易软件

所以这个时候你需要问自己 - 我真的需要针对真实账户的智能交易程赫兹量化交易软件序吗?如果开发只是做试验或者验证算法而没有最终确定不做修改,就没有必要特别定制为针对真实账户。而且这可能使优化过程变得很慢。你可以在算法确定以后再定制一个针对真实账户的开发项目,这样并不会贵多少。

3.4. 操作算法描述

还应该提供一个外部参数的临时列表(如果可能需要的话),指定想要的名字和默认值。这会很大程度加快开发人员的日常工作,也帮助避免询问一些不必要的问题或者寻求客户方的解释。

3.5. 显示信息的类型

这里应该特别制定,因为客户可能不希望显示所有信息. 所以最好在完成需求规格的时候把它排除. 如果需要在智能交易程序或者指标工作过程中显示某些信息,最好提供适当的格式,指出图表执行操作时的背景颜色(黑,高亮,白或者其他)。赫兹量化交易软件

如果需要插图来更好的解释操作算法,也应该提供给开发人员。用插图配合以对应的注释来解释算法,比用几页文字都更加简单和清楚。

准备得很好的需求规格,毫无疑问将会有助于开发的完成,获得期待的结果。所以,在处理您需求规格的要点是,不要试图节约时间,否则在开发过程中你需要额外的精力。

3.6. 其他杂项部分

这里你通常可以找到常规的条款和要求,可能是要求在工作的最后阶段提供源文件(代码),源文件中提供注释,修改错误的期限和其他要求。

4. 关于调试和测试

这是根据需求规格,检查指标或者智能交易程序是否实际符合要求的阶段。你可能知道,计算机编程的墨菲定律里面有一条就是:每个程序至少都有一个错误。还有个推论的说法是: 每个被发现和修改的错误都说是最后一个。当然,上面的定律像是个笑话,但是当程序(包括指标和智能交易程序)比较复杂的时候,其实和事实还是很接近的。

从而可以引申出另外一个结论:如果在你接收了工作以后发现一个或者多个错误的时候,你不应该怀疑开发人员有不良的企图或者能力不够。我相信,衡量执行人员提供服务的质量,主要还是看他在工作中是否能迅速有效的改正那些错误。

我认为,针对使用多种逻辑条件和分支算法实现的复杂系统,在测试的时候最好使用渐进式开发和测试。那些问题应该被分割成逻辑相互独立的几个部分,然后由客户挨个解决和测试,最后一起执行。最后,关于部分间相互关联的测试部分,应该早点测试保证能够一起工作。

工作简单还是复杂的概念理解主要取决于执行方的经验以及客户方对工作细节的理解程度。MetaTrader 4 和 MetaTrader 5 都提供了多种多样的测试方法和技术,一些用户并不了解(或者忘记了,其实我之前也提过一些)可以在历史数据上面运行智能交易程序. 而其中最重要的是测试器可以在赫兹量化交易软件

这种测试方法非常强大也很方便,自定义指标和智能交易程序可以通过几分钟的快速测试模式在历史数据下作测试,而且可以直接看到执行交易的相关信息来监测测试的成绩和结果. 行情的表现还可以放慢甚至暂停,从而给您时间来分析某些交易的细节。

通过测试器中的测试,您可以在模拟账户中验证智能交易程序的工作效率。模拟账户中用一天半时间进行实时工作,通常就足够确认了。另外,尽管提供了很长的时间区段设置选项(如星期图或者更长的),这些图表不大会用于测试。

5. 描述发现的错误

对于描述用户所发现错误的最佳方式,我还想提几点。看个极端的例子吧,错误不应该这样描述:你的智能交易程序完全不工作,它应该能开多个仓位的,可是一个都没有。

如果不提供任何关于资产,时间区段,参数表的相关信息,开发人员只能够猜测在客户终端中到底发生了什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值