我们能很轻松的获取OHLCV数据之后,我们还需要做一件事情,就是要让我们的数据自动更新。当然一般意义上的数据闭环指的是采集新数据并生成格式化数据,我们在这里并不需要。如果我们以天为周期的OHLCV数据来做深度学习,那么我们只需要每天更新OHLCV数据即可。所谓的数据闭环,指的是我们需要将新的数据加入到我们的训练数据中,当然,前提是我们已经有了一个帮助我们获得收益的模型。
这个系列里上三篇文章我们用Python程序来获取了数字货币的OHLCV数据,接下来我们介绍如何来实现我们的数据闭环,以及其中要注意的一些问题。
有同学要说的,这个不是很简单,每天去抓取当天的数据就可以了!说的没错,但是我们不保证我们没有一些外界的不可抗因素。首先我们要去访问我们现有的数据,看看我们的数据抓取到了哪一天?我们将抓取数据里从最后一天开始,到今天结束的OHLCV数据,并且格式化为我们所需要的格式。在写入数据库的时候,要根据日期进行覆盖,以保证我们始终是拿到最新的数据。一般情况下,在做预测时我的程序会主动更新一遍OHLCV数据,而每天收盘之后,我的程序则被设置为自动更新OHLCV数据。及时的更新数据有利于减少预测时间,比如如果你在2:50分的时候去做一个预测,而你的数据更新模块则花了10分钟来做出一个更新。你的深度学习模型做出了一个卖出的决策的时候,你已经需要等到下一个交易日了!这肯定是让人无比沮丧,睡不好觉的!在抓取数据的过程中,由于你可能会涉及到很多只票的数据更新,而某一些票可能会涉及停牌等等特殊状况,你需要按照你的既定数据规则对它们进行处理后再写入数据库。当然还有一些别的特殊情况,我们在讲代码的时候会详细的来讨论。比如复权的问题等等。
当然我们抓取的这部分数据仅仅是原始的OHLCV数据,接下来我们要将它们添加到我们的训练数据中。为什么呢?事实上,深度学习模型做出的并非是预测,其实无非还是一个在机器学习领域由来已久的东西--模式识别。只不过神经网络对于模式识别有天然的天赋,所以就目前而言,我们的模型需要的是数据,而且我们肯定不能在某年某月某日完成了一个模型,用当时的数据得到了非常好的收益,然后我们就可以一劳永逸。这是完全不可能的事情,我们必须不断用新的数据去让我们的模型识别更多的模式,让他更聪明。当然我们在更新了新的数据之后,会需要一些时间来让我们的模型去训练。无论它训练多长时间,当它完成后我们依据结果来判定是否将weight更新到我们的预测模型中。如下是一个简单的模型的运行flow:
终上所述,我们需要建立数据闭环并对数据进行清洗后feed给我们的模型,并生成新的预测基准。
了解更多技巧,请移步我的星球:AI量化(https://t.zsxq.com/RvfY37y) 星球限时免费,如需加入,请私信我获得免费邀请码!
零基础学习Python与深度学习应用请关注星球:Python与深度学习 https://t.zsxq.com/bUFayZ3
微信公众号:QTechAI