分类
交易信号

量化交易

Kazakhstan

现货与新闻情绪:基于NLP的量化交易策略(附代码)

Bag of words模型最初被用在文本分类中,将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是讲每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后看这个袋子里装的都是些什么词汇,将其分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。

LDA主题建模

为了在我们的tweet语料库中探索各种各样的主题,我们将使用 Gensim 的Latent Dirichlet Allocation(隐狄利克雷分配模型)。LDA 是一种适用于文本等离散数据集合的生成概率模型。LDA 的功能是作为一个分层贝叶斯模型,其中将集合中的每个项目建模为基础主题集上的有限混合。反过来,每个主题又被塑造成一个基本主题概率集合上的无限混合体。

粗略地检查一下我们模型中的主题就会发现,我们既有相关的数据,而且我们的 LDA 模型在上述主题的建模方面也做了合理的工作。

LDA 模型结果

通过检查最终的主题图,我们可以看到,LDA 模型在捕获 Twitter 数据中的显著主题及其组成词方面做得很好。

是什么构成健壮的主题模型?

一个好的主题模型通常表现出没有重叠的大而独特的主题(圆圈)。所述圆圈的面积与语料库中“N”个总标记中主题的比例(即Twitter数据)成比例。每个主题圈的中心被设置为两个维度: PC1和 PC2,它们之间的距离由在主题间距离矩阵上运行的降维模型(准确地说是多维缩放)的输出设置。pyLDAvis主题外观背后的数学细节的完整说明可以在这里找到:

解释我们的结果

1、铜矿山和铜出口国

2、中国贸易与制造业活动

排名靠前的词包括“ Copper”、“ Copper price”、“ China”、“ Freeport”和“ Shanghai”。

3、中美贸易战

验证 LDA 模型

我们必须验证任何模型的完整性和稳健性。我们的 LDA 模型也是如此。我们可以通过检查模型的一致性来做到这一点。通俗地说,连贯性是衡量话题中词语之间的相对距离。在这篇文章中,我们可以找到这个分数是如何精确计算出来的:

计算LDA模型的一致性得分,根据确认度量“ c _ v”(相对于UMass)

Roder,Both和Hindeburg在论文中的结果激励了我们选择分数度量的方法,可以从上述一致性模型逻辑的签名中看出 。 大家可以看到我们选择了对模型的coherence = 'c_v度量,而不是'u_mass','c_v','c_uci'。 我们发现,“ c_v”评分标准比其他方法能获得更好的结果,特别是在单词集较小的情况下,符合我们的选择。

感情得分: VADER

我们将使用 NLTK 的 Valence Aware Dictionary 和 sEntiment Reasoner (VADER)来分析我们的推文,并根据每条推文中每个词的基本强度之和,生成一个介于 -1和1之间的情感得分。

不管我们在 NLP 模型中是否使用single-tokens、ngrams、stems或lemmas,从根本上说,我们tweet数据中的每个token都包含一些信息。这些信息中最重要的部分可能就是这个词的情感。

  • 文本的负比例
  • 文本的中性比例
  • 文本的正比例
  • 情绪极性的综合强度,即“复合”得分

情绪得分 VS 铜现货价格

情绪得分是否可以预测铜的现货价格?

结论

根据Occam的Razor原则,我们实施了一个开箱即用的解决方案来分析Twitter数据中的潜在情绪。除了探索一些著名的 EDA 和预处理技术作为先决条件之外,我们还使用NLTK的Valence Aware Dictionary和sEntiment Reasoner (VADER) ,为每条推生成一个关联的情绪评分,并检查该评分与简单的铜现货价格波动的相关性。

现货与新闻情绪:基于NLP的量化交易策略(附代码)

Bag of 量化交易 words模型最初被用在文本分类中,将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是讲每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后看这个袋子里装的都是些什么词汇,将其分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。

LDA主题建模

为了在我们的tweet语料库中探索各种各样的主题,我们将使用 Gensim 的Latent Dirichlet Allocation(隐狄利克雷分配模型)。LDA 是一种适用于文本等离散数据集合的生成概率模型。LDA 的功能是作为一个分层贝叶斯模型,其中将集合中的每个项目建模为基础主题集上的有限混合。反过来,每个主题又被塑造成一个基本主题概率集合上的无限混合体。

粗略地检查一下我们模型中的主题就会发现,我们既有相关的数据,而且我们的 LDA 模型在上述主题的建模方面也做了合理的工作。

LDA 模型结果

通过检查最终的主题图,我们可以看到,LDA 模型在捕获 Twitter 量化交易 数据中的显著主题及其组成词方面做得很好。

是什么构成健壮的主题模型?

一个好的主题模型通常表现出没有重叠的大而独特的主题(圆圈)。所述圆圈的面积与语料库中“N”个总标记中主题的比例(即Twitter数据)成比例。每个主题圈的中心被设置为两个维度: PC1和 PC2,它们之间的距离由在主题间距离矩阵上运行的降维模型(准确地说是多维缩放)的输出设置。pyLDAvis主题外观背后的数学细节的完整说明可以在这里找到:

解释我们的结果

1、铜矿山和铜出口国

2、中国贸易与制造业活动

排名靠前的词包括“ Copper”、“ Copper price”、“ China”、“ Freeport”和“ Shanghai”。

3、中美贸易战

验证 LDA 量化交易 模型

我们必须验证任何模型的完整性和稳健性。我们的 LDA 模型也是如此。我们可以通过检查模型的一致性来做到这一点。通俗地说,连贯性是衡量话题中词语之间的相对距离。在这篇文章中,我们可以找到这个分数是如何精确计算出来的:

计算LDA模型的一致性得分,根据确认度量“ 量化交易 c _ v”(相对于UMass)

Roder,Both和Hindeburg在论文中的结果激励了我们选择分数度量的方法,可以从上述一致性模型逻辑的签名中看出 。 大家可以看到我们选择了对模型的coherence = 'c_v度量,而不是'u_mass','c_v','c_uci'。 我们发现,“ c_v”评分标准比其他方法能获得更好的结果,特别是在单词集较小的情况下,符合我们的选择。

感情得分: VADER

我们将使用 NLTK 的 Valence Aware Dictionary 和 sEntiment Reasoner (VADER)来分析我们的推文,并根据每条推文中每个词的基本强度之和,生成一个介于 -1和1之间的情感得分。

不管我们在 NLP 模型中是否使用single-tokens、ngrams、stems或lemmas,从根本上说,我们tweet数据中的每个token都包含一些信息。这些信息中最重要的部分可能就是这个词的情感。

  • 文本的负比例
  • 文本的中性比例
  • 文本的正比例
  • 情绪极性的综合强度,即“复合”得分

情绪得分 VS 铜现货价格

情绪得分是否可以预测铜的现货价格?

结论

根据Occam的Razor原则,我们实施了一个开箱即用的解决方案来分析Twitter数据中的潜在情绪。除了探索一些著名的 EDA 和预处理技术作为先决条件之外,我们还使用NLTK的Valence Aware Dictionary和sEntiment Reasoner (VADER) ,为每条推生成一个关联的情绪评分,并检查该评分与简单的铜现货价格波动的相关性。

gbeced/pyalgotrade

This commit does not belong 量化交易 to any branch 量化交易 on this repository, and may belong to a fork outside of the repository.

Use Git or checkout with SVN using the web URL.

Work fast with 量化交易 our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Build Status

PyAlgoTrade is an event driven algorithmic trading Python library. Although the initial focus was on backtesting, paper trading is now possible using:

and live trading is now possible using:

To get started with PyAlgoTrade take a look at the tutorial and the full documentation.

Kazakhstan

Вы посещаете сайт WikiFX. Вебсайт WikiFX и его мобильные продукты — это корпоративный инструмент поиска информации для пользователей со всего мира. При использовании продуктов WikiFX пользователи должны сознательно соблюдать соответствующие законы и правила страны и региона, в котором они находятся.

Насчет исправления неверной информаций, таких как лицензия и другое, пишите на адрес:[email protected]