写一篇关于 "如何为交易机器人写一份TOR "的文章 - 页 6

 
Aleksey Vyazmikin:

这就是很多细节的出现和错误的发生。这就是为什么当务之急是对EA进行真实报价测试。

你只需要考虑到这一点,并商定一个合理的时间框架。


技术任务是一件事,它的执行情况可以由第三方客观地检查。否则就是学校作文 "关于夏天 "的任务。


关于善良

 
Maxim Kuznetsov:


一项技术任务是可以由第三方客观地验证的东西。否则,就是 "关于夏天 "的学校作文作业。

作文得了A,想象力丰富。

但是,你跳过了这个话题--我是说,测试必须基于真实的数据,客户应该意识到这一点,承包商应该在申报的最后期限内考虑到这一点。

 
Aleksey Vyazmikin:

5美元的作文--伟大的想象力!

但是,你跳过了这个话题--我是说在真实数据上的测试是强制性的,客户应该意识到这一点,承包商应该在规定的最后期限内将其考虑在内。

假设你已经写了一个EA(代码和大部分的调试甚至)。接下来的客观事情是--为客户检查真实账户上的猫头鹰,你需要一些时间和相同的真实账户。

你们如何共同确保任务的完成?

 
Maxim Kuznetsov:

假设你已经写了一个EA(代码,甚至大部分时间都在调试它)。然后,一个客观的事情随之而来--为了在真实账户上检查猫头鹰,客户、你、仲裁员需要一些时间和相同的真实账户。

你们大家将如何检查任务是否完成?

如果你不确定订单的正确性,你可以使用终端的服务日志并检查订单处理逻辑。

问题是什么?是的,我实际上在测试器中遇到了一个工作的EA,在真实账户上不能正常工作,是的,EA声称它应该是这样的,仲裁员一直保持沉默,直到我拿出一段代码,戳穿了EA的鼻子。在承包商的无能上浪费了我大量的时间和神经,所以如果承包商等待他的报酬,我认为没有问题。

或者是我不明白的地方,请详细说明你的论点,以便进行实质性讨论。

 
Maxim Kuznetsov:

这一切是为了什么?

需求规格是由承包商(或经过专门培训的第三方顾问)编写的。而 且它包括核查的方法。
对客户的任何不必要的要求,他都没有义务去了解所有程序员的诀窍。

客户应该说(以书面形式,而不是视频或Skype)。

- 我使用这些指标和脚本

- 我坚持遵守以下规则

- 已经在或多或少的官方演示上进行了一周、一个月或一年的交易, 这是多少钱。而在另一个这样的时期。都可以选择通过复制到美分账户进行备份。

- 你需要实现自动化

开发者准备并同意TT(以双方都能理解的形式),写一个猫头鹰,如果测试器中 的一切都或多或少地与提到的时期 趋同,那么专家顾问就完成了。

变体--我们应该在演示/中心--真实/等方面进行检查,这已经超出了自由职业者的极限。

我不参与自由职业的原因很多,但写TOR要花钱,而且往往是很多。而且,在我看来,自由职业者的平均支票是50美元。从这个已经很悲惨的数字中还能划出什么来支付承包商撰写TOR的费用?或者他将免费写作?

 

我在文章中添加了更多内容 - 我添加了“职权范围应包含哪些内容”部分,并写了如果您无法自己撰写,从何处获取职权范围

Что нужно для заказа торгового робота

交易机器人是执行嵌入其中的算法的程序。算法是在事件发生时必须执行的一组动作。例如,算法交易中最常见的任务是定义“新柱”事件,当出现该事件时,机器人会检查交易信号的出现并对其执行必要的操作。

但在编写或订购交易机器人之前,必须有一个交易系统,其中有明确的规则来确定进行交易的有利时机。任何,即使是最复杂的交易系统的开发总是从基本的事情开始,即从开发交易信号开始。接下来,您可以为其添加各种后续和关闭选项。

您无需在交易终端的监控下花费数年时间来制定您的交易策略。现在有数百个经过验证的想法发表在互联网和书籍中,您可以尝试。即使您对自己的编程技能并不完全有信心,这也不是障碍。 Freelance服务将帮助您找到合适的开发人员并安全地为完成的工作付费。

但在进入算法交易的迷人元素之前,我们建议您阅读有关该主题的有用文章:

为什么拥有一个好的职权范围很重要?

在订购或开发 EA 交易时,有必要为其制定技术要求 - 它应该解决什么任务,它将在什么条件下运行,在紧急情况下会发生什么,它需要什么样的控制。交易机器人是程序,必须按照底层逻辑清晰地工作。但在编写必要的动作算法之前,还必须清楚地描述它。

交易策略的描述必须以职权范围的形式发布。而且它会越好越清晰,作为客户的您与作为订单执行者的程序员之间的误解就越少。

职权范围中最重要的是存在正式的明确交易规则。即使您不打算在旁边订购专家,而是想自己编写,也可以从为自己制定这些规则开始。制定职责范围并确保包含有关测试/优化 EA 的项目。还要添加假设来测试您的交易策略的质量——您将使用什么标准来选择最佳参数,为什么您认为这些标准很重要。

在参考条款中包含创建交易机器人的所有步骤——这将有助于理解算法的本质,不仅对执行者,而且对您在数周、数月或数年后也如此。请记住,算法交易不是一种爱好,而是同样单调的研究路径,在此期间有必要记录所经历的阶段。对我自己而言,不仅仅是为一个会为你编写机器人的程序员。

培养喜欢整理事情的官僚的技能。你肯定会需要这个。是的,程序员喜欢明确的命令。

职权范围内应包含哪些内容

贸易理念

要快速了解交易策略的本质,请将您的技术订单的第一段专门用于其包含的想法/假设。例如:“如果价格两次接近阻力位并且每次都回落,那么第三次,它通常会突破它。”在这里,您可以附上一张图表,其中包含绘制的阻力/支撑线、叠加指标和说明情况的签名。为了描述这个想法,不需要给出具体的数字或计算算法——在这个阶段,不需要解释我们如何确定:

  • 阻力水平,
  • 等级分解,
  • “一般”的概念。

在初始阶段进行少量抽象将使您专注于想法本身,而不是技术细节。此方法允许您随后生成更多种类的交易策略 - 您只需将一个策略块替换为另一个,将一个指标替换为另一个,添加或替换过滤器。同时,想法本身不会改变,只是您的交易机器人输入参数的名称和值会改变。

此外,有必要对在该想法的描述中使用的所有术语进行描述。如果趋势对策略很重要,请清楚说明如何确定趋势 - 根据哪个指标,如何确定趋势的方向和强度。这些定义的数值特征将构成 EA输入参数的基础,然后您将在策略测试器中对其进行优化。因此,将您的职权范围的第一部分命名为 - 交易理念。

条款

为了描述这些条款,我们建议创建一个单独的参考条款 - 条款部分。其中,为每个术语编写了一个单独的段落,术语本身以粗体书写,以突出您交易策略的关键概念。如有必要,请在术语描述中添加插图,您需要在其中显示最必要的理解。

交易信号

接下来,您准备好编写第三个最重要的部分 - 交易信号 - 它描述了在什么条件、市场条件和指标读数下会发生购买。为了描述生成买入信号所需的每个条件,有必要挑选出一个数字参数,信号的出现取决于该参数。例如,对于移动平均线,这将是平滑类型和周期。这些重要参数被纳入未来智能交易系统的输入参数中。单独描述销售条件,即使它们与购买条件完全相反 - 有时会出现程序员可能与您理解不同的微妙之处。例如,对于购买,设置条件“Indicator> 0” - 为销售写什么? “分数<0”还是“分数<=0”?

即使是最简单的交易想法也会很快开始获得额外的条件和过滤器,以确认交易信号的存在,反之亦然 - 禁止交易。因此,为每种市场情况制作解释性屏幕截图非常重要,直观地显示必要的指标和设置。当您的顾问错过了一个看似明显的交易信号或在错误的时间突然进行交易时,这将使您能够快速处理这种情况。

截图和流程图

互联网上有很多免费且方便的程序可用于创建屏幕截图和流程图。订购指标时如何制定参考条款一文中提供了一些使用它们的提示。在那里,您还将找到有关订购指标的提示,该指标在图表上用箭头显示买入和卖出信号出现的时刻。这种与顾问分开工作的指标使在线和视觉测试期间更容易检查和控制交易机器人的操作。

信号/订单/仓位的生命周期

交易策略的第二个重要部分是退出未平仓头寸并删除挂单。此外,交易信号本身也可以通过时间或某些事件的发生来取消。还需要明确描述,对于交易信号,在什么情况下会关闭买入/卖出,取消下单,何时取消信号本身。

维持未平仓头寸和挂单

如果您的交易策略需要设置止损和止盈水平,请提供计算算法。如果需要灵活上拉/移动这些级别,还需要描述此类操作的条件。 SL/TP 水平可以在新柱的开盘时和每个分时进行修改。有必要在职权范围内明确指出这一时刻,并了解测试交易策略模式的差异。我们建议您阅读文章在真实报价上测试交易策略

如果您不能自己撰写,我在哪里可以获得职权范围

一个草拟的职权范围或其实际缺失通常表明交易系统的规则没有制定,它们根本不存在。在这种情况下,客户所称的交易系统实际上通常只是一个想法。在这种情况下开始工作是不可能的,因为很快就会在编程算法的过程中出现无法解释的细微差别或只是在某些市场情况下缺少算法。在这种情况下,程序员实际上开始提出选项而不是客户。

因此,承包商可能会自担风险,完成工作并向客户发出交易机器人。但在这种情况下,除了在不明确的 TOR 中浪费时间讨论每个新问题外,还有工作进入仲裁的可能性。因为客户在接受和检查此类工作时,突然发现交易并没有按照他的预期进行,但无法描述。当然,在这种情况下,他会责怪承包商违反了职权范围的某些点并错误地对机器人进行了编程。在这种情况下,仲裁会迅速了解双方能力的差异,并根据订单所附的职权范围做出决定。根据自由职业者规则,订单执行之前和期间的任何通信均不予考虑:

在考虑仲裁争议的主题时,只有职权范围作为做出决定的依据。

在生活中,这种选择也是可能的:你有严格的交易规则,但由于某种原因你不能自己制定职权范围。例如,他们不确定如何正确描述某些事物,或者他们需要数学、神经网络、机器学习、编程等方面的专家的帮助。在这种情况下,您也可以在 Freelance 中命令创建参考条款,为此,“编程咨询”或“其他”类别是合适的。

选择这两个类别之一,将其命名为“为订购交易机器人创建 TOR”,并按照您的想象指出工作的初始成本。经验丰富的交易系统开发人员将帮助您正确制定策略规则,以便其他程序员可以理解它们。同时,您应该能够使用图表、指标和图形对象,以便使用屏幕截图显示交易信号的设置。

如果可能,程序员将了解您的交易系统并帮助您编写交易算法的描述。如果你不能自己制定一些概念(例如“冲动”或“从关卡反弹”),他可以根据他的经验给你现成的想法。通常,市场中的任何情况都可以在逻辑上(然后以编程方式)进行描述,并具有一定的解释自由。这种变化总是可以通过某个参数来表达,然后您将在您的“EA 交易”中对其进行优化。

没有理想的模式,因为市场一方面不会重演,另一方面类似的情况总是可以在历史上找到。您共同工作的结果应该是根据您的策略订购交易机器人的现成参考条款。

使用什么术语

...最好描述不确定的术语以便相互理解

在 TK 本身中,以粗体突出显示术语- 让表演者注意它们,如果有不清楚的地方提出问题

你不能发送到其他来源(网站/书籍等)。一切都应该在这里和现在描述,没有“我稍后会在 Skype 上解释”

在自由职业者的职位描述中写什么

... 只需要一个通用的公式 - 趋势,逆向贸易。突破水平(简而言之如何定义水平),是否有任何指标/价格行动/使用分时

交易策略的总体思路

...我们根据趋势进行交易,我们以这种方式定义趋势,我们在回滚时进入,我们以这样或那样的方式定义回滚,我们不在晚上和早上交易

等待信号的设置说明

...有必要形成一个随后突破的横盘/或等待欧洲时段结束并仅在其移动方向上接收信号

信号说明

...描述的技术参数 - 趋势/回调/击穿 - 一切都严格形式化

最好先分别调试买入和卖出信号

如果顾问在图表上放置标签/信号对象会更好

最好单独制作信号指示灯

信号寿命

...信号有效的时间 - 以柱/小时/直到会话结束/天

下单和开仓

... 有没有什么特点,例如,我们不立即设置止损/止盈,

或者我们为进入市场做了多少尝试,

或根据时间/设置/模式设置不同的 oredermagic/ordercomment

别的东西

维护交易头寸/订单

... 是否有追踪止损

开启 TS 时

我们是否将挂单移到/背离价格

跟踪未平仓头寸的当前损益

别的东西

取消订单并平仓

... 按时间/柱数/周期结束/相反信号的出现/设置丢失删除订单

...按时间/柱数/周期结束/累积利润/相反信号的出现/设置关闭头寸

别的东西

下订单的手数计算

....从平衡

固定的

从累计利润

基于最近 N 次交易的结果

远离风险(距离 SL)

别的东西

处理交易错误和环境状态

...发送交易订单时的详细日志

终端/连接/服务器重启处理

通过信使/电子邮件反馈

柱线开盘和柱线内交易的区别

... 信号可以在条形图的生命周期内消失和出现

蜱/剥头皮策略

...您需要很好地了解它是什么,TakeProfit/StopLoss 点数越少,该策略对点差/佣金/网络延迟/可用历史的质量/机器人本身的速度就越关键。

条件的任何恶化都可能扼杀策略

网格、鞅、平均以及这些改进的缺点

...它们是什么,它们为什么受欢迎,以及它们可以在多大程度上帮助暂时扩展策略。风险增加,尽管它可能会延长糟糕策略的寿命

选择承包商时要寻找什么

...实质性问题

不假装给人留下深刻印象

给出明确的截止日期

立即指出 TOR 中不清楚的地方,而不是经过 2 个月的讨论

一个好的程序员会珍惜他和你的时间——这就是为什么他喜欢开发良好的一致 TOR

程序员不能为你做什么

将失败的策略变成有利可图的机器人

优化和识别任何弱点

编写一个没有错误的程序 - 他们仍然会。找到它们并以易于理解的方式描述它们是您的任务。


 
Rashid Umarov:

...

截图和流程图

互联网上有很多免费的、方便的程序用于创建屏幕截图和流程图。

流程图是ToR中最无用、最耗费时间和实际上无法实现的部分。

为了理解这一点--你可以做一个非常简单的小实验--应该给自由服务开发者一个任务:"为绘制MA指标做一个流程图" --然后通过两个标准进行评估。1)正确性和2)可理解性。

 
Andrey F. Zelinsky:

流程图是ToR中最无用且实际上无法实现的部分。

为了理解这一点--你可以做一个非常简单的小实验--应该给自由服务开发者一个任务:"为绘制MA指标做一个流程图" --然后通过两个标准进行评估。1)正确性和2)可读性。

这里我们说的不是计算算法的流程图,而是程序不同块之间的行动顺序和关系的流程图--决策、位置管理、过滤器等等。

 
Aleksey Vyazmikin:

这不是一个计算算法的框图,而是不同程序块之间的行动顺序和关系的流程图--决策、位置管理、过滤器等等。

你能想象一个客户的水平吗,他至少完全理解客户终端的事件,将能够熟练地描述 "不同程序块的行动序列和相互关系--决策、位置管理、过滤器等等"?

然后从程序执行的角度来检查这一切--否则为什么要做一个流程图?

这样的客户不仅在签订协议前看不到开发商的名字,而且在协议完成后也看不到(如果会发生在这样的入门级客户身上的话)--"凡是乘着知识乘着悲伤"(传道书1:17-18)。


p.s. 再次。为了验证我关于制作流程图(任何)的实际无用性的论点,非常简单。

给自由职业者服务开发人员设定一个任务就足够了--为MA指标写一个流程图。

论文№2--不超过5-10%就可以了。


p.s.2 问题1--在计算机科学课上(在学校或大学),谁(百分比)认为制作流程图是有用的?

问题2 -- 谁(百分比)在实际工作中制作的流程图比 "搜索N维数组中的最大元素 "等更复杂。

 
Andrey F. Zelinsky:

你能想象,至少完全了解客户终端事件的 客户的水平,将能够以合格的方式描述 "不同程序块的行动序列和相互联系--决策、位置管理、过滤器等等"?

然后从程序执行的角度来检查这一切--否则为什么要做一个流程图?

这样的客户不仅在签订协议前看不到开发商的名字,而且在协议完成后也看不到(如果在这种级别的客户身上发生过的话)--"凡是乘以知识的人就会乘以悲伤"(传道书1:17-18)。

框图是有用的,至少可以测试你的逻辑。是的,我把绘制流程图作为一个概念,或者当我在开发一个复杂的算法时,最常在纸上绘制。

EA不是一个成品,它总是会被修改,只要客户会对它的想法感兴趣,所以这个客户最好照顾到可能的修改,为此代码必须有一定的结构。我曾经在大概订购了5个自由职业者的EA后明白了这一点。高水平的白痴是当做交易决策的逻辑被打包到交易功能中时--难怪这样的EA不会被修改,而是被返工,尤其是当开发者是另一个人时。