utils
utils
LogDirError
- class finfactory.utils.utils.LogDirError
Bases:
Exception
TokenError
- class finfactory.utils.utils.TokenError
Bases:
Exception
gen_py_logger
- finfactory.utils.utils.gen_py_logger(pypath, logdir=None, config=None)
根据Python文件路径生成对应的日志文件路径
check_trade_date
- finfactory.utils.utils.check_trade_date(df, ascending=True, nature=False)
检查df中的交易日所在列并补全
check_date_loss
- finfactory.utils.utils.check_date_loss(df, date_col=None, only_workday=True, del_weekend=True, return_loss_data=False, market='SSE')
检查df中日期列缺失情况
check_daily_data_is_new
- finfactory.utils.utils.check_daily_data_is_new(df_path, date_col='date', only_trade_day=True, only_workday=True, only_inweek=True, market='SSE', return_data=False)
- 检查日频数据是否为最新值注:若date_col列不存在,则默认将索引作为日期
check_month_loss
- finfactory.utils.utils.check_month_loss(df, month_col='month', return_loss_data=False)
- 月度数据缺失检查注:month_col格式须如:’202206’
check_quarter_loss
- finfactory.utils.utils.check_quarter_loss(df, quarter_col='quarter', return_loss_data=False)
- 季度数据缺失检查注:quarter_col格式须如:’2022Q2’
check_minute_loss
- finfactory.utils.utils.check_minute_loss(df, freq='1min', time_col=None, only_workday=True, del_weekend=True)
检查df中的时间列缺失情况
parms_check_ts_daily
- finfactory.utils.utils.parms_check_ts_daily(save_path_df, time_col='date', default_last_date='19891231', start_lag=1, **kwargs)
tushare更新日线数据之前,根据存档路径save_path获取起止日期等变量
get_gm_api
- finfactory.utils.utils.get_gm_api(token=None, logger=None)
根据token获取掘金API接口
utils_crypto
get_ccxt_market
- finfactory.utils.utils_crypto.get_ccxt_market(mkt='binance')
check_loss
- finfactory.utils.utils_crypto.check_loss(df, freq, tcol='time', return_loss_data=True)
- 检查数字货币日频行情缺失情况freq为频率,如’1d’, ‘5min’等
get_klines_ccxt
- finfactory.utils.utils_crypto.get_klines_ccxt(symbol, start_time, freq='1d', n=None, mkt=None, logger=None)
- ccxt获取K线数据freq如’1d’, ‘1m’等
Examples
>>> symbol, mkt = 'BTC/USDT', 'binance' >>> start_time = '2022-11-23 08:00:00' >>> freq = '1d' >>> df = get_klines_ccxt(symbol, start_time, freq=freq, mkt=mkt) >>> freq = '30m' >>> df1 = get_klines_ccxt(symbol, start_time, freq=freq, mkt=mkt)
merge_minute_candle
- finfactory.utils.utils_crypto.merge_minute_candle(data, new_freq=30, cols_sum=None, tstart=True, time_trans=False)
- 用一分钟K线合成更低频分钟K线new_freq指定合成的频率,必须能被240整除data中必须包含[‘time’, ‘open’, ‘close’, ‘high’, ‘low’]cols_sum为求和字段,如可指定成交量’volume’tstart设置time列是否为K先开始时间,默认视为开始时间若data中的time列格式不为’%Y-%m-%d %H:%M:%S’格式,应将time_trans设置为True注:只适用于数字货币交易时间,即全天24小时
Examples
>>> from finfactory.load_his_data import load_ccxt_minute >>> df1m = load_ccxt_minute('eth', 'eth_usdt', '1') >>> df1m = df1m[df1m['time'] >= '2022-08-24 11:09:00'] >>> c1 = merge_minute_candle(df1m, cols_sum=['volume'], tstart=True) >>> c2 = merge_minute_candle(df1m, cols_sum=['volume'], tstart=False) >>> import datetime >>> tdelta = datetime.timedelta(seconds=60) >>> df1m['time'] = pd.to_datetime(df1m['time']) + tdelta >>> c3 = merge_minute_candle(df1m, cols_sum=['volume'], time_trans=True)