在股票或货币等市场交易时,重要的是要确定价值区域,以为我们的交易决策提供依据。一种方法是查看音量配置文件。
在这篇文章中,我们探索定量方法来检查一段时间内的体积分布。
更具体地说,我们将在SciPy的模块套件中使用Python以及统计和信号处理工具。数据图使用Plotly渲染。
简而言之,体积传达了一段时间内交易的资产数量。我们可以查看的另一个维度是在给定价格水平下的交易量。这称为音量配置文件。
大量堆积的区域形成大量节点(或群集)。这些交易量节点有助于确定重要的价格水平。
在上面的图表中直观地发现体积节点很容易,但是这里的想法是使用代码来实现。因此,让我们看看我们如何做到这一点。
首先,我们将获取上表中显示的资产和时间范围的数据。我们将获取分钟数据,以便我们构建具有足够粒度的音量配置文件。
在此示例中,我们查看的是现货外汇,这意味着我们没有真实的交易量数据。此处的交易量数据是滴答交易量,它充当实际交易量的代理。
现在,让我们绘制成交量分布图,它只是沿价格轴的直方图。
直方图是显示数据分布的好方法。但是,这很粗糙,并且可能会根据垃圾箱的定义方式而有所不同。让我们找到一种更方便的方式来对我们的发行进行建模。
核密度估计器(KDE)是一种非参数方法,用于估计随机变量的概率密度函数(PDF)。这使我们可以将分布表示为平滑连续的曲线。
我们将使用SciPy的gaussian_kde获取我们的PDF。我们可以用曲线绘制标准化的直方图,以查看其拟合程度。
为了帮助我们确定音量配置文件的结构,我们使用了SciPy信号处理模块中的find_peaks。
至此,我们已经有了一些有用的数据。例如,根据我们的数量资料,我们有一些相对有趣的价格点。
但是我们可以做得更好! find_peaks使我们能够指定约束以进一步滤除噪声。
首先,我们可以为峰指定最小突出度。这可以帮助我们识别更明显的体积节点。让我们绘制一些代表每个峰的突出的线,以查看其外观。
突出定义为峰与其最低轮廓线之间的垂直距离。让我们过滤一下突出度至少为范围的30%的峰。
现在,假设我们正在寻找大量和紧密整合的领域。换句话说,我们对在小范围内发生大量活动的区域感兴趣。我们可以通过指定对峰宽的约束来发现这一点。
首先,让我们绘制标记以显示峰的宽度。默认情况下,宽度是在峰的相对高度的一半处计算的。
在小时图上,我们一周的平均真实波动范围约为14个点。让我们将最大宽度设置为20点。为此,我们需要将价格范围转换为样本数量。
现在,我们发现了一个紧密合并和大量交易的区域。就技术分析而言,这将是一个值得关注的关键价值领域!
也许我们不太关心体积节点的宽度或范围。如果相反,我们对体积节点的总密度感兴趣吗? PDF是连续的曲线,因此我们需要对范围进行积分以获取密度。我们将使用峰的底部来确定要积分的范围。
由于这是一个概率密度函数,因此我们的密度值已归一化。提醒一下,整个范围内的积分等于1。
到目前为止,我们已经能够下载一段时间内的价格和数量数据,并且可以将整个价格的分布作为数量概况查看。我们使用高斯KDE将PDF拟合到该数据上,并利用一些信号处理工具来提取有用的信息。
我希望这对那些对算法交易感兴趣的人特别有用。这只是一个起点,我们需要在纳入研究或交易系统之前使其更加强大。
感谢您的阅读,如果您有任何意见或建议,请随时与我们联系!