索维特·曼贾尼(Sovit Manjani)
“算法”的词典定义是:用于计算过程的精确的逐步计划,该计划可能以输入值开始,并以有限数量的步骤产生输出值。现在将其分为几部分。
数据收集阶段:
关首先,系统需要输入。可以是诸如股票,商品,指数,数量,期权价格,未平仓合约等价格之类的技术数据,或者诸如市盈率,ROCE,账面价值,OPM等基本数据。
相关新闻技术观点:Nifty收盘跌破50 DEMA形成看跌蜡烛; 12,100个稳定性的关键幻灯片/以下是Sensex在过去10年预算2020年预算日的表现:“财政部长的箭袋里几乎没有箭”数据还可以是新闻,特殊情况,通货膨胀数,GDP数,利率等。数据是任何算法的关键,并且要格外小心地收集和清理数据。
如果数据不正确,则不能依赖结果。在计算世界中,这称为垃圾进和垃圾出。数据必须以结构化的方式存储,以便可以在需要时进行检索。
可以将此数据切片为样本内数据和样本外数据。样本中数据是指在其上运行和优化规则的数据。样本外数据是看不见的数据。该策略一旦定稿,将在此数据上进行测试,以确保真实性和确认性。
开发阶段:
收集的数据必须按照某些规则或条件逐步进行处理。条件可以像两个移动平均线交叉一样简单,也可以极其复杂。
要创建一个可行的系统,必须有一个假设,或者简单地说就是一个想法。这个想法必须用一种语言向计算机解释。可以使用许多计算机语言,但是最受欢迎的是Python,C ++,Java,Julia,R和Amibroker Formula语言。
语言选择取决于编码人员的舒适程度,交易频率,可接受的等待时间,数据库大小等。回测结果是算法的输出。
必须注意不要添加不必要的规则。具有较少条件和简单规则的简单策略比具有太多条件的复杂策略要强大得多。
优化阶段:
在对想法进行编码之后,系统可能会也可能不会在样本内数据上产生期望的风险调整后的回报。可以通过添加或删除某些规则来优化该策略。
如果经过多次尝试后,该策略未取得令人满意的结果,则需要放弃该想法。可以通过更改一些参数来优化结果。由于存在过度优化或曲线拟合的危险,因此必须小心。
测试或验证阶段:
如果该策略看起来不错,则可以对样本外数据进行测试。通过体面的结果,人们可以假定风险与风险的比率至少为1.8:1。
收益应超过持有购买收益,最大跌幅不得超过35%。这些度量是主观的,取决于策略的性质和执行者的心理能力。
执行阶段:
仅当该策略在样本外数据中仍然存在时,才可以对其进行测试以进行执行。然后将该策略连接到代理的API,以自动执行。
在这个阶段,系统交易者的一些错误可以被强调,例如经纪人和滑点的错误假设,流动性,与信号时间和执行时间有关的编码错误。
执行部分必须经过严格测试,每个订单至少要有一个月的小订单量,例如每个信号1份。现在,您的系统已准备就绪,可以用真钱部署了。
作者是Dravyaniti Consulting LLP的联合创始人,交易策略主管。