认识量化交易2
一、交易策略设计 1. 策略原理阐述
数字资产的交易策略,大致分为以下几类:
在策略的设计阶段,我们需要明确该策略属于哪种类型,并且要对该类型的策略有一个基本认识。 套利型策略和做市策略,其本意不是靠持有头寸而盈利,而是靠快速反复地买卖,保持头寸基本不变(有对冲的情况下头寸基本为0)的情况下,赚取可靠的小额利润,打败交易手续费和冲击成本,积少成多,最终成为稳定盈利型的策略。这类策略的收益曲线不会出现大幅波动,回撤较小。
趋势型策略,需要对海量的历史数据进行统计分析,结合一些操盘经验,设计出统计上大概率盈利的模型,用来指导投资操作。这类策略的操作频率不会太高(一般在4小时以上),收益有一定的不确定性,但是一旦抓住优质盈利区间,收益一般都非常可观。这类策略需要严格按照计划来交易,每个操作都要做好相应的止盈止损,头寸也需要做好相应的控制。在确定到达优质盈利区间之前,少放些头寸,一旦确认进入优质盈利区间,可以慢慢放大头寸。
一些图形化的辅助工具,可以帮我们理清头绪。比如下面是一个三角套利策略原理图:
在原理图中,我们要清晰地定义好策略的初始化状态、启动条件、资金和资产的流转顺序以及预期达到的目标。原理图越简单越好,一些琐碎的边界异常处理、精度取舍、系统监控等细节,无需在原理图中体现。 2. 实际操作中的策略调整
原理图做好了,接下来就是对其进行细节的深挖。具体包括:
(1)交易成本的调整:需要考虑买卖盘价差、滑点、手续费等因素,对策略的启动条件、资金及资产操作额度进行调整
(2)交易数量的调整:需要结合市场深度、账户资金及资产的余额、头寸限制及交易平台规则,对交易数量进行调整
比如上面这个三角套利策略,做完上述调整后,策略的启动条件从(P3 < P2/P1 )变为:
只有当公允价(P2/P1)和市场价(P3)的价差比例大于所有市场的费率总和再加上滑点总和时,才启动该策略。
3. 策略流程设计
策略调整好后,开始设计具体的流程,具体包括:
(1)分配初始资金及资产,设定风险参数
(2)设定策略轮询机制。比如是简单while loop轮询,还是按照固定时间间隔进行轮询(比如每4小时执行一次操作)
(3)设定策略主体执行逻辑。比如在情况1下,执行什么逻辑,在情况2下,执行什么逻辑,默认情况下,执行什么逻辑。
(4)设定与策略主体相关的其他逻辑。比如有的策略需要对冲,则需要设计对冲部分的启动条件和相关逻辑;有的策略需要进行资金及资产的划转,则需要设计该部分的启动条件和逻辑。
二、策略系统监控与异常处理
1. 盈亏监控
(1)设定盈亏计算方式。有的策略完全以法币作为盈亏计算单位,有的策略分开计算法币和数字资产。如果数字资产来自于借贷,则法币和数字资产分开算比较合适,否则,推荐用法币来计算。
(2)设定盈亏处理方式。亏损到达一定比例,如何操作?盈利到达一定比例,如何操作?
2. 头寸监控
(1)设定净头寸计算方式。一般来讲,就是以期末的资产数量减去期初的资产数量,得到净头寸。
(2)设定净头寸处理方式:净头寸超过一定比例,如何操作?
3. 心跳监控
策略运行过程中,应该要不断向外释放心跳信号,让外部知道策略是不是发生了异常。监控最近一次心跳的时间跟当前时间的间隔,如果超时,报警提示,必要时,停止并检查策略。
4. 系统运行状态监控
策略是一个多进程系统,包括主进程、对冲进程、行情进程、账户进程、统计进程、通知进程。需要有一个单独的监控进程,对系统所有进程进行状态监控,发现异常,则报警提示,必要时,停止并检查策略。
5. 人工干预
策略在运行过程中,如果发现异常,必要时需要进行人工干预。具体包括:
(1)手动停止策略 (2)手动对冲 (3)手动划转资金及资产 (4)手动调整风险参数及其他策略参 (5)手动重启策略
三、策略回测与模拟
1. 回测
量化系统投入实际使用之前,人们会希望提前测试策略效果。这个期间往往涉及代码的改动和参数的调整。最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题所在,调整量化系统,然后以此循环,直到效果达到预期为止。该过程在业界被称为回测。回测是量化工作者常见的工作内容之一。
2. 模拟
将量化系统行情接口接入实时行情,但是账户和下单接口用本地模拟的手段来实现,不去真实市场交易,这样,即避免了亏损风险,又得到了策略在真实行情下的近似表现,该过程就是策略的模拟运行过程。模拟运行能够提前发现策略实际运行过程中的问题,避免损失。
四、策略上线与维护
1. 上线资产分布规划
上线策略之前,需要对账户中放置的资产和资金进行规划,不同策略有不同的方案。以前面第二篇文章《如何快速实现自己的数字资产交易想法(2)》的三角套利策略为例,相应设置可以参考下面的方案:
在BTC/CNY市场放入如下资产:
BTC:1个BTC
CNY:2万元
在LTC/CNY市场放入如下资产:
LTC:100个LTC
CNY:2万元
在LTC/BTC市场放入如下资产:
LTC:100个LTC
BTC:1个BTC
2. 启动策略的条件
一般来讲,启动策略之前,要做下列检查:
(1)市场急剧波动的情况下,不适合仓促启动策略。等后市稍稍明朗下来,再启动策略。
(2)不明确策略基本原理的情况下,不要启动策略。
(3)监控措施和流程不完善的情况下,不要启动策略。
(4)之前的盈亏结算没有理清的情况下,不要启动策略。
3.策略上线之后,需要根据运行情况进行持续优化升级,确保以下异常能够被处理:
(1)平台API超时或者无法访问。
(2)策略运行环境和平台之间的网络连接出现异常。
(3)策略运行环境的磁盘空间不足, CPU利用率过高、内存不足导致的异常。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 本地部署 DeepSeek:小白也能轻松搞定!
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
2020-06-02 清除R console中出现加号+
2020-06-02 r向量映射
2020-06-02 r 中sub() gsub()等匹配与替换函数