之前发布了一篇文章利用Google趋势来预测比特币价格,说到了看到一篇文章很朴素的介绍了google趋势和比特币价格的一个关系。觉得很简单直白,就根据那个模型写了个程序,部署起来了,从十一月十四号到现在,一共有一个多月,总体效果不理想,因为一直没有触发它的买进的条件。

数据

前两天我就把收集到的数据图形化出来,来直观看看它们之间的关系,画出来的图形如下:

上图中的红线,就是所谓的触发条件,如果它高于35%(纵轴25上面那条黑线)并且跟昨天相比,比特币的价格是增加了1%,就会触发买进,否则卖出。

从图直观看出,都不用跑regression啥的,无论蓝色的那条价格线怎么变化,红色线始终保持着它自己的上下波动的节奏,并没有明显的跟价格之间的关系。

上面是以天为单位的观察,下面我又获取了以小时为单位的最近七天的他们之间的关系。

红线(比例线)与蓝线(价格线)依旧很倔强的走着自己的轨迹。

同时观察到绿线,也就是buy bitcoin的google趋势线,跟价格关系也不大。因为红线本身就是绿线和黄线的比例,所以绿线可能是导致它们无关的一个原因把。

思考

现在想想buy bitcoin这个关键词的选择是否符合常理?比如自己要买进比特币的时候,是否会使用这个关键词来搜索,它是否能代表一般人买进比特币的态度?这个现在看来得打个问好。

那么bitcoin usd呢,直观来看,如果它搜索的热度越大说明什么,越小说明什么。搜索热度越大,说明公众对比特币的价格很关心,越小说明对它漠不关心。

进一步

删除buy bitcoin关键字后,我抓到最近三个月bitcoin usd和价格之间的关系。

这个图形证实了我的猜想,当bitcoin usd热度高的时候,比特币的价格变化会大,但是涨还是降就不知道了。

我简单定义了一个策略,当天的趋势变化(和昨天比)如果高了25%的话,而价格又增加1%的话(跟昨天比),那么就预测买,否则就是卖。上图绿色三角形是跑出来的结果。

从结果看,有那么点意思了,可以通过改变参数的设定,在实践中摸索出成功的经验。

另外一点经验是关于google趋势的数据。它的数据都是相对值,在选定一个时间区间后,每一点的值都是相对区间内的相对值。所以如果使用不同时间区间里面的值来比较是没有意义的。

源码

所有实现都在github的sentiment trade这个repo里面

利用Google趋势来预测比特币价格 - 续1的更多相关文章

  1. 利用Google趋势来预测比特币价格

    预测市场是件极其困难和不可能的事情,特别是预测市场的短期行为.长期预期相对而言简单很多,因为很多事情把时间拉长,都可以预测,比如我预测烧汽油的车最终都会消失,把时间拉长,都是没问题的.但是这种预测没法 ...

  2. 矩池云 | 利用LSTM框架实时预测比特币价格

    温馨提示:本案例只作为学习研究用途,不构成投资建议. 比特币的价格数据是基于时间序列的,因此比特币的价格预测大多采用LSTM模型来实现. 长期短期记忆(LSTM)是一种特别适用于时间序列数据(或具有时 ...

  3. 神经网络与数字货币量化交易系列(1)——LSTM预测比特币价格

    首发地址:https://www.fmz.com/digest-topic/4035 1.简单介绍 深度神经网络这些年越来越热门,在很多领域解决了过去无法解决的难题,体现了强大的能力.在时间序列的预测 ...

  4. RNN循环神经网络实现预测比特币价格过程详解

    http://c.biancheng.net/view/1950.html 本节将介绍如何利用 RNN 预测未来的比特币价格. 核心思想是过去观察到的价格时间序列为未来价格提供了一个很好的预估器.给定 ...

  5. Swift 中使用 SwiftyJSON 制作一个比特币价格 APP

    Swift 中处理 JSON 数据有很多种方式,可以使用原生的 NSJSONSerialization,也可以使用很多第三方库.原生的 NSJSONSerialization 方式这篇文章中介绍过.这 ...

  6. 数据采集实战:通过Python获取和分析Google趋势中Covid-19的关注程度

    在传染病研究领域,社交媒体数据已被证明可作为预测感冒和流感季节的发作和进展的指标.在本文中,我们将使用Google Trends API来衡量与冠状病毒的状态.我们将使用python谷歌趋势API p ...

  7. 利用Google Speech API实现Speech To Text

    很久很久以前, 网上流传着一个免费的,识别率暴高的,稳定的 Speech To Text API, 那就是Google Speech API. 但是最近再使用的时候,总是返回500 Error. 后来 ...

  8. 使用SignalR实现比特币价格实时刷新

    ASP.NET SignalR是微软支持的一个运行在 Dot NET 平台上的 HTML Websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重 ...

  9. 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

    原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...

随机推荐

  1. DirectX11--实现一个3D魔方(2)

    前言 上一章我们主要讲述了魔方的构造和初始化.纹理的准备工作.目前我还没有打算讲Direct3D 11关于底层绘图的实现,因此接下来这一章的重点是魔方的旋转.因为我们要的是能玩的魔方游戏,而不是一个观 ...

  2. 第二节:SSL证书的申请、配置(IIS通用)及跳转Https请求的两种方式

    一. 相关概念介绍 1. SSL证书服务 SSL证书服务由"服务商"联合多家国内外数字证书管理和颁发的权威机构.在xx云平台上直接提供的服务器数字证书.您可以在阿里云.腾讯云等平台 ...

  3. JavaScript数据类型检测 数组(Array)检测方式

    前言 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具--typeof运算 ...

  4. 暑假第二弹:基于docker的hadoop分布式集群系统的搭建和测试

    早在四月份的时候,就已经开了这篇文章.当时是参加数据挖掘的比赛,在计科院大佬的建议下用TensorFlow搞深度学习,而且要在自己的hadoop分布式集群系统下搞. 当时可把我们牛逼坏了,在没有基础的 ...

  5. 11GR2 Oracle数据库的远程投毒VNCR方式修复

    [环境介绍] 系统环境:Solaris + Oracle 11GR2 + 单机/RAC   [背景描述] 基于集团数据库安全检查项,需要数据库的远程投毒漏洞进行修复. 根据Oracle官方提供的修复文 ...

  6. Windows10配置JDK环境变量

    一. 系统和JDK版本 系统:Windows10 JDK版本:1.8 二. 配置步骤 1. 右键单击“我的电脑” >> 属性 >> 高级系统设置 2. 环境变量 3. 系统变量 ...

  7. L1-Day11

    1.问问他能不能来.[我的翻译]Ask him wether he can come.[标准答案]Ask him whether/if he can come.[对比分析]天呐 whether都能拼写 ...

  8. 使用Promise发送多个异步请求, 全部完成后再执行

    const datas = idList .map(id => url+'/id') .map(url => fetch(url).then(res => res.json())); ...

  9. Java基础 -- String,StringBuilder,StringBuffer三者的区别

    结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...

  10. CV code references

    转:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program][SI ...