时间:2023-07-28|浏览:192
用戶喜愛的交易所
已有账号登陆后会弹出下载
数据是量化交易的核心,高效管理数据至关重要。数据库是解决这个问题的最佳选择之一。目前,数据库已成为各类策略的标准配置,如日内交易和高频交易。本文将介绍发明者量化内置的数据库,包括如何创建、存储、修改、删除和引用数据,并将其应用于实战。
在发明者量化平台中,使用_G函数可以将数据保存在本地以供复用。但是,如果想保存更多更复杂的格式化数据,_G函数就不太适用了。因此,很多人考虑自建数据库来解决这个问题。
Oracle、MySQL、KDB、OneTick、NoSQL等是非常优秀、功能强大的企业级数据库。但是,它们也有一些问题:上手难度大、配置繁琐、维护麻烦。对于量化交易散户来说,这些问题可能有点小题大做,因为他们可能只使用到了这些数据库的一小部分功能。
现在让我们介绍一下发明者量化内置的轻型数据库。发明者量化内置了一个关系型数据管理系统接口——DBExec,它基于SQLite开发。DBExec是用C语言编写的,不仅体积小巧、资源占用低,而且处理速度快。它非常适合金融量化分析爱好者在本地实现数据管理。因为可以将不同的“对象”(例如交易所、数据源、价格)划分为不同的表,并在表之间定义关系。此外,用户无需安装和配置,只需调用DBExec函数即可直接使用!
另外,学习SQLite语言非常简单。大部分在数据库上执行的工作都可以通过SQLite语句完成。掌握基本语法即可满足大多数需求。更新托管者
首先确保使用的是最新版本的托管者。如果之前已经下载使用过托管者,需要先删除,并在https://www.fmz.com/m/add-node页面创建策略
第三步:运行策略
以Windows为例,运行策略后,在托管者目录的“logsstorage”目录中将生成一个以机器人编号命名的文件夹。打开该文件夹,您将看到一个以“.db3”为后缀的文件,这个文件就是发明者量化内置数据库的文件。
上面的代码首先创建了一个名为“tick”的数据表,然后给该表添加了一个tick数据字段。接下来,在循环中从交易所获取tick数据,并将这些数据插入到“tick”数据表中。同时,判断该数据表中的数据量是否超过10个,如果是,则退出循环。最后,使用5个SQLite命令查询、删除和修改数据表中的数据,并在日志中打印出来。
第四步:创建状态栏
最后,我们增加一些代码来通过获取发明者量化数据库中的数据,为策略创建一个状态栏,更直观地展示数据。新增代码如下:
上面的代码通过数据库中的数据创建了一个名为“币安Tick数据”的状态栏。其中,数据库中的“columns”字段代表状态栏中的“行”,“values”字段代表状态栏中的“列”。
点击该链接https://www.fmz.com/strategy/265906即可复制完整策略代码。
如果您不希望将操作的数据永久保存到磁盘上,可以在SQL语句前加上:符号来在内存数据库中进行操作。机器人重新启动后,数据将被重置。
DBExec(":select1,2,3");
数据库不仅可以承载海量数据,还可以实现众多量化交易爱好者的宽客梦想。数据库的使用远不止本文所介绍的例子,更多用法可以参考SQLite教程和发明者量化后续推出的系列文章。