diff --git "a/B-\345\233\240\345\255\220\346\236\204\345\273\272\347\261\273/\351\207\221\350\202\241\345\242\236\345\274\272\347\255\226\347\225\245/scr/utlis.py" "b/B-\345\233\240\345\255\220\346\236\204\345\273\272\347\261\273/\351\207\221\350\202\241\345\242\236\345\274\272\347\255\226\347\225\245/scr/utlis.py" index 1b7d756..c12e41c 100644 --- "a/B-\345\233\240\345\255\220\346\236\204\345\273\272\347\261\273/\351\207\221\350\202\241\345\242\236\345\274\272\347\255\226\347\225\245/scr/utlis.py" +++ "b/B-\345\233\240\345\255\220\346\236\204\345\273\272\347\261\273/\351\207\221\350\202\241\345\242\236\345\274\272\347\255\226\347\225\245/scr/utlis.py" @@ -12,22 +12,26 @@ def load_gold_stock_csv() -> pd.DataFrame: ------- pd.DataFrame """ - dtype_mapping = {'end_date': np.datetime64, - 'write_date': np.datetime64} + dtype_mapping = {'end_date': np.datetime64, 'write_date': np.datetime64} - col_mapping = {'ticker_symbol_map_sec_type_name': 'sw_l3', - 'ticker_symbol_map_sec_id': 'code'} + col_mapping = { + 'ticker_symbol_map_sec_type_name': 'sw_l3', + 'ticker_symbol_map_sec_id': 'code' + } gold_stock_frame = pd.read_csv(r'data/gold_stock_frame.csv', index_col=[0]) - gold_stock_frame = (gold_stock_frame.pipe(pd.DataFrame.astype, dtype_mapping) - .pipe(pd.DataFrame.rename, columns=col_mapping) - .pipe(pd.DataFrame.assign, code=lambda x: x['code'].apply(normalize_code))) + gold_stock_frame = (gold_stock_frame.pipe( + pd.DataFrame.astype, + dtype_mapping).pipe(pd.DataFrame.rename, columns=col_mapping).pipe( + pd.DataFrame.assign, + code=lambda x: x['code'].apply(normalize_code))) return gold_stock_frame -def view_author_stock(ser: pd.Series, gold_stock_frame: pd.DataFrame) -> pd.DataFrame: +def view_author_stock(ser: pd.Series, + gold_stock_frame: pd.DataFrame) -> pd.DataFrame: """从gold_stock_frame按ser获取所推荐股票信息 Parameters @@ -50,7 +54,6 @@ def view_author_stock(ser: pd.Series, gold_stock_frame: pd.DataFrame) -> pd.Data class TradeDays(): """交易日时间处理相关""" - def __init__(self): self.all_trade_days: pd.DatetimeIndex = pd.to_datetime( @@ -60,37 +63,42 @@ def __init__(self): def tradeday_of_month(self, watch_dt: str) -> int: """查询该交易日是当月的第N日""" watch_dt = pd.to_datetime(watch_dt) - idx = self.TradedaysOfMonth.index.get_indexer( - [watch_dt], method='nearest')[0] + idx = self.TradedaysOfMonth.index.get_indexer([watch_dt], + method='nearest')[0] return self.TradedaysOfMonth.iloc[idx, 1] - def get_tradedays_of_month(self, year: Union[str, int] = None, month: Union[str, int] = None, num: int = None) -> pd.DataFrame: + def get_tradedays_of_month(self, + year: Union[str, int] = None, + month: Union[str, int] = None, + num: int = None) -> pd.DataFrame: """获取月份的第N日""" if num is None: raise ValueError('num参数不能为空!') if (year is not None) and (month is None): - cond = (self.TradedaysOfMonth.index.year == year) & ( - self.TradedaysOfMonth['dayofmonth'] == num) + cond = (self.TradedaysOfMonth.index.year + == year) & (self.TradedaysOfMonth['dayofmonth'] == num) elif (year is None) and (month is not None): - cond = (self.TradedaysOfMonth.index.month == month) & ( - self.TradedaysOfMonth['dayofmonth'] == num) + cond = (self.TradedaysOfMonth.index.month + == month) & (self.TradedaysOfMonth['dayofmonth'] == num) else: - cond = (self.TradedaysOfMonth.index.strftime('%Y%m') == f'{year}{month}') & ( - self.TradedaysOfMonth['dayofmonth'] == num) + cond = (self.TradedaysOfMonth.index.strftime('%Y%m') + == "{}{:02d}".format(year, month)) & ( + self.TradedaysOfMonth['dayofmonth'] == num) return self.TradedaysOfMonth[cond] - def get_tradedays_month_end(self, year: Union[str, int] = None, month: Union[str, int] = None) -> pd.DataFrame: + def get_tradedays_month_end(self, + year: Union[str, int] = None, + month: Union[str, int] = None) -> pd.DataFrame: """查询每月最后一个交易日""" trade_days = self._MonthEndOrMonthBegin('last') - if (year is None) and (month is None): return trade_days @@ -105,11 +113,15 @@ def get_tradedays_month_end(self, year: Union[str, int] = None, month: Union[str else: - cond = (trade_days.index.strftime('%Y%m') == f'{year}{month}') + cond = (trade_days.index.strftime('%Y%m') == "{}{:02d}".format( + year, month)) return trade_days[cond] - def get_tradedays_month_begin(self, year: Union[str, int] = None, month: Union[str, int] = None) -> pd.DataFrame: + def get_tradedays_month_begin( + self, + year: Union[str, int] = None, + month: Union[str, int] = None) -> pd.DataFrame: """查询每月最后一个交易日""" trade_days = self._MonthEndOrMonthBegin('first') if year is None and month is None: @@ -119,31 +131,38 @@ def get_tradedays_month_begin(self, year: Union[str, int] = None, month: Union[s elif year is None: cond = trade_days.index.month == month else: - cond = trade_days.index.strftime('%Y%m') == f'{year}{month}' + cond = trade_days.index.strftime('%Y%m') == "{}{:02d}".format( + year, month) return trade_days[cond] def _MonthEndOrMonthBegin(self, method: str) -> pd.DataFrame: - cols_dic = {'last': ('MonthEnd(all)', 'MonthEnd'), - 'first': ('MonthBegin(all)', 'MonthBegin')} + cols_dic = { + 'last': ('MonthEnd(all)', 'MonthEnd'), + 'first': ('MonthBegin(all)', 'MonthBegin') + } trade_days = self.TradedaysOfMonth.copy() - func = {'last': trade_days.groupby(pd.Grouper(level=0, freq='M')).last, - 'first': trade_days.groupby(pd.Grouper(level=0, freq='MS')).first} + func = { + 'last': trade_days.groupby(pd.Grouper(level=0, freq='M')).last, + 'first': trade_days.groupby(pd.Grouper(level=0, freq='MS')).first + } trade_days = func[method]() trade_days[cols_dic[method][0]] = trade_days.index trade_days.index = trade_days['trade_days'] - trade_days.rename( - columns={'trade_days': cols_dic[method][1]}, inplace=True) + trade_days.rename(columns={'trade_days': cols_dic[method][1]}, + inplace=True) return trade_days.drop(columns=['dayofmonth']) def _tradedaysofmonth(self): tradedays_frame: pd.DataFrame = self._trans2frame() - tradedays_frame['dayofmonth'] = tradedays_frame.groupby(pd.Grouper( - level=0, freq='M'))['trade_days'].transform(lambda x: np.arange(1, len(x)+1)) + tradedays_frame['dayofmonth'] = tradedays_frame.groupby( + pd.Grouper(level=0, freq='M'))['trade_days'].transform( + lambda x: np.arange(1, + len(x) + 1)) self.TradedaysOfMonth = tradedays_frame def _trans2frame(self) -> pd.DataFrame: diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/__init__.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/__init__.cpython-38.pyc" index a88e5e9..f881669 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/__init__.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/__init__.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/bt_func.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/bt_func.cpython-38.pyc" index fbab053..880dd84 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/bt_func.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/bt_func.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/calc_func.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/calc_func.cpython-38.pyc" index aa092f0..d84b432 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/calc_func.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/calc_func.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/plotting.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/plotting.cpython-38.pyc" index 23c248f..f67566b 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/plotting.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/plotting.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/timeseries.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/timeseries.cpython-38.pyc" index c7e920a..564f7c3 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/timeseries.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/timeseries.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/utils.cpython-38.pyc" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/utils.cpython-38.pyc" index 5f0c9fb..2e7db77 100644 Binary files "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/utils.cpython-38.pyc" and "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/scr/__pycache__/utils.cpython-38.pyc" differ diff --git "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214.ipynb" "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214.ipynb" index 5c9ae0d..5e6a815 100644 --- "a/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214.ipynb" +++ "b/C-\346\213\251\346\227\266\347\261\273/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214/\347\211\271\345\276\201\345\210\206\345\270\203\345\273\272\346\250\241\346\213\251\346\227\266\347\263\273\345\210\227\344\271\213\344\272\214.ipynb" @@ -2,9 +2,20 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:7: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n", + " from pandas import (to_datetime, Int64Index, DatetimeIndex, Period,\n", + "d:\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:7: FutureWarning: pandas.Float64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead.\n", + " from pandas import (to_datetime, Int64Index, DatetimeIndex, Period,\n" + ] + } + ], "source": [ "from typing import Dict, List, Union\n", "\n", @@ -12,8 +23,6 @@ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", - "\n", - "\n", "from alphalens.tears import GridFigure\n", "from scr import create_signal\n", "from scr.bt_func import (\n", @@ -29,7 +38,7 @@ " plot_indicator,\n", " plot_params_table_visualization,\n", ")\n", - "from skopt import gp_minimize\n" + "from skopt import gp_minimize" ] }, { @@ -57,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -148,7 +157,7 @@ "2003-01-08 974.6976 947.0679 979.6497 941.1552 1.237519e+09 881001.WI" ] }, - "execution_count": 6, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -186,18 +195,31 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "GridSpec(1, 5)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "e:\\WorkSpace\\Quantitative-analysis\\C-择时类\\特征分布建模择时系列之二\\scr\\plotting.py:325: MatplotlibDeprecationWarning: Passing the minor parameter of set_ticks() positionally is deprecated since Matplotlib 3.2; the parameter will become keyword-only two minor releases later.\n", + " ax.set_xticks(idx, ticks_arr, rotation=90)\n" + ] + }, + { + "ename": "TypeError", + "evalue": "set_ticks() got an unexpected keyword argument 'rotation'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32me:\\WorkSpace\\Quantitative-analysis\\C-择时类\\特征分布建模择时系列之二\\特征分布建模择时系列之二.ipynb Cell 7\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m a \u001b[39m=\u001b[39m \u001b[39m3.4\u001b[39m\n\u001b[0;32m 4\u001b[0m df \u001b[39m=\u001b[39m create_signal(\n\u001b[0;32m 5\u001b[0m data\u001b[39m.\u001b[39mquery(\u001b[39m'\u001b[39m\u001b[39mcode==\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m881001.WI\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m),\n\u001b[0;32m 6\u001b[0m fast_window\u001b[39m=\u001b[39m\u001b[39m5\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 11\u001b[0m a\u001b[39m=\u001b[39ma,\n\u001b[0;32m 12\u001b[0m )\n\u001b[1;32m---> 14\u001b[0m plot_distribution(df[\u001b[39m\"\u001b[39;49m\u001b[39mvolume_index\u001b[39;49m\u001b[39m\"\u001b[39;49m], df[\u001b[39m\"\u001b[39;49m\u001b[39mforward_returns\u001b[39;49m\u001b[39m\"\u001b[39;49m], \u001b[39m5\u001b[39;49m, \u001b[39m50\u001b[39;49m, \u001b[39mFalse\u001b[39;49;00m)\n", + "File \u001b[1;32me:\\WorkSpace\\Quantitative-analysis\\C-择时类\\特征分布建模择时系列之二\\scr\\plotting.py:356\u001b[0m, in \u001b[0;36mplot_distribution\u001b[1;34m(signal_ser, forward_ret_ser, forward_window, q, group, title, ax)\u001b[0m\n\u001b[0;32m 352\u001b[0m aggregation_frame \u001b[39m=\u001b[39m get_distribution_data(\n\u001b[0;32m 353\u001b[0m signal_ser, forward_ret_ser, q\u001b[39m=\u001b[39mq, window\u001b[39m=\u001b[39mforward_window, group\u001b[39m=\u001b[39mgroup)\n\u001b[0;32m 355\u001b[0m is_categories_index: \u001b[39mbool\u001b[39m \u001b[39m=\u001b[39m \u001b[39mnot\u001b[39;00m group\n\u001b[1;32m--> 356\u001b[0m ax1 \u001b[39m=\u001b[39m plot_hist_signal_with_cum(\n\u001b[0;32m 357\u001b[0m aggregation_frame, is_categories_index, \u001b[39m'\u001b[39;49m\u001b[39m信号期望与累计收益分布\u001b[39;49m\u001b[39m'\u001b[39;49m, ax1)\n\u001b[0;32m 359\u001b[0m avg, std, kur, skew \u001b[39m=\u001b[39m signal_ser\u001b[39m.\u001b[39mmean(), signal_ser\u001b[39m.\u001b[39mstd(\n\u001b[0;32m 360\u001b[0m ), signal_ser\u001b[39m.\u001b[39mkurt(), signal_ser\u001b[39m.\u001b[39mskew()\n\u001b[0;32m 362\u001b[0m ax2\u001b[39m.\u001b[39mtext(\u001b[39m0.65\u001b[39m, \u001b[39m0.95\u001b[39m, (\u001b[39m\"\u001b[39m\u001b[39m Mean \u001b[39m\u001b[39m%.3f\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m Std. \u001b[39m\u001b[39m%.3f\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m kurtosis \u001b[39m\u001b[39m%.3f\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m Skew \u001b[39m\u001b[39m%.3f\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39m%\u001b[39m (avg, std, kur, skew)), fontsize\u001b[39m=\u001b[39m\u001b[39m16\u001b[39m, bbox\u001b[39m=\u001b[39m{\n\u001b[0;32m 363\u001b[0m \u001b[39m'\u001b[39m\u001b[39mfacecolor\u001b[39m\u001b[39m'\u001b[39m: \u001b[39m'\u001b[39m\u001b[39mwhite\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39malpha\u001b[39m\u001b[39m'\u001b[39m: \u001b[39m1\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mpad\u001b[39m\u001b[39m'\u001b[39m: \u001b[39m5\u001b[39m}, transform\u001b[39m=\u001b[39max2\u001b[39m.\u001b[39mtransAxes, verticalalignment\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mtop\u001b[39m\u001b[39m'\u001b[39m)\n", + "File \u001b[1;32me:\\WorkSpace\\Quantitative-analysis\\C-择时类\\特征分布建模择时系列之二\\scr\\plotting.py:325\u001b[0m, in \u001b[0;36mplot_hist_signal_with_cum\u001b[1;34m(aggregation_frame, is_categories_index, title, ax)\u001b[0m\n\u001b[0;32m 323\u001b[0m ax\u001b[39m.\u001b[39mplot(slice_idx, aggregation_frame[\u001b[39m'\u001b[39m\u001b[39mroll_ret\u001b[39m\u001b[39m'\u001b[39m], color\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mr\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 324\u001b[0m ax\u001b[39m.\u001b[39maxhline(\u001b[39m0\u001b[39m, color\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mdarkgray\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m--> 325\u001b[0m ax\u001b[39m.\u001b[39;49mset_xticks(idx, ticks_arr, rotation\u001b[39m=\u001b[39;49m\u001b[39m90\u001b[39;49m)\n\u001b[0;32m 326\u001b[0m ax\u001b[39m.\u001b[39myaxis\u001b[39m.\u001b[39mset_major_formatter(\u001b[39m'\u001b[39m\u001b[39m{x:.2%}\u001b[39;00m\u001b[39m'\u001b[39m)\n\u001b[0;32m 327\u001b[0m ax\u001b[39m.\u001b[39mset_title(title)\n", + "File \u001b[1;32md:\\anaconda3\\lib\\site-packages\\matplotlib\\axes\\_base.py:63\u001b[0m, in \u001b[0;36m_axis_method_wrapper.__set_name__..wrapper\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 62\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrapper\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m---> 63\u001b[0m \u001b[39mreturn\u001b[39;00m get_method(\u001b[39mself\u001b[39;49m)(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "File \u001b[1;32md:\\anaconda3\\lib\\site-packages\\matplotlib\\cbook\\deprecation.py:451\u001b[0m, in \u001b[0;36m_make_keyword_only..wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 445\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(args) \u001b[39m>\u001b[39m idx:\n\u001b[0;32m 446\u001b[0m warn_deprecated(\n\u001b[0;32m 447\u001b[0m since, message\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mPassing the \u001b[39m\u001b[39m%(name)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m%(obj_type)s\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 448\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpositionally is deprecated since Matplotlib \u001b[39m\u001b[39m%(since)s\u001b[39;00m\u001b[39m; the \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 449\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mparameter will become keyword-only \u001b[39m\u001b[39m%(removal)s\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 450\u001b[0m name\u001b[39m=\u001b[39mname, obj_type\u001b[39m=\u001b[39m\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mparameter of \u001b[39m\u001b[39m{\u001b[39;00mfunc\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m()\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m--> 451\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "\u001b[1;31mTypeError\u001b[0m: set_ticks() got an unexpected keyword argument 'rotation'" + ] }, { "data": { - "image/png": "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fpz77ruPIkWKcOGFFzJjxowUj121ahU5c+Y8q4twbGws3bt3p3v37kybNi3dMWQnqjAUERERkdB29CiMHQtt2kDJkqkfawyUK+cezZufGd+71y1jXrwYfvwRPv8cRo1yrxUsCPXquQrEyy93jxIlAnY7IiIigbJ27dr4r9evX+9hJMn78ccfuf/++6lfv366z33wwQeZNGkSw4YN48CBA7Rr144VK1ZQtWrVRMedPn2amJgYTp06lWj8vffeY+DAgdx9993s27ePVq1aMXbsWLp3756pe8qqlDAUERERkdD2+ecu4derV8bnKFIEbrrJPcBVFW7a5JKHcUnEF1+EuH9cPPggvPVW5mMXEREJoriE4bZt2zh48OA5jg6uefPm0bp167MSfGmxY8cORo8ezbhx4+jatSsAK1as4LXXXmPkyJGJjh02bBgbNmxINHbo0CH69evH5MmTuf766wHIkSMHo0aNUsIwBVqSLCIiIiKhbfhw1+gkA8uXUpQjB1StCt27w3vvwfLlbk/EhQvhlVfOJBZFRETCxGWXXca2bds4cuQIa9eupV69el6HlMiCBQsYN24crVq1Sve53333HREREbRp0yZ+rEWLFsyZMyfRcTt37mTQoEEMHTo00fjx48cZNmxYfLIQoHTp0hw/fjzdsWQXShiKiIiISOhaswZ++MHtU2hMYK+VLx9cdRU8/jg0axbYa4nIWdauWU3L23omevR6uI/XYYmEjQIFCnDBBRewfv161q5dyyWXXJLo9UOHDnHPPfdQuHBhSpUqxaOPPsqJEyfiX9+5cyetW7fm/PPPp1SpUjzyyCOc9u3zu3XrVowxrFq1inbt2lGgQAEuuugiFi1alOb4Bg8enKFkIcCuXbuIiooib9688WPlypVj27ZtiZYe9+7dm5tvvpnmCbclAYoVK5aoknDPnj3873//y3A82YGWJIuIiIhI6BoxAiIj4fbbvY5ERALshI1Q52SRTLr44otZu3Yta9eupWbNmoleu+eee1i5ciUff/wxR48e5b777iN37ty8+OKLAHTt2pV//vmHKVOmsH//fmJiYqhZsyY9evSIn6Nbt240btyY2NhY+vbty3333cfKlSvTFFuOHBmvWTt27BiFChVKNJY3b15OnTrF/v37KVq0KF9++SULFizg559/5t9//01xrvvuu4+JEydy9dVX88QT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5JNPMnbsWG644QZWr14dv2Q5zty5c2nYsGGG7iG7UcJQREREJKsJxP6FCT30EGzeDF9/nbl5Ro923Zzvucc/cYmIiGRThQoVYvbs2Zw+fZo2bdrQv39/unfvzksvvZTouB49etChQwc6d+5M8+bNWbZsGeCWMM+cOZNt27bRokULVqxYQUySZmQtW7Zk5MiRGY6xT58+jB49mm3btlG+fHn+7//+j+jo6DTNX6RIEWbOnMnhw4dp1aoVo0aN4uOPP6Zly5YAtGjRgrfffpsPP/yQ++67jxMnTvD9999zww03xM9hrWXBggVqdpJGxlrrdQxBUbduXRv3H4KIiIhIlnbLLfDzz66bcSD895/bG7FaNfj224zN8ddfUKcO1KgBM2b4N75sxBiz3Fpb99xHSqDp3xspa3lbT/I36pFobOGwPlzd+5Vzjh1ZMJZp/xsR6BBFQooxhuySq5GM89fPSUrvJVRhKCIiIpKVnDwJ330H110XuGvkygX33QezZ8P69ek/f/JkuPRS+Ocf6NfP//GJiIiISKbk9DoAEREREfGjlStdB+NALUeOExMDzz4Lb7/tGpekxb598MADMH48XHYZjBsHF18c2DhFJGB6PdyHnXsSd0wvW6wgw998JYUzREQkXChhKCIiIpKVxO1f2LhxYK9TrBh07eqSfkOHQuHCqR8/axbceSf8+ScMGQIDBrhKRREJWzv3HDxrqfHOBWM9iUVERPxLS5JFREREspJ589zegqVKBf5aDz4IR4+65iUpOXIE7r8fbrwRChaExYvhqaeULBQREREJYUoYioiIiGQV//0HCxcGfjlynBo1XCXjsGFu78SkfvgBatWC99+HRx+F5cuhrvpziIiI+NvWrVsxxrB161avQ8m0xo0bM2TIEL/Pu3LlSq644gry589PuXLlGDx4MKdPn073PB9++CGNU1nJkdzrY8eOxRiT7GPs2LHpjiEYlDAUERERySqWLnUVfYFseJLUgw/C9u0wdeqZsePHoX9/uPpql0icNw9eew3y5g1eXCIiIuJ38+fPD3iCa8SIEcTExPh1zn///Zc2bdpQp04dZsyYwYABA3j99dd566230jXPjz/+yP3335/u11u2bMnSpUsTPSZPnowxhpo1a6b7foJBexiKiIiIZBVx+xdec03wrnnLLVCxIrz1FrRpA6tXQ7du7vnuu+H1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nksvdQm055+Hbt2gadNzn/Pll3D6dHCWIwPkzAn16rmEYWa8/DJERsLDD/slLPGjvHm9jkBEREREsrC0NkwREckILUmWrGnQINeJuFcvt1z3XKZMgYoVoVatQEd2RoMGsGpV2uJLzo4dMG4c3HknlCzp19BEREREREREJPtShaFkTXnywIgRcN118Oyz8MILKR974AB8+y08+GBwG4Y0bAgnT8Ly5Rnb4+71111VZJ8+/o9NRERERMJWr4f7sHPPwURj6zZspH4jjwISEZGwo4ShZF3XXgt33AGvvOK6CNeokfxxX30F//0HbdoEN74GDdzzokXpTxju2eMSol26uMpIERERERGfnXsOnrVU9fhqfcgsIiJpp4ShZG2vvOISgjEx8P33rglFUlOmQJkyZxJ4wVKiBERFZaxT8jvvwL//ur0aRUREREQky0iumYkqREUk2JQwlKytaFF4803o2hXefx969078+pEjMGOG2wcwhwdbejZsCHPngrVpXw596JBLGLZuDZdcEtDwREREREQkuJJrZqIKUREJtrBvemKMKWmMyeV1HBLCOneGG2+E/v3h998Tv/bNN67pSLCXI8dp2BD++OPsuFIzYgTs2+fuR0RERERERETEz4KSMDTGnG+MmWGMmWWM+cIYkzuVY8cYYxYZYwalNGaM6W2MWWqMyQ/caK39Lwi3IeHKGFddeOqUqzC09sxrU6a4KsRGHtX3J9zHMC2OH3fNTq67DurXD1xcIiIiIiIiIpJtBavCsCvwurX2BuBP4KbkDjLGtAEirLUNgShjTJXkxoBawGigHnAkGDcgYa5SJXjmGZg6Fb74wo0dP+72N2zdGnJ6tDq/Rg3ImzftCcOPPnIViQMGBDYuEREREREREcm2gpIwtNa+Z6391vdtceDvFA5tDEzyfT0LuCqFMQPkAm4AZqR0XWNMjDFmmTFm2e7duzNzC5IVPPww1KrlqgwPHIDZs+HgQe+WIwPkygX16qWt8cnJk/DSS+74664LfGwiIiIiIiIiki0FJGFojBlhjJmf4PGkb7whUNham1J2JD+w0/f1XqBkCmOzgBbADmCqMeba5Caz1o601ta11tYtXry4X+5NwljOnDByJPz1l9v/b8oUKFgQmjTxNq4GDWDFCjh2LPXjPvsMtmxxsae1QYqIiIiIiIiISDoFZB2mtbZn0jFjTBHg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", + "image/png": "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AO+/P+y0U37nCAGuvDIFiT/7WWoccuCBy46LET7+GCZOXPTx3nvp8e2305ittsr/9yJJkiQ1M4aAarz990+btf/hD4aAktRc3XQTHH98fseecQbsvXf6T59ddindvni//nXq8nvppU07T+vWcNddsPPOcPjhcMMNaZlxbcg3cSK8/z589dWiY1q1SkuIq6vh4INhxx2hS5em1SFJkiQ1I4aAarw2beDkk9OSq/HjYfPNs65IkrS4995L+7YOGJA6u7drl7rl1n7U9+uZM+Hmm+G662C33WCTTdJ+sEceCR07Fq/mt96CG2+EE06ADTZo+vlWWCHNWO/XLzUKgdRkpKoqBX277JIeaz969Eivg1oM9/eTJElqHENA5efYY+H889OSqz/9KetqJEm1FiyAo49OgdbQobD22o07vnPn9O/7WWfBPfekWd+DB8PZZ6eZhSeemJbYFtqZZ6bg7vzzC3fO7t1h3Dh47bUU8q25Zn77DEqSJEllwO+ElZ8uXdLMirvuSns4SZKah8svh+eeS00xGhsALq59+xQmvvQSPPNMWh578cUpTDv8cHj++YKVzKhR8MADqStw9+6FOy/AyiunhlZrr20AKEmSpIrmd8PK389+ljaTv+GGrCuRJAG8+iqcdx4cdFAK6gohhBQA3ndfWmZ88snw8MOpc26/fnDvvfDNN/mff+FC+J//SfvxnXJKYWqWJEmStAyXAyt/G2wAe+4J11+flnG1b591RZJUuebNgx/8ALp2Tf8uF6OZR1UVXHFFauBx221pS4jDDkuz7I46KnWO32KLxl37rrvgxRfT0uVi7jmoZs39/SRJkorPELAI8vlGtsV+83vqqbD77jBsWPoBUJKUjV//Gl55JS2rLfSS2qWtuGKaEXjiifDII3DttXDZZWm5cM+eKQz83vdgq63qDwTnzElLgLfcsnAzFyVJkiTVyeXAaprddoONNkobx8eYdTWSVJlGj4ZLLoEf/Qj23bd0123dOl3vscfg44/hlltgww3Te8I228B668Hpp6c9ChcuXPb4K6+Ejz5K+xi6X58kSZJUVH7HraYJIe3h9NJL8K9/ZV2NJFWer75KDTzWWSeFb1lZdVU45pg0M/Djj+HPf4bNN0+zBPv3T/X97Gfwj3+kDsbTpsFFF6UQceDA7OqWJEmSKoQhoJruqKNSt+Asf/iUpEp11lnw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", "text/plain": [ "
" ] @@ -326,7 +348,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -366,44 +388,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n", - "d:\\anaconda3\\lib\\site-packages\\skopt\\optimizer\\optimizer.py:449: UserWarning: The objective has been evaluated at this point before.\n", - " warnings.warn(\"The objective has been evaluated \"\n" - ] - } - ], + "outputs": [], "source": [ "# 样本内使用opt寻找最优参数\n", "start_dt, end_dt = \"2004-01-01\", \"2019-12-31\"\n", @@ -418,14 +405,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "最优参数:{'a': 1.5, 'fast_window': 123, 'slow_window': 294}\n" + "最优参数:{'a': 3.5, 'fast_window': 5, 'slow_window': 78}\n" ] } ], @@ -454,13 +441,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a3963442b7b84f52b607d8df71dcae1b", + "model_id": "6a80c85d5e3a454483118c0aef298521", "version_major": 2, "version_minor": 0 }, @@ -470,23 +457,24 @@ " 'font':…" ] }, + "execution_count": 7, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "analysis_rets(df[\"close\"], bt_result.result)\n" + "analysis_rets(df[\"close\"], bt_result.result)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "86670899936f4a65a861ef6df8fc1bd8", + "model_id": "5b30a21eae7b48908cc19d2e718d34e5", "version_major": 2, "version_minor": 0 }, @@ -496,8 +484,9 @@ " 'font':…" ] }, + "execution_count": 8, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ @@ -1942,7 +1931,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.8" }, "orig_nbformat": 4, "vscode": {