在上一篇文章中,我讨论了开发交易软件的最佳实践,例如使用事件、数据存储或单独的配置。这次,让我们深入探讨战略部分,特别是如何从架构的角度有效地组织它。
最简单的方法是假设系统的这部分接收输入数据(例如价格变化)并生成事件(信号)。所有逻辑都可以封装在该模块内。这是一个例子:
def run(self, event): signal = self.calc_rsi(event) if signal != 'FLAT': self.create_event(event, signal)
在此示例中,我们计算 RSI 并根据它生成“买入”或“卖出”等事件。这是一个基本的说明,但概念很清楚。该信号可能包括所需的买入/卖出价格。当然,真正的交易算法更复杂,但您已经知道了!
将所有余额或未平仓头寸数据收集在一个地方是有益的。这样,您就可以知道自己持有的美元或比特币总金额。这些知识对于在系统生成信号时确定订单大小至关重要。
def run(self, event): # Calculate USD values # Calculate targets # Check targets # Generate orders
此伪代码概述了以下步骤:
您获取所有余额数据、信号,验证仓位是否与所需的一致,如果不一致则生成订单。
该模块与投资组合模块密切相关。有时,风险管理逻辑可以直接在其中实施,特别是当您管理少量资金并且刚刚开始时。对于大公司来说,这可能是最复杂的系统元素,每个公司都定义了其精确的算法。以下是可以在风险管理中解决的一些任务:
您在市场上的时间越长,交易算法的这一部分就变得越重要。
在获得所有价格和余额数据、生成信号、计算最佳投资组合规模并考虑所有可能的风险后,没有理由不向交易所发送订单。这可能看起来是最简单的部分,除非您要跨多个交易所实现订单路由。通常,您会正确格式化订单并将其发送到您交易的交易所。
我们讨论了四个模块的功能,每个模块在 90% 的交易算法中都有用。构建您的代码,选择一个好的架构,维护和更新您的交易系统将变得不那么痛苦。
完整的代码将作为 aspis.finance 的开源交易算法提供。它将包括一些简单的交易策略,但关键功能是能够通过 Aspis 智能合约创建存储、吸引投资者资金并确保透明的利润分享。您可以制定您的策略,将其连接到 Aspis,您的算法将在 DEX 上进行交易,投资者和管理者(您)将通过智能合约赚取利润。敬请关注!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3