Skip to content

Commit

Permalink
v3.7.3
Browse files Browse the repository at this point in the history
  • Loading branch information
chen-001 committed Feb 21, 2023
1 parent 3bfc711 commit ab30acc
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 28 deletions.
4 changes: 2 additions & 2 deletions pure_ocean_breeze/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
一个量化多因子研究的框架,包含数据、回测、因子加工等方面的功能
"""

__updated__ = "2023-01-30 11:20:05"
__version__ = "3.7.2"
__updated__ = "2023-02-13 10:02:13"
__version__ = "3.7.3"
__author__ = "chenzongwei"
__author_email__ = "[email protected]"
__url__ = "https://github.com/chen-001/pure_ocean_breeze"
Expand Down
3 changes: 1 addition & 2 deletions pure_ocean_breeze/data/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
针对一些不常见的文件格式,读取数据文件的一些工具函数,以及其他数据工具
"""

__updated__ = "2023-01-19 22:36:13"
__updated__ = "2023-02-21 09:09:08"

import os
import pandas as pd
Expand Down Expand Up @@ -960,7 +960,6 @@ def calcWeightedStd(series: pd.Series, weights: Union[pd.Series, np.ndarray]) ->
return np.sqrt(np.sum((series - np.mean(series)) ** 2 * weights))


@do_on_dfs
def get_list_std(delta_sts: list[pd.DataFrame]) -> pd.DataFrame:
"""同一天多个因子,计算这些因子在当天的标准差
Expand Down
34 changes: 12 additions & 22 deletions pure_ocean_breeze/data/write_data.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__updated__ = "2023-01-20 20:24:55"
__updated__ = "2023-02-19 22:46:25"

import time

Expand Down Expand Up @@ -82,13 +82,15 @@
from pure_ocean_breeze.labor.process import pure_fama


def database_update_minute_data_to_clickhouse_and_questdb(kind: str) -> None:
def database_update_minute_data_to_clickhouse_and_questdb(kind: str,web_port:str='9001') -> None:
"""使用米筐更新分钟数据至clickhouse和questdb中
Parameters
----------
kind : str
更新股票分钟数据或指数分钟数据,股票则'stock',指数则'index'
web_port : str
questdb数据库的web console的端口号, by default '9001'
Raises
------
Expand Down Expand Up @@ -156,12 +158,8 @@ def database_update_minute_data_to_clickhouse_and_questdb(kind: str) -> None:
ts = ts.reset_index()
ts.date = ts.date.astype(int).astype(str)
ts.num = ts.num.astype(int).astype(str)
try:
qdb = Questdb()
qdb.write_via_csv(ts, f"minute_data_{kind}")
except Exception:
qdb = Questdb(web_port="9000")
qdb.write_via_csv(ts, f"minute_data_{kind}")
qdb = Questdb(web_port=web_port)
qdb.write_via_csv(ts, f"minute_data_{kind}")
# 获取剩余使用额
user2 = round(rqdatac.user.get_quota()["bytes_used"] / 1024 / 1024, 2)
user12 = round(user2 - user1, 2)
Expand Down Expand Up @@ -264,13 +262,15 @@ def database_update_minute_data_to_postgresql(kind: str) -> None:
logger.info(f"今日已使用rqsdk流量{user2}MB,本项更新消耗流量{user12}MB")


def database_update_minute_data_to_questdb(kind: str) -> None:
def database_update_minute_data_to_questdb(kind: str,web_port:str='9001') -> None:
"""使用米筐更新分钟数据至questdb中
Parameters
----------
kind : str
更新股票分钟数据或指数分钟数据,股票则'stock',指数则'index'
web_port : str
questdb数据库的控制台端口号, by default '9001'
Raises
------
Expand All @@ -290,12 +290,8 @@ def database_update_minute_data_to_questdb(kind: str) -> None:
cs = rqdatac.all_instruments(type=code_type, market="cn", date=None)
codes = list(cs.order_book_id)
# 获取上次更新截止时间
try:
qdb = Questdb()
last_date = max(qdb.show_all_dates(f"minute_data_{kind}"))
except Exception:
qdb = Questdb(web_port="9000")
last_date = max(qdb.show_all_dates(f"minute_data_{kind}"))
qdb = Questdb(web_port=web_port)
last_date = max(qdb.show_all_dates(f"minute_data_{kind}"))
# 本次更新起始日期
start_date = pd.Timestamp(str(last_date)) + pd.Timedelta(days=1)
start_date = datetime.datetime.strftime(start_date, "%Y-%m-%d")
Expand Down Expand Up @@ -338,18 +334,12 @@ def database_update_minute_data_to_questdb(kind: str) -> None:
ts.date = ts.date.astype(int).astype(str)
ts.num = ts.num.astype(int).astype(str)
# 数据写入数据库
try:
qdb = Questdb()
qdb.write_via_csv(ts, f"minute_data_{kind}")
except Exception:
qdb = Questdb(web_port="9000")
qdb.write_via_csv(ts, f"minute_data_{kind}")
qdb.write_via_csv(ts, f"minute_data_{kind}")
# 获取剩余使用额
user2 = round(rqdatac.user.get_quota()["bytes_used"] / 1024 / 1024, 2)
user12 = round(user2 - user1, 2)
logger.info(f"今日已使用rqsdk流量{user2}MB,本项更新消耗流量{user12}MB")


def database_update_minute_data_to_mysql(kind: str) -> None:
"""使用米筐更新分钟数据至mmysql中
Expand Down
4 changes: 2 additions & 2 deletions pure_ocean_breeze/state/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
用于标注函数功能的一些装饰器(用处不大)
"""

__updated__ = "2023-02-03 10:41:28"
__updated__ = "2023-02-21 09:09:30"
from typing import Iterable


Expand All @@ -25,7 +25,7 @@ def _dict_value(x, list_num_order):

def do_on_dfs(func):
def wrapper(df=None, *args, **kwargs):
if isinstance(df, list):
if isinstance(df, list) or isinstance(df,tuple):
dfs = [
func(
i, *[_list_value(i, num) for i in args], **_dict_value(kwargs, num)
Expand Down
4 changes: 4 additions & 0 deletions 更新日志/version3.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## 更新日志🗓 — v3

* v3.7.3 — 2023.2.21
> 1. 删去了do_on_dfs装饰器对get_list_std函数的支持
> 1. 修复了database_update_minute_data_to_clickhouse_and_questdb和database_update_minute_data_to_questdb在端口号为9000的设备上的写入bug,并增加了web_port参数,用于手动指定端口参数
> 1. 给do_on_dfs装饰器支持了对tuple的识别
* v3.7.2 — 2023.2.3
> 1. 修复了Questdb通过csv写入数据只能向本地数据库写入的bug
> 1. 对make_relative_comments和make_relative_comments_plot的进行了提速,并新增了多种股票池混合的方式,可以指定多个参数为1,当且仅当hs300和zz500同时为1时,基准指数为中证800指数000906.SH
Expand Down

0 comments on commit ab30acc

Please sign in to comment.