IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> arctic数据库使用教程(1)---为啥要用arctic以及arctic的简单应用 -> 正文阅读

[大数据]arctic数据库使用教程(1)---为啥要用arctic以及arctic的简单应用

为啥使用数据库

在做量化投研的过程中,一个适合的数据库往往能够提高工作的效率,在过去的工作研究经历中,使用过csv文件、pickle文件、mysql、mogodb等数据库,在我自己以后的投资研究过程中,尝试使用mongodb数据库和man-group(英士曼集团)开源的基于mongodb的数据库框架-ARCTIC,应该足够能够满足我的投研需要了。

必须要说明的是,arctic数据库应该算不上最快的时序数据库,有很多收费或者免费的数据库都比它效率要高一些,比如收费的kdb+数据库,半收费的dophindb等,arctic的优势在于免费、简单易用,所以在存储股票、期货、基金、期权、债券、可转债、外汇等数据的时候,我选择了ARCTIC。

安装教程

使用之前首先需要在电脑上安装mongodb数据库,需要安装python,然后安装arctic。

数据库命名

在使用ARCTIC的时候,需要创建两个名字,一个是library_name,一个是symbol_name,所以对数据库的名字做一个统一的规定,library_name是大类资产的名字,symbol_name是具体资产__周期__交易所的名字,这样同一规定之后,方便后续数据的管理工作。

股票 — STOCKS

期货 — FUTURES

基金 — FUNDS

期权 — OPTIONS

债券 — BONDS

可转债 — CBONDS

外汇 ---- FORES

数字货币 — DIGITALS

一个存储数字货币的例子

import gzip
import os,sys
import pandas as pd
from arctic import Arctic
# 连接数据库
conn = Arctic('127.0.0.1')
# 判断library是否存在,如果不存在就创建一个
if "DIGITALS" not in conn.list_libraries():
    conn.initialize_library("DIGITALS")
# 连接到具体的library中
lib = conn["DIGITALS"]
# 遍历数据并存储
data_root = "/home/yun/Downloads/spot/"
timeframe = "1m"
symbol_type = "spot"
exchange = "binance"
file_list = os.listdir(data_root)
for file in file_list:
    symbol = file.split(".")[0]
    symbol_name = symbol+"__"+timeframe+"__"+symbol_type+"__"+exchange
    with gzip.open("/home/yun/Downloads/spot/"+file, 'rb') as f:
        df = pd.read_csv(f)
        lib.write(symbol_name, df)
        print(f"存储数据{file}成功")
    # 读取数据
    # symbol_name = 'USDS-USDT__1m__spot__binance'
    # data = lib.read(symbol_name).data
    # 判断是否满足 data == df

读取数字货币数据,并使用plotly_express画出收益率直方图,观察收益率分布情况

# 获取数据
import gzip
import os,sys
import pandas as pd
from arctic import Arctic
# 连接数据库
conn = Arctic('127.0.0.1')
# 连接到具体的library中
lib = conn["DIGITALS"]
# 打印当前library中有多少的symbol
symbol_list = lib.list_symbols()
# 循环数据,并打印数据,生成一个1分钟收益率,然后生成一个直方图
data = pd.DataFrame()
count = 0
for symbol in symbol_list:
    if "spot" in symbol:
        count+=1
        name = symbol.split("__")[0]
        df = lib.read(symbol).data
        df['ret'] = df['close'].pct_change()
        df['name'] = name
        df = df[['ret','name']]
        if count<3:
            data = data.append(df)
        print(symbol)
data = data.dropna()
import plotly_express as px
fig = px.histogram(data,x="ret",color="name")
fig.show()

从1分钟收益率的直方图上来看,这两个数字货币的绝大多数时间内收益率波动都比较小,但是有极少数的1分钟K线的收益率非常高或者非常低。
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:08:39  更:2022-04-01 00:08:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:44:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码