数据处理

数据处理在金融领域中占据核心地位,它是将原始数据转化为有价值信息的关键环节。在金融行业,数据不仅是数字的简单堆砌,更是一种洞察力和决策依据的来源。有效的数据处理能够揭示市场趋势、评估投资风险、优化资产配置、提升交易策略,并加强风险管理。在大数据时代,金融机构不仅需要收集和存储海量的数据,更需要通过高级算法和强大的计算能力对这些数据进行清洗、整合、分析和解释。数据处理技术的进步,如人工智能和机器学习,使得金融企业能够更准确地预测未来市场动向,为客户提供个性化服务,以及自动化和优化内部运营。因此,对于金融行业来说,掌握先进的数据处理技术并将其应用于实践,是保持竞争优势和实现持续增长的关键。

【平台使用】如何将平台处理后的数据保存到本地?

我在平台进行了数据处理,需要保存到本地运行,如何保存到本地?

更新时间:2024-12-12 01:44

【代码报错】ArrowInvalid: 没有访问 "_337e3530e87a4dc6b0649919ae791200" 的权限

DataSource apply_bdb 修改无权限提示

def fillna_to_zero(df):
    return df.fillna(0)
m3.data.apply_bdb(func=fillna_to_zero, as_type=pd.DataFrame)

:::warning

您可以去社区论坛问答交流板块反馈咨询 去发帖>>

ArrowInvalid Traceback (most recent call last)

Cell In[4], line 3

更新时间:2024-12-10 01:38

新版因子实现

导语

平台已经整理好新旧因子对比,可以在基础特征抽取里面直接抽取。

A股

量价因子

老版因子 新版因子 字段描述
adjust_factor_* 当期值: adjust_factor\n滞后值: m_lag(adjust_factor, i),i为滞后期数 第前 * 个交易日的复权因子 \n * 取值: 0 .. 20
amount_* 当期值: amount\n滞后值: m_lag(amount, i),i为滞后期数 第前 * 个交易日的交易额\n * 取值: 0 .. 120

更新时间:2024-12-06 03:36

【代码报错】Parser Error: syntax error at or near "ORDER"

ORDER BY  报错 帮我看下哪里有问题

import dai


import pandas as pd

# 提取股票数据
stock_sql = """
WITH 
zuori1 AS (
    SELECT 
        cn_stock_bar1d.date, 
        cn_stock_bar1d.instrument,
        close,
        volume,
        volume AS volume_1,
        close AS close_1,
        pe_ttm,
    FRO

更新时间:2024-11-13 03:09

【代码报错】ValueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data)

行业中性化

在复现行业中性化的代码报错

## 加载包
import dai
import pandas as pd
import numpy as np
import math
import warnings
from datetime import datetime, timedelta

from bigmodule import M
from bigtrader.finance.commission import PerOrder

niu_date= '2024-11-10'
today = datetime.now().date().strftime(

更新时间:2024-11-13 03:06

【代码报错】IndexError: single positional indexer is out-of-bounds

又出现一个single positional indexer is out-of-bounds

请帮忙处理:

https://bigquant.com/codesharev3/d5e911e4-51e9-4684-a6f5-25cb97efc1dc

\

更新时间:2024-10-28 01:52

【代码报错】ConversionException: Conversion Error: Could not convert string 'Infinity' to INT64

代码报错-Conversion Error: Could not convert string 'Infinity' to INT64

您之前说了是数据里面有inf值,进行处理,替换成0或者nan再进行因子分析,具体怎样修改哪一行代码,我已经剔除了inf,还是不行,能给出具体的操作吗?

https://bigquant.com/codesharev3/3bd6dc8b-8b9e-4207-8d68-fa1d4ce0e162

\

更新时间:2024-10-28 01:42

时间加权净委买比例

数据定义

以下涉及到的流数据暂未开放,后期我们会为大家提供流数据获取服务。

构造这个因子需要用到的数据的表格形式如下:

日期 买一量 卖一量
t1 b1 a1
t2 b2 a2
tn bn an

首先我们求出截面净委买比例:

最后将分钟内的截面净委买比例求平均即可得到时间加权的净委买比例,所以这

更新时间:2024-10-22 07:09

期货现货价差实时因子加工

本文以中证1000的股指期货(IM2503.CFE)与指数(000852.SH)价差为例, 我们来加工股指与期货的价差因子并进行实时可视化操作。以下涉及到的流数据暂未开放,后期我们会为大家提供流数据获取服务。

数据定义

因子构造思路较为简单,我们需要用到期货l1快照数据以及指数快照数据,首先计算快照上的价差,最后将价差用last函数聚合成分钟频的数据。

因子加工代码

首先导入第三方库,并将数据推送至中间表:

import dai
import time
import plotly.graph_objects as go
from IPython

更新时间:2024-10-22 07:08

【代码报错】no data left after dropnan

这个策略之前模拟正常,现在突然报错:no data left after dropnan

1、截图模拟交易报错的页面,配文:报错内容:Exception: no data left after dropnan

2、粘贴策略链接:https://bigquant.com/codesharev3/9be3987e-8535-4b59-860c-18ccd7b6f917



谢谢支持的老师。

更新时间:2024-10-12 09:05

【其他】关于代码策略的几个问题

1、bigtrade的模式和聚宽很大的一个区别就是,策略要用的数据你们是先全部提取好了作为直接输入到回测引擎,这样就可以减少回测引擎每回测一天跑一天数据的麻烦,且再次回测也会有缓存,加快回测效率。我想问的是,我在取数据的时候是取整个回测时间段的,模拟的时候取数是当前的,这两个取数代码的写法肯定不同,不像聚宽,永远取回测日当前时间数据就行,而且我策略要用到的因子数据是需要比较复杂的加工的,有sql,有python,那我提交模拟之后,模拟交易怎么能识别我计算因子的逻辑,然后计算当天的因子值

2.我write_bdb的表是永久有效的么?这个表的存储空间需要付费么?

更新时间:2024-10-10 10:24

【其他】因子分析疑问

1、如果我的因子在sql之外还需要用Python做一些处理,请问提交因子的时候factor_sql 该怎么写?

2、因子分析中是否每个股票每个交易日都要有因子值,我是否可以每个股票只有月末有一个因子,其他时间都是空的。

更新时间:2024-10-10 10:10

【平台使用】如何将从模块抽取的大表格数据单独下载?

老师,请问模块抽取出来的数据是一个大表格,如何才能将下面图示中的M4表格另外下载出来?谢谢

更新时间:2024-10-10 10:03

【平台使用】如何将DAI查询的数据导出为XLS表格?

老师,请问DAI查询出来的数据表太大,如何单独形成一个XLS表格,方便自己进行分析,谢谢

import dai

df = dai.query("""

SELECT

    date, instrument,

    IF(price_limit_status = 3,1,0) AS _zt,

    If(m_sum(_zt,10) = 1,1,0) AS _firstzt,

     open/m_lead(close,-1)-1 AS _jump,

     If(_jump > 0.04,1,0) AS _jumphigh,

     close/ope

更新时间:2024-10-10 09:49

【代码报错】m_product()函数计算结果为NaN值

代码如下

import dai

st = '' 

sql = f""" 
select
    date,
    instrument,
    sw2021_level2,
    sw2021_level2_name,
    r_ind,
    r_mkt,
    m_product(r_ind + 1,240)- 1 as r_ind_1y,
    m_product(r_mkt + 1,240)- 1 as r_mkt_1y,
    r_ind - r_mkt as r_std,
    (r_ind_1y - r_m

更新时间:2024-10-09 10:16

【代码报错】行情数据NaN空值处理

行情数据NaN空值处理的bug问题

 回测时发现仓位中有些早期时间段(大多2012年前)仓位很轻,按理持仓就为10支,可那些日子里只有1,2支. 后面发现,:\n     因为我代码中有:  m_max(close,100). 只要这100前有一个NAN值,这支股票就被无情的排除了.

 要是:m_max( close,100,  参数=’ 0’ ).这里加个参数,表示数据中有NAN时填充0计算.  也可以=”停牌前的价格”\n要是能有这选择参数就完美了.

\

更新时间:2024-10-09 09:47

在DAI SQL中利用ASOF JOIN计算股息率

一、股息率定义

股息率是指公司每年支付的股息与其股票当前市场价格的比率。它是一个重要的投资指标,帮助投资者评估股票的收入潜力,股息率越高,通常表示投资者可以从该股票中获得更多的被动收入。计算公式为:

本文更多介绍如何使用 ASOF JOIN 操作处理日频数据和非日频数据,因此,我们简化股息率的公式,假设分子分母都使用总股本,则上述公式可以简化如下:

![](/wiki/api/attachments.redirect?id=4

更新时间:2024-09-02 08:33

特征表达式无法抽取数据

https://bigquant.com/codesharev3/0fcad747-50d5-47b1-81ea-c6d9127ccae5

为何在加入了2个特征表达式,什么值都去不到。谢谢各位

更新时间:2024-07-24 02:18

持仓交易日个数

positions = context.get_account_positions()

for code, position in positions.items():

    print(code,position.last_sale_date, context.trading_calendar.session_distance(position.last_sale_date, data.current_dt))

\

更新时间:2024-06-29 00:03

策略分享

策略流程

  1. 筛选条件:净利润增长率长大于15%,连续3年净资产收益率大于15%,市盈率低于35。
  2. 策略回测:开盘买入,收盘卖出,回测时间为2017-05-01至2017-06-15

策略实现

输入特征模块

  • 将净利润增长率,净资产收益率,市盈率作为作为输入特征;

  • 将净利润增长率长大于15%,连续3年净资产收益率大于15%,市盈率低于35设置为表达式过滤条件。

    \

数据抽取模块

  • 抽取数据,并设置开始日期为2014-12-31 ,结束日期为2016-12-31。

\

BigTrader模块

  • m5”BigTra

更新时间:2024-06-19 06:45

数据合并

两个“输入特征(DAI SQL)”模块,分别从两个数据表提取数据,之后可以共同连接一个新的“输入特征(DAI SQL)”模块,做到数据连接的功能

我们来看一个具体的例子,在下面这个例子中:

  • m1模块的作用是从cn_stock_prefactors表中提取出pe_ttmtotal_market_cap两个字段,并且过滤掉ST股票
  • m2模块的作用是从cn_stock_money_flow表中提取出main_flowmain_rate两个字段

![](/wiki/api/attachments.redirect?id=2d891157-85

更新时间:2024-06-19 02:45

202-本地文件上传

介绍

  • 本地上传csv文件并读取
  • 和其他数据联合使用

实现

dai处理文件

  • 生成一个csv文件作为测试,包括日期、股票代码、当日涨跌幅。
  • 使用dai直接操作csv,如果是本地csv文件则直接拖拽至资源管理器。

输入特征联合使用

  • 将操作后的csv输入:mafactor.csv中的factor_001因子。
  • 表达式特征中输入cn_stock_prefactors中的股息率排名作为sc

更新时间:2024-06-19 02:41

Word2Vec介绍:训练Skip-gram模型的python实现

1. 获取数据

首先获取训练集“Stanford V1.0”和使用Glove模型训练好的词向量矩阵。

我们使用shell命令获取以上文档,脚本如下:

DATASETS_DIR="utils/datasets"
mkdir -p $DATASETS_DIR

cd $DATASETS_DIR

# Get Stanford Sentiment Treebank
if hash wget 2>/dev/null; then
  wget http://nlp.stanford.edu/~socherr/stanfordSentimentTreebank.zip
else
  c

更新时间:2024-06-12 06:06

Pandas库之数据处理与规整

旧版声明

本文为旧版实现,仅供学习参考。

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU


下列代码在读取数据时,使用最新dai.query接口即可。

数据读取

\

导语

本文继续讲解Pandas库在数据分析和处理上的一些应用。

[https://bigquant.com/codesharev2/5a39d584-7b74-4d00-832f-

更新时间:2024-06-12 02:36

Pandas查看和选择

新版数据导入部分使用dai库

导语

本节主要讲解Pandas库中 DataFrame 的数据查看与选择


Pandas 是基于 Numpy 构建的,让以 Numpy 为中心的应用变得更加简单。平台获取的数据主要是以 Pandas 中DataFrame 的形式。除此之外,Pandas 还包括 一维数组Series 以及三维的Panel。

Pandas中获取数据的方式

下面将进行详细介绍:

Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而

更新时间:2024-06-11 08:59

分页第1页第2页第3页第4页第5页
{link}