{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "35efd16b", "metadata": {}, "outputs": [], "source": [ "import yfinance as yf\n", "import pandas as pd\n", "import numpy as np\n", "\n", "from sklearn.feature_selection import mutual_info_regression\n", "from scipy.stats import spearmanr\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "id": "45b590d3", "metadata": {}, "outputs": [], "source": [ "nasdaq_100_tickers = [\"AAPL\", \"MSFT\", \"AMZN\", \"GOOGL\", \"GOOG\", \"TSLA\", \"META\", \"NVDA\", \"PYPL\", \"NFLX\",\n", " \"ASML\", \"ADBE\", \"INTC\", \"CMCSA\", \"CSCO\", \"PEP\", \"AVGO\", \"TMUS\", \"COST\", \"PDD\",\n", " \"TXN\", \"QCOM\", \"AMAT\", \"MU\", \"AMGN\", \"INTU\", \"ISRG\", \"ZM\", \"CSX\", \"VRTX\",\n", " \"JD\", \"GILD\", \"BIDU\", \"MRVL\", \"REGN\", \"MDLZ\", \"ADSK\", \"ATVI\", \"BIIB\", \"ILMN\",\n", " \"LRCX\", \"ADP\", \"BKNG\", \"MELI\", \"KLAC\", \"DOCU\", \"NXPI\", \"MNST\", \"WDAY\", \"ROST\",\n", " \"KDP\", \"EA\", \"ALGN\", \"ADI\", \"IDXX\", \"DXCM\", \"XEL\", \"CTAS\", \"EXC\", \"MAR\",\n", " \"SNPS\", \"ASAN\", \"CDNS\", \"CPRT\", \"SGEN\", \"SPLK\", \"ORLY\", \"DLTR\", \"MTCH\",\n", " \"MCHP\", \"INCY\", \"PCAR\", \"CTSH\", \"FAST\", \"VRSK\", \"CHKP\", \"FOXA\", \"FOX\", \"ANSS\",\n", " \"SWKS\", \"OKTA\", \"TTD\", \"CDW\", \"TEAM\", \"WBA\", \"LULU\", \"PAYX\",\n", " \"VRSN\", \"AEP\", \"ZBRA\", \"PTON\", \"TCOM\", \"NTES\", \"BMRN\", \"ULTA\", \"EXPE\",\n", " \"CSGP\", \"SIRI\", \"EBAY\", \"WDC\"\n", " ]\n", "\n", "end_date = '2020-12-31'\n", "start_date = '2016-1-1'\n", "\n", "nasdaq_20_tickers=nasdaq_100_tickers[:20]" ] }, { "cell_type": "code", "execution_count": 3, "id": "021ec55b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(nasdaq_100_tickers)" ] }, { "cell_type": "markdown", "id": "7fc8446b", "metadata": {}, "source": [ "## \"AAPL\"\n", "ticker = \"AAPL\"\n", "AAPL_data = yf.download(ticker, start=start_date, end=end_date, progress=False)\n", "AAPL_data.index = AAPL_data.index.strftime('%Y/%m/%d')\n", "AAPL_data['returns']=AAPL_data['Close']-AAPL_data['Close'].shift(1)\n", "AAPL_data['ret_fwd']=AAPL_data['Close'].pct_change().dropna()\n", "#AAPL_data['returns'] = (AAPL_data['Close']-AAPL_data['Close'].shift(1)) / AAPL_data['Close'].shift(1)\n", "AAPL_data=AAPL_data.dropna()\n", "AAPL_data=pd.concat({'AAPL': AAPL_data}, names=['ticker'])" ] }, { "cell_type": "markdown", "id": "66880dfb", "metadata": {}, "source": [ "data=AAPL_data" ] }, { "cell_type": "markdown", "id": "e742b886", "metadata": {}, "source": [ "for ticker in nasdaq_100_tickers[1:]:\n", " df = yf.download(ticker, start=start_date, end=end_date, progress=False)\n", " df.index = df.index.strftime('%Y/%m/%d')\n", " df['ret_fwd'] = df['Close'].pct_change().dropna()\n", " df['returns'] = df['Close']-df['Close'].shift(1)\n", " df=df.dropna()\n", " df=pd.concat({ticker: df}, names=['ticker'])\n", " data=pd.concat([data, df], axis=0)" ] }, { "cell_type": "markdown", "id": "54ab2910", "metadata": {}, "source": [ "data.to_csv('training_full_data.csv')" ] }, { "cell_type": "code", "execution_count": null, "id": "3b7b77c1", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "bb3f8923", "metadata": {}, "source": [ "# import data" ] }, { "cell_type": "code", "execution_count": 10, "id": "661c9d80", "metadata": {}, "outputs": [], "source": [ "data=pd.read_csv('training_full_data.csv', header=0)\n", "data=data.set_index(['ticker', 'Date'])" ] }, { "cell_type": "code", "execution_count": 11, "id": "2090fd3c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseAdj CloseVolumereturnsret_fwd
tickerDate
DOCU2018/04/3039.90499940.18999937.52999938.63000138.6300013312100-1.099998-0.027687
2018/05/0138.70000139.88999937.84999839.45000139.45000112856000.8200000.021227
2018/05/0239.84999840.50000038.75000039.32000039.3200001251300-0.130001-0.003295
2018/05/0339.68999942.56000138.81000141.95999941.95999927836002.6399990.067141
2018/05/0442.40000242.66000041.00999841.09000041.090000763500-0.869999-0.020734
...........................
2020/12/23252.000000252.479996242.612000244.050003244.0500032062000-7.550003-0.030008
2020/12/24245.000000250.300003243.500000244.929993244.92999310245000.8799900.003606
2020/12/28245.190002246.880005228.369995229.199997229.1999973323500-15.729996-0.064222
2020/12/29232.970001233.139999226.800003228.160004228.1600042684400-1.039993-0.004537
2020/12/30229.000000230.139999224.300003225.899994225.8999942074500-2.260010-0.009905
\n", "

674 rows × 8 columns

\n", "
" ], "text/plain": [ " Open High Low Close Adj Close \\\n", "ticker Date \n", "DOCU 2018/04/30 39.904999 40.189999 37.529999 38.630001 38.630001 \n", " 2018/05/01 38.700001 39.889999 37.849998 39.450001 39.450001 \n", " 2018/05/02 39.849998 40.500000 38.750000 39.320000 39.320000 \n", " 2018/05/03 39.689999 42.560001 38.810001 41.959999 41.959999 \n", " 2018/05/04 42.400002 42.660000 41.009998 41.090000 41.090000 \n", "... ... ... ... ... ... \n", " 2020/12/23 252.000000 252.479996 242.612000 244.050003 244.050003 \n", " 2020/12/24 245.000000 250.300003 243.500000 244.929993 244.929993 \n", " 2020/12/28 245.190002 246.880005 228.369995 229.199997 229.199997 \n", " 2020/12/29 232.970001 233.139999 226.800003 228.160004 228.160004 \n", " 2020/12/30 229.000000 230.139999 224.300003 225.899994 225.899994 \n", "\n", " Volume returns ret_fwd \n", "ticker Date \n", "DOCU 2018/04/30 3312100 -1.099998 -0.027687 \n", " 2018/05/01 1285600 0.820000 0.021227 \n", " 2018/05/02 1251300 -0.130001 -0.003295 \n", " 2018/05/03 2783600 2.639999 0.067141 \n", " 2018/05/04 763500 -0.869999 -0.020734 \n", "... ... ... ... \n", " 2020/12/23 2062000 -7.550003 -0.030008 \n", " 2020/12/24 1024500 0.879990 0.003606 \n", " 2020/12/28 3323500 -15.729996 -0.064222 \n", " 2020/12/29 2684400 -1.039993 -0.004537 \n", " 2020/12/30 2074500 -2.260010 -0.009905 \n", "\n", "[674 rows x 8 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.loc[['DOCU']]" ] }, { "cell_type": "code", "execution_count": 12, "id": "e090c1db", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseAdj CloseVolumereturnsret_fwd
tickerDate
DOCU2018/04/3039.90499940.18999937.52999938.63000138.6300013312100-1.099998-0.027687
2018/05/0138.70000139.88999937.84999839.45000139.45000112856000.8200000.021227
2018/05/0239.84999840.50000038.75000039.32000039.3200001251300-0.130001-0.003295
2018/05/0339.68999942.56000138.81000141.95999941.95999927836002.6399990.067141
2018/05/0442.40000242.66000041.00999841.09000041.090000763500-0.869999-0.020734
...........................
2020/12/23252.000000252.479996242.612000244.050003244.0500032062000-7.550003-0.030008
2020/12/24245.000000250.300003243.500000244.929993244.92999310245000.8799900.003606
2020/12/28245.190002246.880005228.369995229.199997229.1999973323500-15.729996-0.064222
2020/12/29232.970001233.139999226.800003228.160004228.1600042684400-1.039993-0.004537
2020/12/30229.000000230.139999224.300003225.899994225.8999942074500-2.260010-0.009905
\n", "

674 rows × 8 columns

\n", "
" ], "text/plain": [ " Open High Low Close Adj Close \\\n", "ticker Date \n", "DOCU 2018/04/30 39.904999 40.189999 37.529999 38.630001 38.630001 \n", " 2018/05/01 38.700001 39.889999 37.849998 39.450001 39.450001 \n", " 2018/05/02 39.849998 40.500000 38.750000 39.320000 39.320000 \n", " 2018/05/03 39.689999 42.560001 38.810001 41.959999 41.959999 \n", " 2018/05/04 42.400002 42.660000 41.009998 41.090000 41.090000 \n", "... ... ... ... ... ... \n", " 2020/12/23 252.000000 252.479996 242.612000 244.050003 244.050003 \n", " 2020/12/24 245.000000 250.300003 243.500000 244.929993 244.929993 \n", " 2020/12/28 245.190002 246.880005 228.369995 229.199997 229.199997 \n", " 2020/12/29 232.970001 233.139999 226.800003 228.160004 228.160004 \n", " 2020/12/30 229.000000 230.139999 224.300003 225.899994 225.899994 \n", "\n", " Volume returns ret_fwd \n", "ticker Date \n", "DOCU 2018/04/30 3312100 -1.099998 -0.027687 \n", " 2018/05/01 1285600 0.820000 0.021227 \n", " 2018/05/02 1251300 -0.130001 -0.003295 \n", " 2018/05/03 2783600 2.639999 0.067141 \n", " 2018/05/04 763500 -0.869999 -0.020734 \n", "... ... ... ... \n", " 2020/12/23 2062000 -7.550003 -0.030008 \n", " 2020/12/24 1024500 0.879990 0.003606 \n", " 2020/12/28 3323500 -15.729996 -0.064222 \n", " 2020/12/29 2684400 -1.039993 -0.004537 \n", " 2020/12/30 2074500 -2.260010 -0.009905 \n", "\n", "[674 rows x 8 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.loc[['DOCU']]" ] }, { "cell_type": "code", "execution_count": null, "id": "8948a92f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "edafc90c", "metadata": {}, "source": [ "## cross section" ] }, { "cell_type": "code", "execution_count": 13, "id": "1c65f51c", "metadata": {}, "outputs": [], "source": [ "def rank(df):\n", " \"\"\"Return the cross-sectional percentile rank\n", "\n", " Args:\n", " :param df: tickers in columns, sorted dates in rows.\n", "\n", " Returns:\n", " pd.DataFrame: the ranked values\n", " \"\"\"\n", " return df.rank(axis=1, pct=True)" ] }, { "cell_type": "code", "execution_count": 14, "id": "0819ffc0", "metadata": {}, "outputs": [], "source": [ "def scale(df):\n", " \"\"\"\n", " Scaling time serie.\n", " :param df: a pandas DataFrame.\n", " :param k: scaling factor.\n", " :return: a pandas DataFrame rescaled df such that sum(abs(df)) = k\n", " \"\"\"\n", " return df.div(df.abs().sum(axis=1), axis=0)" ] }, { "cell_type": "markdown", "id": "23fee97e", "metadata": {}, "source": [ "## operators" ] }, { "cell_type": "code", "execution_count": 15, "id": "1b79b4f5", "metadata": {}, "outputs": [], "source": [ "def log(df):\n", " return np.log1p(df)" ] }, { "cell_type": "code", "execution_count": 16, "id": "374b7501", "metadata": {}, "outputs": [], "source": [ "def sign(df):\n", " return np.sign(df)" ] }, { "cell_type": "code", "execution_count": 17, "id": "cfbb9fb4", "metadata": {}, "outputs": [], "source": [ "def power(df, exp):\n", " return df.pow(exp)" ] }, { "cell_type": "code", "execution_count": null, "id": "876ae595", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 18, "id": "abba4ec2", "metadata": {}, "outputs": [], "source": [ "def WMA(x, timeperiod=7):\n", " weights = np.arange(1, timeperiod + 1)\n", " return np.dot(x, weights) / weights.sum()\n", " \n", " " ] }, { "cell_type": "markdown", "id": "b2e37a58", "metadata": {}, "source": [ "## pandas implementation" ] }, { "cell_type": "code", "execution_count": 19, "id": "c151b5e7", "metadata": {}, "outputs": [], "source": [ "def ts_lag(df: pd.DataFrame, t: int = 1) -> pd.DataFrame:\n", " \"\"\"Return the lagged values t periods ago.\n", "\n", " Args:\n", " :param df: tickers in columns, sorted dates in rows.\n", " :param t: lag\n", "\n", " Returns:\n", " pd.DataFrame: the lagged values\n", " \"\"\"\n", " return df.shift(t)" ] }, { "cell_type": "code", "execution_count": 20, "id": "c7ea1b46", "metadata": {}, "outputs": [], "source": [ "def ts_delta(df, period=1):\n", " \"\"\"\n", " Wrapper function to estimate difference.\n", " :param df: a pandas DataFrame.\n", " :param period: the difference grade.\n", " :return: a pandas DataFrame with today’s value minus the value 'period' days ago.\n", " \"\"\"\n", " return df.diff(period)" ] }, { "cell_type": "code", "execution_count": 21, "id": "df00524c", "metadata": {}, "outputs": [], "source": [ "def ts_corr(x, y, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling correlations.\n", " :param x, y: pandas DataFrames.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series min over the past 'window' days.\n", " \"\"\"\n", " return x.rolling(window).corr(y)" ] }, { "cell_type": "code", "execution_count": 22, "id": "e9e19383", "metadata": {}, "outputs": [], "source": [ "def ts_sum(df: pd.DataFrame, window: int = 10) -> pd.DataFrame:\n", " \"\"\"Computes the rolling ts_sum for the given window size.\n", "\n", " Args:\n", " df (pd.DataFrame): tickers in columns, dates in rows.\n", " window (int): size of rolling window.\n", "\n", " Returns:\n", " pd.DataFrame: the ts_sum over the last 'window' days.\n", " \"\"\"\n", " return df.rolling(window).sum()" ] }, { "cell_type": "code", "execution_count": 23, "id": "c20ce021", "metadata": {}, "outputs": [], "source": [ "def ts_mean(df, window=10):\n", " \"\"\"Computes the rolling mean for the given window size.\n", "\n", " Args:\n", " df (pd.DataFrame): tickers in columns, dates in rows.\n", " window (int): size of rolling window.\n", "\n", " Returns:\n", " pd.DataFrame: the mean over the last 'window' days.\n", " \"\"\"\n", " return df.rolling(window).mean()" ] }, { "cell_type": "code", "execution_count": 24, "id": "fdbc5cc6", "metadata": {}, "outputs": [], "source": [ "def ts_weighted_mean(df, period=10):\n", " \"\"\"\n", " Linear weighted moving average implementation.\n", " :param df: a pandas DataFrame.\n", " :param period: the LWMA period\n", " :return: a pandas DataFrame with the LWMA.\n", " \"\"\"\n", " return (df.apply(lambda x: WMA(x, timeperiod=period)))" ] }, { "cell_type": "code", "execution_count": 25, "id": "ff3e1585", "metadata": {}, "outputs": [], "source": [ "def ts_std(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling standard deviation.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series min over the past 'window' days.\n", " \"\"\"\n", " return (df\n", " .rolling(window)\n", " .std())" ] }, { "cell_type": "code", "execution_count": 26, "id": "846ba5b8", "metadata": {}, "outputs": [], "source": [ "def ts_rank(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling rank.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series rank over the past window days.\n", " \"\"\"\n", " return (df\n", " .rolling(window)\n", " .apply(lambda x: x.rank().iloc[-1]))" ] }, { "cell_type": "code", "execution_count": 27, "id": "4b4fe82f", "metadata": {}, "outputs": [], "source": [ "def ts_product(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling ts_product.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series ts_product over the past 'window' days.\n", " \"\"\"\n", " return (df\n", " .rolling(window)\n", " .apply(np.prod))" ] }, { "cell_type": "code", "execution_count": 28, "id": "d17fea09", "metadata": {}, "outputs": [], "source": [ "def ts_min(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling min.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series min over the past 'window' days.\n", " \"\"\"\n", " return df.rolling(window).min()" ] }, { "cell_type": "code", "execution_count": 29, "id": "798beaa0", "metadata": {}, "outputs": [], "source": [ "def ts_max(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling min.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series max over the past 'window' days.\n", " \"\"\"\n", " return df.rolling(window).max()" ] }, { "cell_type": "code", "execution_count": 30, "id": "bc9d7450", "metadata": {}, "outputs": [], "source": [ "def ts_argmax(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate which day ts_max(df, window) occurred on\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: well.. that :)\n", " \"\"\"\n", " return df.rolling(window).apply(np.argmax).add(1)" ] }, { "cell_type": "code", "execution_count": 31, "id": "16ab498a", "metadata": {}, "outputs": [], "source": [ "def ts_argmin(df, window=10):\n", " \"\"\"\n", " Wrapper function to estimate which day ts_min(df, window) occurred on\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: well.. that :)\n", " \"\"\"\n", " return (df.rolling(window)\n", " .apply(np.argmin)\n", " .add(1))" ] }, { "cell_type": "code", "execution_count": 32, "id": "f66ef8ca", "metadata": {}, "outputs": [], "source": [ "def ts_cov(x, y, window=10):\n", " \"\"\"\n", " Wrapper function to estimate rolling covariance.\n", " :param df: a pandas DataFrame.\n", " :param window: the rolling window.\n", " :return: a pandas DataFrame with the time-series min over the past 'window' days.\n", " \"\"\"\n", " return x.rolling(window).cov(y)" ] }, { "cell_type": "code", "execution_count": null, "id": "ea2e7205", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ccefb4f8", "metadata": {}, "source": [ "# evaluation" ] }, { "cell_type": "code", "execution_count": 33, "id": "1cec2acf", "metadata": {}, "outputs": [], "source": [ "mi={}\n", "ic={}" ] }, { "cell_type": "code", "execution_count": 34, "id": "83a142d2", "metadata": {}, "outputs": [], "source": [ "def get_mutual_info_score(returns, alpha, n=1000):\n", " df = pd.DataFrame({'y': returns, 'alpha': alpha}).dropna().sample(n=n)\n", " return mutual_info_regression(y=df.y, X=df[['alpha']])[0]" ] }, { "cell_type": "code", "execution_count": null, "id": "de5b7ee6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "56ca0d92", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "090bcef6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 35, "id": "7b63b85e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/05 -0.660000\n", " 2016/01/06 -0.502501\n", " 2016/01/07 -1.062500\n", " 2016/01/08 0.127501\n", " 2016/01/11 0.392500\n", " ... \n", "WDC 2020/12/23 0.209999\n", " 2020/12/24 -0.010002\n", " 2020/12/28 0.140003\n", " 2020/12/29 -1.770000\n", " 2020/12/30 1.239998\n", "Name: returns, Length: 119409, dtype: float64" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.returns" ] }, { "cell_type": "code", "execution_count": 36, "id": "def8405c", "metadata": {}, "outputs": [], "source": [ "o = data.Open.unstack('ticker')\n", "h = data.High.unstack('ticker')\n", "l = data.Low.unstack('ticker')\n", "c = data.Close.unstack('ticker')\n", "v = data.Volume.unstack('ticker')\n", "vwap = o.add(h).add(l).add(c).div(4)\n", "adv20 = v.rolling(20).mean()\n", "r = data.returns.unstack('ticker')" ] }, { "cell_type": "code", "execution_count": 37, "id": "58fece3c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/05 -0.025059\n", " 2016/01/06 -0.019570\n", " 2016/01/07 -0.042205\n", " 2016/01/08 0.005288\n", " 2016/01/11 0.016192\n", " ... \n", "WDC 2020/12/23 0.004224\n", " 2020/12/24 -0.000200\n", " 2020/12/28 0.002805\n", " 2020/12/29 -0.035358\n", " 2020/12/30 0.025678\n", "Name: ret_fwd, Length: 119409, dtype: float64" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ret_fwd=data.ret_fwd\n", "ret_fwd" ] }, { "cell_type": "code", "execution_count": 38, "id": "8e774f19", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseAdj CloseVolumereturnsret_fwd
tickerDate
AAPL2016/01/0526.43750026.46250025.60250125.67750023.376617223164000-0.660000-0.025059
2016/01/0625.13999925.59250124.96750125.17499922.919142273829600-0.502501-0.019570
2016/01/0724.67000025.03249924.10750024.11249921.951851324377600-1.062500-0.042205
2016/01/0824.63750124.77750024.19000124.24000022.0679242831920000.1275010.005288
2016/01/1124.74250024.76499924.33499924.63250022.4252551989576000.3925000.016192
..............................
WDC2020/12/2349.95000150.59999849.41000049.93000049.93000026855000.2099990.004224
2020/12/2450.31000150.38000149.34999849.91999849.9199981224500-0.010002-0.000200
2020/12/2850.59000050.97000149.63000150.06000150.06000127634000.1400030.002805
2020/12/2950.63999950.63999948.23000048.29000148.2900014622400-1.770000-0.035358
2020/12/3048.27999950.29000148.27999949.52999949.52999939654001.2399980.025678
\n", "

119409 rows × 8 columns

\n", "
" ], "text/plain": [ " Open High Low Close Adj Close \\\n", "ticker Date \n", "AAPL 2016/01/05 26.437500 26.462500 25.602501 25.677500 23.376617 \n", " 2016/01/06 25.139999 25.592501 24.967501 25.174999 22.919142 \n", " 2016/01/07 24.670000 25.032499 24.107500 24.112499 21.951851 \n", " 2016/01/08 24.637501 24.777500 24.190001 24.240000 22.067924 \n", " 2016/01/11 24.742500 24.764999 24.334999 24.632500 22.425255 \n", "... ... ... ... ... ... \n", "WDC 2020/12/23 49.950001 50.599998 49.410000 49.930000 49.930000 \n", " 2020/12/24 50.310001 50.380001 49.349998 49.919998 49.919998 \n", " 2020/12/28 50.590000 50.970001 49.630001 50.060001 50.060001 \n", " 2020/12/29 50.639999 50.639999 48.230000 48.290001 48.290001 \n", " 2020/12/30 48.279999 50.290001 48.279999 49.529999 49.529999 \n", "\n", " Volume returns ret_fwd \n", "ticker Date \n", "AAPL 2016/01/05 223164000 -0.660000 -0.025059 \n", " 2016/01/06 273829600 -0.502501 -0.019570 \n", " 2016/01/07 324377600 -1.062500 -0.042205 \n", " 2016/01/08 283192000 0.127501 0.005288 \n", " 2016/01/11 198957600 0.392500 0.016192 \n", "... ... ... ... \n", "WDC 2020/12/23 2685500 0.209999 0.004224 \n", " 2020/12/24 1224500 -0.010002 -0.000200 \n", " 2020/12/28 2763400 0.140003 0.002805 \n", " 2020/12/29 4622400 -1.770000 -0.035358 \n", " 2020/12/30 3965400 1.239998 0.025678 \n", "\n", "[119409 rows x 8 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "markdown", "id": "ba4d1ba4", "metadata": {}, "source": [ "# alpha calculation" ] }, { "cell_type": "markdown", "id": "ad712cdc", "metadata": {}, "source": [ "alpha 2" ] }, { "cell_type": "code", "execution_count": 39, "id": "58f46921", "metadata": {}, "outputs": [], "source": [ "def alpha002(o, c, v):\n", " \"\"\"(-1 * ts_corr(rank(ts_delta(log(volume), 2)), rank(((close - open) / open)), 6))\"\"\"\n", " s1 = rank(ts_delta(log(v), 2))\n", " s2 = rank((c / o) - 1)\n", " alpha = -ts_corr(s1, s2, 6)\n", " return alpha.stack('ticker').swaplevel().replace([-np.inf, np.inf], np.nan)" ] }, { "cell_type": "code", "execution_count": 40, "id": "0c961c87", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/14 -0.414025\n", "ADBE 2016/01/14 0.493090\n", "ADI 2016/01/14 0.150472\n", "ADP 2016/01/14 0.421144\n", "ADSK 2016/01/14 0.515867\n", " ... \n", "WDAY 2020/12/30 -0.206533\n", "WDC 2020/12/30 -0.131785\n", "XEL 2020/12/30 -0.965703\n", "ZBRA 2020/12/30 -0.633176\n", "ZM 2020/12/30 0.361023\n", "Length: 118709, dtype: float64" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a2=alpha002(o, c, v)\n", "a2" ] }, { "cell_type": "code", "execution_count": 41, "id": "ff5a5d64", "metadata": {}, "outputs": [], "source": [ "## evaluation" ] }, { "cell_type": "code", "execution_count": 42, "id": "32ec4757", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[2] = get_mutual_info_score(ret_fwd, a2)\n", "mi[2]" ] }, { "cell_type": "code", "execution_count": null, "id": "8ff5b88d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "4328c4e4", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "4c8eaa9d", "metadata": {}, "source": [ "alpha 3" ] }, { "cell_type": "code", "execution_count": 43, "id": "9250fb99", "metadata": {}, "outputs": [], "source": [ "def alpha003(o, v):\n", " \"\"\"(-1 * ts_corr(rank(open), rank(volume), 10))\"\"\"\n", "\n", " return (-ts_corr(rank(o), rank(v), 10)\n", " .stack('ticker')\n", " .swaplevel()\n", " .replace([-np.inf, np.inf], np.nan))" ] }, { "cell_type": "code", "execution_count": 44, "id": "74b90d5c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "ADBE 2016/01/19 -8.629107e-01\n", "ADI 2016/01/19 -8.895679e-03\n", "ADP 2016/01/19 4.577782e-01\n", "ADSK 2016/01/19 2.653267e-01\n", "AEP 2016/01/19 5.865556e-01\n", " ... \n", "WBA 2020/12/30 -1.337252e-08\n", "WDAY 2020/12/30 1.563609e-01\n", "WDC 2020/12/30 4.935153e-01\n", "ZBRA 2020/12/30 2.863463e-01\n", "ZM 2020/12/30 2.984373e-01\n", "Length: 111210, dtype: float64" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a3=alpha003(o, v)\n", "a3" ] }, { "cell_type": "code", "execution_count": 45, "id": "73fd06bf", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.032706983756991104" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[3] = get_mutual_info_score(ret_fwd, a3)\n", "mi[3]" ] }, { "cell_type": "markdown", "id": "ece4acff", "metadata": {}, "source": [ "alpha 4" ] }, { "cell_type": "code", "execution_count": 46, "id": "fd522795", "metadata": {}, "outputs": [], "source": [ "def alpha004(l):\n", " \"\"\"(-1 * Ts_Rank(rank(low), 9))\"\"\"\n", " return (-ts_rank(rank(l), 9)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 47, "id": "cd1cbe0b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/15 -9.0\n", "ADBE 2016/01/15 -8.0\n", "ADI 2016/01/15 -7.0\n", "ADP 2016/01/15 -8.0\n", "ADSK 2016/01/15 -2.5\n", " ... \n", "WDAY 2020/12/30 -6.5\n", "WDC 2020/12/30 -1.0\n", "XEL 2020/12/30 -5.0\n", "ZBRA 2020/12/30 -9.0\n", "ZM 2020/12/30 -1.0\n", "Length: 118609, dtype: float64" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a4=alpha004(l)\n", "a4" ] }, { "cell_type": "code", "execution_count": 48, "id": "3c06eb1c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[4] = get_mutual_info_score(ret_fwd, a4)\n", "mi[4]" ] }, { "cell_type": "code", "execution_count": null, "id": "22bc658b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "2376fbf7", "metadata": {}, "source": [ "alpha 5" ] }, { "cell_type": "code", "execution_count": 49, "id": "31f06f10", "metadata": {}, "outputs": [], "source": [ "def alpha005(o, vwap, c):\n", " \"\"\"(rank((open - ts_mean(vwap, 10))) * (-1 * abs(rank((close - vwap)))))\"\"\"\n", " return (rank(o.sub(ts_mean(vwap, 10)))\n", " .mul(rank(c.sub(vwap)).mul(-1).abs())\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 50, "id": "3da5ee0c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/19 0.446806\n", "ADBE 2016/01/19 0.218090\n", "ADI 2016/01/19 0.208670\n", "ADP 2016/01/19 0.621664\n", "ADSK 2016/01/19 0.021737\n", " ... \n", "WDAY 2020/12/30 0.013600\n", "WDC 2020/12/30 0.097500\n", "XEL 2020/12/30 0.231000\n", "ZBRA 2020/12/30 0.682500\n", "ZM 2020/12/30 0.002500\n", "Length: 118509, dtype: float64" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a5=alpha005(o, vwap, c)\n", "a5" ] }, { "cell_type": "code", "execution_count": 51, "id": "7c2ca212", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.054266786583122784" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[5] = get_mutual_info_score(ret_fwd, a5)\n", "mi[5]" ] }, { "cell_type": "code", "execution_count": null, "id": "21a2711e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 52, "id": "e84eb5bf", "metadata": {}, "outputs": [], "source": [ "def alpha006(o, v):\n", " \"\"\"(-ts_corr(open, volume, 10))\"\"\"\n", " return (-ts_corr(o, v, 10)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 53, "id": "b76c467f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/19 0.431357\n", "ADBE 2016/01/19 0.537988\n", "ADI 2016/01/19 0.714824\n", "ADP 2016/01/19 0.250451\n", "ADSK 2016/01/19 0.327689\n", " ... \n", "WDAY 2020/12/30 0.226448\n", "WDC 2020/12/30 -0.329796\n", "XEL 2020/12/30 -0.847294\n", "ZBRA 2020/12/30 0.457955\n", "ZM 2020/12/30 0.038767\n", "Length: 118509, dtype: float64" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a6=alpha006(o, v)\n", "a6" ] }, { "cell_type": "code", "execution_count": 54, "id": "fe219e99", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.007737607022389348" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[6] = get_mutual_info_score(ret_fwd, a6)\n", "mi[6]" ] }, { "cell_type": "markdown", "id": "3f696e6c", "metadata": {}, "source": [ "alpha 7" ] }, { "cell_type": "code", "execution_count": 55, "id": "0d65d7c2", "metadata": {}, "outputs": [], "source": [ "def alpha007(c, v, adv20):\n", " \"\"\"(adv20 < volume) \n", " ? ((-ts_rank(abs(ts_delta(close, 7)), 60)) * sign(ts_delta(close, 7))) \n", " : -1\n", " \"\"\"\n", " \n", " delta7 = ts_delta(c, 7)\n", " return (-ts_rank(abs(delta7), 60)\n", " .mul(sign(delta7))\n", " .where(adv20 0,\n", " close_diff.where(ts_max(close_diff, 5) < 0,\n", " -close_diff))\n", " return (alpha\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 62, "id": "3ae29d76", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/06 0.502501\n", "ADBE 2016/01/06 1.320000\n", "ADI 2016/01/06 2.299999\n", "ADP 2016/01/06 1.009995\n", "ADSK 2016/01/06 0.849998\n", " ... \n", "WDAY 2020/12/30 0.790009\n", "WDC 2020/12/30 -1.239998\n", "XEL 2020/12/30 -0.230003\n", "ZBRA 2020/12/30 -5.709991\n", "ZM 2020/12/30 0.350006\n", "Length: 119309, dtype: float64" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a9=alpha009(c)\n", "a9" ] }, { "cell_type": "code", "execution_count": 63, "id": "db8833a0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9637340494892159" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[9] = get_mutual_info_score(ret_fwd, a9)\n", "mi[9]" ] }, { "cell_type": "code", "execution_count": null, "id": "a3a9366f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b7594315", "metadata": {}, "source": [ "alpha 10" ] }, { "cell_type": "code", "execution_count": 64, "id": "75d7875e", "metadata": {}, "outputs": [], "source": [ "def alpha010(c):\n", " \"\"\"rank(((0 < ts_min(ts_delta(close, 1), 4)) \n", " ? ts_delta(close, 1) \n", " : ((ts_max(ts_delta(close, 1), 4) < 0)\n", " ? ts_delta(close, 1) \n", " : (-1 * ts_delta(close, 1)))))\n", " \"\"\"\n", " close_diff = ts_delta(c, 1)\n", " alpha = close_diff.where(ts_min(close_diff, 4) > 0,\n", " close_diff.where(ts_min(close_diff, 4) > 0,\n", " -close_diff))\n", "\n", " return (rank(alpha)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 65, "id": "2fa9f8d5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.2512318102115323" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a10=alpha010(c)\n", "mi[10] = get_mutual_info_score(ret_fwd, a10)\n", "mi[10]" ] }, { "cell_type": "code", "execution_count": null, "id": "47ad7e19", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5e746441", "metadata": {}, "source": [ "alpha 11" ] }, { "cell_type": "code", "execution_count": 66, "id": "a295195a", "metadata": {}, "outputs": [], "source": [ "def alpha011(c, vwap, v):\n", " \"\"\"(rank(ts_max((vwap - close), 3)) + \n", " rank(ts_min(vwap - close), 3)) * \n", " rank(ts_delta(volume, 3))\n", " \"\"\"\n", " return (rank(ts_max(vwap.sub(c), 3))\n", " .add(rank(ts_min(vwap.sub(c), 3)))\n", " .mul(rank(ts_delta(v, 3)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 67, "id": "ce5e4fbe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.024549634106292295" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a11=alpha011(c, vwap, v)\n", "mi[11] = get_mutual_info_score(ret_fwd, a11)\n", "mi[11]" ] }, { "cell_type": "code", "execution_count": null, "id": "d8e49f5d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "bbdc034f", "metadata": {}, "source": [ "alpha 12" ] }, { "cell_type": "code", "execution_count": 68, "id": "f72f5f7b", "metadata": {}, "outputs": [], "source": [ "def alpha012(v, c):\n", " \"\"\"(sign(ts_delta(volume, 1)) * \n", " (-1 * ts_delta(close, 1)))\n", " \"\"\"\n", " return (sign(ts_delta(v, 1)).mul(-ts_delta(c, 1))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 69, "id": "906002f1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5030163052184431" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a12=alpha012(v, c)\n", "mi[12] = get_mutual_info_score(ret_fwd, a12)\n", "mi[12]" ] }, { "cell_type": "code", "execution_count": null, "id": "87841fe7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5d35cc93", "metadata": {}, "source": [ "alpha 13" ] }, { "cell_type": "code", "execution_count": 70, "id": "97a6719c", "metadata": {}, "outputs": [], "source": [ "def alpha013(c, v):\n", " \"\"\"-rank(ts_cov(rank(close), rank(volume), 5))\"\"\"\n", " return (-rank(ts_cov(rank(c), rank(v), 5))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 71, "id": "bd0828a7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.03895566344547552" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a13=alpha013(c, v)\n", "mi[13] = get_mutual_info_score(ret_fwd, a13)\n", "mi[13]" ] }, { "cell_type": "code", "execution_count": null, "id": "1413abcc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9942347e", "metadata": {}, "source": [ "alpha 14" ] }, { "cell_type": "code", "execution_count": 72, "id": "0dcb6e0b", "metadata": {}, "outputs": [], "source": [ "def alpha014(o, v, r):\n", " \"\"\"\n", " (-rank(ts_delta(returns, 3))) * ts_corr(open, volume, 10))\n", " \"\"\"\n", "\n", " alpha = -rank(ts_delta(r, 3)).mul(ts_corr(o, v, 10)\n", " .replace([-np.inf,\n", " np.inf],\n", " np.nan))\n", " return (alpha\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 73, "id": "14df2115", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.02358689321869889" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a14=alpha014(o, v, r)\n", "mi[14] = get_mutual_info_score(ret_fwd, a14)\n", "mi[14]" ] }, { "cell_type": "markdown", "id": "da411dc2", "metadata": {}, "source": [ "alpha 15" ] }, { "cell_type": "code", "execution_count": 74, "id": "13aa38c1", "metadata": {}, "outputs": [], "source": [ "def alpha015(h, v):\n", " \"\"\"(-1 * ts_sum(rank(ts_corr(rank(high), rank(volume), 3)), 3))\"\"\"\n", " alpha = (-ts_sum(rank(ts_corr(rank(h), rank(v), 3)\n", " .replace([-np.inf, np.inf], np.nan)), 3))\n", " return (alpha\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 75, "id": "67d01e41", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a15=alpha015(h,v)\n", "mi[15] = get_mutual_info_score(ret_fwd, a15)\n", "mi[15]" ] }, { "cell_type": "code", "execution_count": 76, "id": "f6e0cef3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "ADP 2016/01/11 -0.563675\n", "ADSK 2016/01/11 -2.313269\n", "AEP 2016/01/11 -0.464739\n", "ATVI 2016/01/11 -0.900735\n", "BIDU 2016/01/11 -1.364391\n", " ... \n", "WBA 2020/12/30 -1.223368\n", "WDAY 2020/12/30 -1.016074\n", "WDC 2020/12/30 -0.189152\n", "XEL 2020/12/30 -1.322648\n", "ZM 2020/12/30 -1.881045\n", "Length: 78239, dtype: float64" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a15" ] }, { "cell_type": "code", "execution_count": null, "id": "80011d6f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d13c2837", "metadata": {}, "source": [ "alpha 16" ] }, { "cell_type": "code", "execution_count": 77, "id": "a680ffc6", "metadata": {}, "outputs": [], "source": [ "def alpha016(h, v):\n", " \"\"\"(-1 * rank(ts_cov(rank(high), rank(volume), 5)))\"\"\"\n", " return (-rank(ts_cov(rank(h), rank(v), 5))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 78, "id": "2ffa0ce2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a16=alpha016(h,v)\n", "mi[16] = get_mutual_info_score(ret_fwd, a16)\n", "mi[16]" ] }, { "cell_type": "code", "execution_count": null, "id": "8e2472dc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "25416f09", "metadata": {}, "source": [ "alpha 17" ] }, { "cell_type": "code", "execution_count": 79, "id": "f9f548dc", "metadata": {}, "outputs": [], "source": [ "def alpha017(c, v):\n", " \"\"\"(((-1 * rank(ts_rank(close, 10))) * rank(ts_delta(ts_delta(close, 1), 1))) *rank(ts_rank((volume / adv20), 5)))\n", " \"\"\"\n", " adv20 = ts_mean(v, 20)\n", " return (-rank(ts_rank(c, 10))\n", " .mul(rank(ts_delta(ts_delta(c, 1), 1)))\n", " .mul(rank(ts_rank(v.div(adv20), 5)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 80, "id": "29815db9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.2031276547601939" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a17=alpha017(c,v)\n", "mi[17] = get_mutual_info_score(ret_fwd, a17)\n", "mi[17]" ] }, { "cell_type": "code", "execution_count": null, "id": "061f7dcd", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "5cba7962", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "bab9f437", "metadata": {}, "source": [ "alpha 18" ] }, { "cell_type": "code", "execution_count": 81, "id": "69d30de7", "metadata": {}, "outputs": [], "source": [ "def alpha018(o, c):\n", " \"\"\"-rank((ts_std(abs((close - open)), 5) + (close - open)) +\n", " ts_corr(close, open,10))\n", " \"\"\"\n", " return (-rank(ts_std(c.sub(o).abs(), 5)\n", " .add(c.sub(o))\n", " .add(ts_corr(c, o, 10)\n", " .replace([-np.inf,\n", " np.inf],\n", " np.nan)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 82, "id": "c202bc4e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.17244489525438444" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a18=alpha018(o, c)\n", "mi[18] = get_mutual_info_score(ret_fwd, a18)\n", "mi[18]" ] }, { "cell_type": "code", "execution_count": null, "id": "13c78842", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "55da2344", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "732e5405", "metadata": {}, "source": [ "alpha 19" ] }, { "cell_type": "code", "execution_count": 83, "id": "57e7d09a", "metadata": {}, "outputs": [], "source": [ "def alpha019(c, r):\n", " \"\"\"((-1 * sign(((close - ts_lag(close, 7)) + ts_delta(close, 7)))) * \n", " (1 + rank((1 + ts_sum(returns,250)))))\n", " \"\"\"\n", " return (-sign(ts_delta(c, 7) + ts_delta(c, 7))\n", " .mul(1 + rank(1 + ts_sum(r, 250)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 84, "id": "8eef42f9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a19=alpha016(c,r)\n", "mi[19] = get_mutual_info_score(ret_fwd, a19)\n", "mi[19]" ] }, { "cell_type": "code", "execution_count": null, "id": "fe576896", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "22a95948", "metadata": {}, "source": [ "alpha 20" ] }, { "cell_type": "code", "execution_count": 85, "id": "a07fcb25", "metadata": {}, "outputs": [], "source": [ "def alpha020(o, h, l, c):\n", " \"\"\"-rank(open - ts_lag(high, 1)) * \n", " rank(open - ts_lag(close, 1)) * \n", " rank(open -ts_lag(low, 1))\"\"\"\n", " return (rank(o - ts_lag(h, 1))\n", " .mul(rank(o - ts_lag(c, 1)))\n", " .mul(rank(o - ts_lag(l, 1)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 86, "id": "dedd7d6d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.06045467937577076" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a20=alpha020(o, h, l, c)\n", "mi[20] = get_mutual_info_score(ret_fwd, a20)\n", "mi[20]" ] }, { "cell_type": "code", "execution_count": null, "id": "06e15d92", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e267dcb4", "metadata": {}, "source": [ "alpha 21" ] }, { "cell_type": "code", "execution_count": 87, "id": "82219411", "metadata": {}, "outputs": [], "source": [ "def alpha021(c, v):\n", " \"\"\"ts_mean(close, 8) + ts_std(close, 8) < ts_mean(close, 2)\n", " ? -1\n", " : (ts_mean(close,2) < ts_mean(close, 8) - ts_std(close, 8)\n", " ? 1\n", " : (volume / adv20 < 1\n", " ? -1\n", " : 1))\n", " \"\"\"\n", " sma2 = ts_mean(c, 2)\n", " sma8 = ts_mean(c, 8)\n", " std8 = ts_std(c, 8)\n", "\n", " cond_1 = sma8.add(std8) < sma2\n", " cond_2 = sma8.add(std8) > sma2\n", " cond_3 = v.div(ts_mean(v, 20)) < 1\n", "\n", " val = np.ones_like(c)\n", " alpha = pd.DataFrame(np.select(condlist=[cond_1, cond_2, cond_3],\n", " choicelist=[-1, 1, -1], default=1),\n", " index=c.index,\n", " columns=c.columns)\n", "\n", " return (alpha\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 88, "id": "780ec421", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.024410440783880993" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a21=alpha021(c, v)\n", "mi[21] = get_mutual_info_score(ret_fwd, a21)\n", "mi[21]" ] }, { "cell_type": "code", "execution_count": null, "id": "a9580d2b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "7dea942b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ed18df7a", "metadata": {}, "source": [ "alpha 22" ] }, { "cell_type": "code", "execution_count": 89, "id": "a6164baa", "metadata": {}, "outputs": [], "source": [ "def alpha022(h, c, v):\n", " \"\"\"-(ts_delta(ts_corr(high, volume, 5), 5) * \n", " rank(ts_std(close, 20)))\n", " \"\"\"\n", "\n", " return (ts_delta(ts_corr(h, v, 5)\n", " .replace([-np.inf,\n", " np.inf],\n", " np.nan), 5)\n", " .mul(rank(ts_std(c, 20)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 90, "id": "f332dfdf", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0067115045794290396" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a22=alpha022(h, c, v)\n", "mi[22] = get_mutual_info_score(ret_fwd, a22)\n", "mi[22]" ] }, { "cell_type": "code", "execution_count": null, "id": "2557a359", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "27a2090f", "metadata": {}, "source": [ "alpha 23" ] }, { "cell_type": "code", "execution_count": 91, "id": "d3888167", "metadata": {}, "outputs": [], "source": [ "def alpha023(h, c):\n", " \"\"\"((ts_mean(high, 20) < high)\n", " ? (-1 * ts_delta(high, 2))\n", " : 0\n", " \"\"\"\n", "\n", " return (ts_delta(h, 2)\n", " .mul(-1)\n", " .where(ts_mean(h, 20) < h, 0)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 92, "id": "f05119cb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0471943059894131" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a23=alpha023(h, c)\n", "mi[23] = get_mutual_info_score(ret_fwd, a23)\n", "mi[23]" ] }, { "cell_type": "code", "execution_count": null, "id": "ea0e2376", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "raw", "id": "ee512963", "metadata": {}, "source": [ "alpha 24" ] }, { "cell_type": "code", "execution_count": 93, "id": "19a786be", "metadata": {}, "outputs": [], "source": [ "def alpha024(c):\n", " \"\"\"((((ts_delta((ts_mean(close, 100)), 100) / ts_lag(close, 100)) <= 0.05) \n", " ? (-1 * (close - ts_min(close, 100))) \n", " : (-1 * ts_delta(close, 3)))\n", " \"\"\"\n", " cond = ts_delta(ts_mean(c, 100), 100) / ts_lag(c, 100) <= 0.05\n", "\n", " return (c.sub(ts_min(c, 100)).mul(-1).where(cond, -ts_delta(c, 3))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 94, "id": "6635d3b8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.05896459371364138" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a24=alpha024(c)\n", "mi[24] = get_mutual_info_score(ret_fwd, a24)\n", "mi[24]" ] }, { "cell_type": "code", "execution_count": null, "id": "dabafa70", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "99faea3e", "metadata": {}, "source": [ "alpha 25" ] }, { "cell_type": "code", "execution_count": 95, "id": "a29b072c", "metadata": {}, "outputs": [], "source": [ "def alpha025(h, c, r, vwap, adv20):\n", " \"\"\"rank((-1 * returns) * adv20 * vwap * (high - close))\"\"\"\n", " return (rank(-r.mul(adv20)\n", " .mul(vwap)\n", " .mul(h.sub(c)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 96, "id": "66a507ee", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.29325088641406305" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a25=alpha025(h, c, r, vwap, adv20)\n", "mi[25] = get_mutual_info_score(ret_fwd, a25)\n", "mi[25]" ] }, { "cell_type": "code", "execution_count": null, "id": "7d21b37d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "210aa34e", "metadata": {}, "source": [ "alpha 26" ] }, { "cell_type": "code", "execution_count": 97, "id": "5b7739a8", "metadata": {}, "outputs": [], "source": [ "def alpha026(h, v):\n", " \"\"\"(-1 * ts_max(ts_corr(ts_rank(volume, 5), ts_rank(high, 5), 5), 3))\"\"\"\n", " return (ts_max(ts_corr(ts_rank(v, 5), \n", " ts_rank(h, 5), 5)\n", " .replace([-np.inf, np.inf], np.nan), 3)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 98, "id": "47275d5c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.04351101761596343" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a26=alpha026(h,v)\n", "mi[26] = get_mutual_info_score(ret_fwd, a26)\n", "mi[26]" ] }, { "cell_type": "code", "execution_count": null, "id": "308b20e0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "0aedaae9", "metadata": {}, "source": [ "alpha 27" ] }, { "cell_type": "code", "execution_count": 99, "id": "f3b2d3e2", "metadata": {}, "outputs": [], "source": [ "def alpha027(v, vwap):\n", " \"\"\"((0.5 < rank(ts_mean(ts_corr(rank(volume), rank(vwap), 6), 2))) \n", " ? -1\n", " : 1)\"\"\"\n", " cond = rank(ts_mean(ts_corr(rank(v),\n", " rank(vwap), 6), 2))\n", " alpha = cond.notnull().astype(float)\n", " return (alpha.where(cond <= 0.5, -alpha)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 100, "id": "a18e0667", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a27=alpha027(h,v)\n", "mi[27] = get_mutual_info_score(ret_fwd, a27)\n", "mi[27]" ] }, { "cell_type": "code", "execution_count": null, "id": "57b375ef", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "01933c1f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b4e3b138", "metadata": {}, "source": [ "alpha 28" ] }, { "cell_type": "code", "execution_count": 101, "id": "88da3b71", "metadata": {}, "outputs": [], "source": [ "def alpha028(h, l, c, v, adv20):\n", " \"\"\"scale(((ts_corr(adv20, low, 5) + (high + low) / 2) - close))\"\"\"\n", " return (scale(ts_corr(adv20, l, 5)\n", " .replace([-np.inf, np.inf], 0)\n", " .add(h.add(l).div(2).sub(c)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 102, "id": "bfec2c96", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.1283364098825679" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a28=alpha028(h, l, c, v, adv20)\n", "mi[28] = get_mutual_info_score(ret_fwd, a28)\n", "mi[28]" ] }, { "cell_type": "code", "execution_count": null, "id": "19476e0c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9e54f141", "metadata": {}, "source": [ "alpha 29" ] }, { "cell_type": "code", "execution_count": 103, "id": "c0b9fdfb", "metadata": {}, "outputs": [], "source": [ "def alpha029(c, r):\n", " \"\"\"(ts_min(ts_product(rank(rank(scale(log(ts_sum(ts_min(rank(rank((-1 * \n", " rank(ts_delta((close - 1),5))))), 2), 1))))), 1), 5)\n", " + ts_rank(ts_lag((-1 * returns), 6), 5))\n", " \"\"\"\n", " return (ts_min(rank(rank(scale(log(ts_sum(rank(rank(-rank(ts_delta((c - 1), 5)))), 2))))), 5)\n", " .add(ts_rank(ts_lag((-1 * r), 6), 5))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 104, "id": "c9ec850d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.014014543370976629" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a29=alpha029(c, r)\n", "mi[29] = get_mutual_info_score(ret_fwd, a29)\n", "mi[29]" ] }, { "cell_type": "code", "execution_count": null, "id": "86d83de1", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7599744a", "metadata": {}, "source": [ "alpha 30" ] }, { "cell_type": "code", "execution_count": 105, "id": "f34984b1", "metadata": {}, "outputs": [], "source": [ "def alpha030(c, v):\n", " \"\"\"(((1.0 - rank(((sign((close - ts_lag(close, 1))) +\n", " sign((ts_lag(close, 1) - ts_lag(close, 2)))) +\n", " sign((ts_lag(close, 2) - ts_lag(close, 3)))))) *\n", " ts_sum(volume, 5)) / ts_sum(volume, 20))\"\"\"\n", " close_diff = ts_delta(c, 1)\n", " return (rank(sign(close_diff)\n", " .add(sign(ts_lag(close_diff, 1)))\n", " .add(sign(ts_lag(close_diff, 2))))\n", " .mul(-1).add(1)\n", " .mul(ts_sum(v, 5))\n", " .div(ts_sum(v, 20))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 106, "id": "c857415f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.00033333333333052106" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a30=alpha030(c, r)\n", "a30.to_frame().replace([np.inf, -np.inf], np.nan, inplace=True)\n", "mi[30] = get_mutual_info_score(ret_fwd, a30)\n", "mi[30]" ] }, { "cell_type": "markdown", "id": "504e8381", "metadata": {}, "source": [ "alpha 31" ] }, { "cell_type": "code", "execution_count": 107, "id": "1f3f7e24", "metadata": {}, "outputs": [], "source": [ "def alpha031(l, c, adv20):\n", " \"\"\"((rank(rank(rank(ts_weighted_mean((-1 * rank(rank(ts_delta(close, 10)))), 10)))) +\n", " rank((-1 * ts_delta(close, 3)))) + sign(scale(ts_corr(adv20, low, 12))))\n", " \"\"\"\n", " return (rank(rank(rank(ts_weighted_mean(rank(rank(ts_delta(c, 10))).mul(-1), 10))))\n", " .add(rank(ts_delta(c, 3).mul(-1)))\n", " .add(sign(scale(ts_corr(adv20, l, 12)\n", " .replace([-np.inf, np.inf],\n", " np.nan))))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "8575ec7d", "metadata": {}, "source": [ "a31=alpha031(l, c, adv20)\n", "mi[31] = get_mutual_info_score(ret_fwd, a31)\n", "mi[31]" ] }, { "cell_type": "markdown", "id": "363256c6", "metadata": {}, "source": [ "alpha 32" ] }, { "cell_type": "code", "execution_count": 108, "id": "facf24fe", "metadata": {}, "outputs": [], "source": [ "def alpha032(c, vwap):\n", " \"\"\"scale(ts_mean(close, 7) - close) + \n", " (20 * scale(ts_corr(vwap, ts_lag(close, 5),230)))\"\"\"\n", " return (scale(ts_mean(c, 7).sub(c))\n", " .add(20 * scale(ts_corr(vwap,\n", " ts_lag(c, 5), 230)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 109, "id": "362df59d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.05613811602484953" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a32=alpha032(c, vwap)\n", "mi[32] = get_mutual_info_score(ret_fwd, a32)\n", "mi[32]" ] }, { "cell_type": "code", "execution_count": null, "id": "644345d8", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "08734dbb", "metadata": {}, "source": [ "alpha 33" ] }, { "cell_type": "code", "execution_count": 110, "id": "08049aaf", "metadata": {}, "outputs": [], "source": [ "def alpha033(o, c):\n", " \"\"\"rank(-(1 - (open / close)))\"\"\"\n", " return (rank(o.div(c).mul(-1).add(1).mul(-1))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 111, "id": "1532a4c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.013479222997322182" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a33=alpha032(o, c)\n", "mi[33] = get_mutual_info_score(ret_fwd, a33)\n", "mi[33]" ] }, { "cell_type": "code", "execution_count": null, "id": "9ed30fcf", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "643c9cc0", "metadata": {}, "source": [ "alpha 34" ] }, { "cell_type": "code", "execution_count": 112, "id": "13a3cd7c", "metadata": {}, "outputs": [], "source": [ "def alpha034(c, r):\n", " \"\"\"rank(((1 - rank((ts_std(returns, 2) / ts_std(returns, 5)))) + (1 - rank(ts_delta(close, 1)))))\"\"\"\n", "\n", " return (rank(rank(ts_std(r, 2).div(ts_std(r, 5))\n", " .replace([-np.inf, np.inf],\n", " np.nan))\n", " .mul(-1)\n", " .sub(rank(ts_delta(c, 1)))\n", " .add(2))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 113, "id": "e95801dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.16543869041969073" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a34=alpha034(c, r)\n", "mi[34] = get_mutual_info_score(ret_fwd, a34)\n", "mi[34]" ] }, { "cell_type": "code", "execution_count": null, "id": "4f0a79aa", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "89d8d893", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "6ff68fbc", "metadata": {}, "source": [ "alpha 35" ] }, { "cell_type": "code", "execution_count": 114, "id": "28ce3001", "metadata": {}, "outputs": [], "source": [ "def alpha035(h, l, c, v, r):\n", " \"\"\"((ts_Rank(volume, 32) *\n", " (1 - ts_Rank(((close + high) - low), 16))) *\n", " (1 -ts_Rank(returns, 32)))\n", " \"\"\"\n", " return (ts_rank(v, 32)\n", " .mul(1 - ts_rank(c.add(h).sub(l), 16))\n", " .mul(1 - ts_rank(r, 32))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 115, "id": "d2cb7dd5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.37151501888752003" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a35=alpha035(h, l, c, v, r)\n", "mi[35] = get_mutual_info_score(ret_fwd, a35)\n", "mi[35]" ] }, { "cell_type": "code", "execution_count": null, "id": "ac4fc4ce", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "58b60b82", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c836b4a0", "metadata": {}, "source": [ "alpha 36" ] }, { "cell_type": "code", "execution_count": 116, "id": "f04389ed", "metadata": {}, "outputs": [], "source": [ "def alpha036(o, c, v, r, adv20):\n", " \"\"\"2.21 * rank(ts_corr((close - open), ts_lag(volume, 1), 15)) +\n", " 0.7 * rank((open- close)) +\n", " 0.73 * rank(ts_Rank(ts_lag(-1 * returns, 6), 5)) +\n", " rank(abs(ts_corr(vwap,adv20, 6))) +\n", " 0.6 * rank(((ts_mean(close, 200) - open) * (close - open)))\n", " \"\"\"\n", "\n", " return (rank(ts_corr(c.sub(o), ts_lag(v, 1), 15)).mul(2.21)\n", " .add(rank(o.sub(c)).mul(.7))\n", " .add(rank(ts_rank(ts_lag(-r, 6), 5)).mul(0.73))\n", " .add(rank(abs(ts_corr(vwap, adv20, 6))))\n", " .add(rank(ts_mean(c, 200).sub(o).mul(c.sub(o))).mul(0.6))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 117, "id": "e9b29618", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.05036610512811146" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a36=alpha036(o, c, v, r, adv20)\n", "mi[36] = get_mutual_info_score(ret_fwd, a36)\n", "mi[36]" ] }, { "cell_type": "code", "execution_count": null, "id": "a99385e0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "774768ec", "metadata": {}, "source": [ "alpha 37" ] }, { "cell_type": "code", "execution_count": 118, "id": "6a1d7fc3", "metadata": {}, "outputs": [], "source": [ "def alpha037(o, c):\n", " \"\"\"(rank(ts_corr(ts_lag((open - close), 1), close, 200)) + rank((open - close)))\"\"\"\n", " return (rank(ts_corr(ts_lag(o.sub(c), 1), c, 200))\n", " .add(rank(o.sub(c)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 119, "id": "8cc003f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0791776700798712" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a37=alpha037(o, c)\n", "mi[37] = get_mutual_info_score(ret_fwd, a37)\n", "mi[37]" ] }, { "cell_type": "code", "execution_count": null, "id": "63b4bd9b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ee7e6dde", "metadata": {}, "source": [ "alpha 38" ] }, { "cell_type": "code", "execution_count": 120, "id": "29f364aa", "metadata": {}, "outputs": [], "source": [ "def alpha038(o, c):\n", " \"\"\"\"-1 * rank(ts_rank(close, 10)) * rank(close / open)\"\"\"\n", " return (rank(ts_rank(o, 10))\n", " .mul(rank(c.div(o).replace([-np.inf, np.inf], np.nan)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 121, "id": "9fa30f13", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.19116398119114386" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a38=alpha038(o, c)\n", "mi[38] = get_mutual_info_score(ret_fwd, a38)\n", "mi[38]" ] }, { "cell_type": "code", "execution_count": null, "id": "8d350da9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "0c1478e5", "metadata": {}, "source": [ "alpha 39" ] }, { "cell_type": "code", "execution_count": 122, "id": "e9eec526", "metadata": {}, "outputs": [], "source": [ "def alpha039(c, v, r, adv20):\n", " \"\"\"-rank(ts_delta(close, 7) * (1 - rank(ts_weighted_mean(volume / adv20, 9)))) * \n", " (1 + rank(ts_sum(returns, 250)))\"\"\"\n", " return (rank(ts_delta(c, 7).mul(rank(ts_weighted_mean(v.div(adv20), 9)).mul(-1).add(1))).mul(-1)\n", " .mul(rank(ts_mean(r, 250).add(1)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "224e7457", "metadata": {}, "source": [ "a39=alpha039(c, v, r, adv20)\n", "mi[39] = get_mutual_info_score(ret_fwd, a39)\n", "mi[39]" ] }, { "cell_type": "code", "execution_count": null, "id": "83834bc5", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "a408c152", "metadata": {}, "source": [ "alpha 40" ] }, { "cell_type": "code", "execution_count": 123, "id": "2a32fe06", "metadata": {}, "outputs": [], "source": [ "def alpha040(h, v):\n", " \"\"\"((-1 * rank(ts_std(high, 10))) * ts_corr(high, volume, 10))\n", " \"\"\"\n", " return (rank(ts_std(h, 10))\n", " .mul(ts_corr(h, v, 10))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 124, "id": "ea196d02", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a40=alpha040(h, v)\n", "mi[40] = get_mutual_info_score(ret_fwd, a40)\n", "mi[40]" ] }, { "cell_type": "code", "execution_count": null, "id": "386d131f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "d43d338d", "metadata": {}, "source": [ "alpha 41" ] }, { "cell_type": "code", "execution_count": 125, "id": "fef42063", "metadata": {}, "outputs": [], "source": [ "def alpha041(h, l, vwap):\n", " \"\"\"power(high * low, 0.5 - vwap\"\"\"\n", " return (power(h.mul(l), 0.5)\n", " .sub(vwap)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 126, "id": "516014fc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.004507116019724311" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a41=alpha041(h, l, vwap)\n", "mi[41] = get_mutual_info_score(ret_fwd, a41)\n", "mi[41]" ] }, { "cell_type": "code", "execution_count": null, "id": "bce2c580", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e04ac46e", "metadata": {}, "source": [ "alpha 42" ] }, { "cell_type": "code", "execution_count": 127, "id": "3a9d5914", "metadata": {}, "outputs": [], "source": [ "def alpha042(c, vwap):\n", " \"\"\"rank(vwap - close) / rank(vwap + close)\"\"\"\n", " return (rank(vwap.sub(c))\n", " .div(rank(vwap.add(c)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 128, "id": "2ad678dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.12844822754081875" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a42=alpha042(c, vwap)\n", "mi[42] = get_mutual_info_score(ret_fwd, a42)\n", "mi[42]" ] }, { "cell_type": "code", "execution_count": null, "id": "24f01bef", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "069d2962", "metadata": {}, "source": [ "alpha 43" ] }, { "cell_type": "code", "execution_count": 129, "id": "795b397a", "metadata": {}, "outputs": [], "source": [ "def alpha043(c, adv20):\n", " \"\"\"(ts_rank((volume / adv20), 20) * ts_rank((-1 * ts_delta(close, 7)), 8))\"\"\"\n", "\n", " return (ts_rank(v.div(adv20), 20)\n", " .mul(ts_rank(ts_delta(c, 7).mul(-1), 8))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 130, "id": "1f345607", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.08028447934721017" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a43=alpha043(c, adv20)\n", "mi[43] = get_mutual_info_score(ret_fwd, a43)\n", "mi[43]" ] }, { "cell_type": "code", "execution_count": null, "id": "eb912759", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ff52b50a", "metadata": {}, "source": [ "alpha 44" ] }, { "cell_type": "code", "execution_count": 131, "id": "5e4fbdcf", "metadata": {}, "outputs": [], "source": [ "def alpha044(h, v):\n", " \"\"\"-ts_corr(high, rank(volume), 5)\"\"\"\n", "\n", " return (ts_corr(h, rank(v), 5)\n", " .replace([-np.inf, np.inf], np.nan)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 132, "id": "726c496b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.026945423086009335" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a44=alpha044(h, v)\n", "mi[44] = get_mutual_info_score(ret_fwd, a44)\n", "mi[44]" ] }, { "cell_type": "code", "execution_count": null, "id": "b9fd3089", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "20dc479e", "metadata": {}, "source": [ "alpha 45" ] }, { "cell_type": "code", "execution_count": 133, "id": "a9d94af3", "metadata": {}, "outputs": [], "source": [ "def alpha045(c, v):\n", " \"\"\"-(rank((ts_mean(ts_lag(close, 5), 20)) * \n", " ts_corr(close, volume, 2)) *\n", " rank(ts_corr(ts_sum(close, 5), ts_sum(close, 20), 2)))\"\"\"\n", "\n", " return (rank(ts_mean(ts_lag(c, 5), 20))\n", " .mul(ts_corr(c, v, 2)\n", " .replace([-np.inf, np.inf], np.nan))\n", " .mul(rank(ts_corr(ts_sum(c, 5),\n", " ts_sum(c, 20), 2)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 134, "id": "c0b46c6a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.053480953692948585" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a45=alpha045(c, v)\n", "mi[45] = get_mutual_info_score(ret_fwd, a45)\n", "mi[45]" ] }, { "cell_type": "code", "execution_count": null, "id": "fc40d839", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "244ea32d", "metadata": {}, "source": [ "alpha 46" ] }, { "cell_type": "code", "execution_count": 135, "id": "f4c94598", "metadata": {}, "outputs": [], "source": [ "def alpha046(c):\n", " \"\"\"0.25 < ts_lag(ts_delta(close, 10), 10) / 10 - ts_delta(close, 10) / 10\n", " ? -1\n", " : ((ts_lag(ts_delta(close, 10), 10) / 10 - ts_delta(close, 10) / 10 < 0) \n", " ? 1 \n", " : -ts_delta(close, 1))\n", " \"\"\"\n", "\n", " cond = ts_lag(ts_delta(c, 10), 10).div(10).sub(ts_delta(c, 10).div(10))\n", " alpha = pd.DataFrame(-np.ones_like(cond),\n", " index=c.index,\n", " columns=c.columns)\n", " alpha[cond.isnull()] = np.nan\n", " return (cond.where(cond > 0.25,\n", " -alpha.where(cond < 0,\n", " -ts_delta(c, 1)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 136, "id": "384f1b31", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.15915573024673924" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a46=alpha046(c)\n", "mi[46] = get_mutual_info_score(ret_fwd, a46)\n", "mi[46]" ] }, { "cell_type": "code", "execution_count": null, "id": "d49eccaa", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "14b1e420", "metadata": {}, "source": [ "alpha 47" ] }, { "cell_type": "code", "execution_count": 137, "id": "c75bee26", "metadata": {}, "outputs": [], "source": [ "def alpha047(h, c, v, vwap, adv20):\n", " \"\"\"((((rank((1 / close)) * volume) / adv20) * ((high * rank((high - close))) / \n", " (ts_sum(high, 5) /5))) - rank((vwap - ts_lag(vwap, 5))))\"\"\"\n", "\n", " return (rank(c.pow(-1)).mul(v).div(adv20)\n", " .mul(h.mul(rank(h.sub(c))\n", " .div(ts_mean(h, 5)))\n", " .sub(rank(ts_delta(vwap, 5))))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 138, "id": "e14eeed9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.08470266330606302" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a47=alpha047(h, c, v, vwap, adv20)\n", "mi[47] = get_mutual_info_score(ret_fwd, a47)\n", "mi[47]" ] }, { "cell_type": "code", "execution_count": null, "id": "b19a1d2b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "83521afc", "metadata": {}, "source": [ "alpha 49" ] }, { "cell_type": "code", "execution_count": 139, "id": "f129e036", "metadata": {}, "outputs": [], "source": [ "def alpha049(c):\n", " \"\"\"ts_delta(ts_lag(close, 10), 10).div(10).sub(ts_delta(close, 10).div(10)) < -0.1 * c\n", " ? 1 \n", " : -ts_delta(close, 1)\"\"\"\n", " cond = (ts_delta(ts_lag(c, 10), 10).div(10)\n", " .sub(ts_delta(c, 10).div(10)) >= -0.1 * c)\n", " return (-ts_delta(c, 1)\n", " .where(cond, 1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 140, "id": "5dfe46ed", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.1552429800816584" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a49=alpha049(c)\n", "mi[49] = get_mutual_info_score(ret_fwd, a49)\n", "mi[49]" ] }, { "cell_type": "code", "execution_count": null, "id": "3f55b6fa", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "6c181186", "metadata": {}, "source": [ "alpha 50" ] }, { "cell_type": "code", "execution_count": 141, "id": "19fa2be3", "metadata": {}, "outputs": [], "source": [ "def alpha050(v, vwap):\n", " \"\"\"-ts_max(rank(ts_corr(rank(volume), rank(vwap), 5)), 5)\"\"\"\n", " return (ts_max(rank(ts_corr(rank(v),\n", " rank(vwap), 5)), 5)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 142, "id": "822ea9bb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.03630976617471715" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a50=alpha050(v, vwap)\n", "mi[50] = get_mutual_info_score(ret_fwd, a50)\n", "mi[50]" ] }, { "cell_type": "code", "execution_count": null, "id": "23ab494c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7ff19815", "metadata": {}, "source": [ "alpha 51" ] }, { "cell_type": "code", "execution_count": 143, "id": "bc3ff3c0", "metadata": {}, "outputs": [], "source": [ "def alpha051(c):\n", " \"\"\"ts_delta(ts_lag(close, 10), 10).div(10).sub(ts_delta(close, 10).div(10)) < -0.05 * c\n", " ? 1 \n", " : -ts_delta(close, 1)\"\"\"\n", " cond = (ts_delta(ts_lag(c, 10), 10).div(10)\n", " .sub(ts_delta(c, 10).div(10)) >= -0.05 * c)\n", " return (-ts_delta(c, 1)\n", " .where(cond, 1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 144, "id": "e57e3f5c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.1754409475657157" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a51=alpha051(c)\n", "mi[51] = get_mutual_info_score(ret_fwd, a51)\n", "mi[51]" ] }, { "cell_type": "code", "execution_count": null, "id": "a5a6e10f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "dfedbb33", "metadata": {}, "source": [ "alpha 52" ] }, { "cell_type": "code", "execution_count": 145, "id": "d82691d8", "metadata": {}, "outputs": [], "source": [ "def alpha052(l, v, r):\n", " \"\"\"(ts_lag(ts_min(low, 5), 5) - ts_min(low, 5)) * \n", " rank((ts_sum(returns, 240) - ts_sum(returns, 20)) / 220) * \n", " ts_rank(volume, 5)\n", " \"\"\"\n", " return (ts_delta(ts_min(l, 5), 5)\n", " .mul(rank(ts_sum(r, 240)\n", " .sub(ts_sum(r, 20))\n", " .div(220)))\n", " .mul(ts_rank(v, 5))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 146, "id": "9951d84e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a52=alpha052(l, v, r)\n", "mi[52] = get_mutual_info_score(ret_fwd, a52)\n", "mi[52]" ] }, { "cell_type": "code", "execution_count": null, "id": "fe2896a3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "37a8e52b", "metadata": {}, "source": [ "alpha 53" ] }, { "cell_type": "code", "execution_count": 147, "id": "35010c47", "metadata": {}, "outputs": [], "source": [ "def alpha053(h, l, c):\n", " \"\"\"-1 * ts_delta(1 - (high - close) / (close - low), 9)\"\"\"\n", " inner = (c.sub(l)).add(1e-6)\n", " return (ts_delta(h.sub(c)\n", " .mul(-1).add(1)\n", " .div(c.sub(l)\n", " .add(1e-6)), 9)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 148, "id": "6ef01fa9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0001819931515086859" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a53=alpha053(h, l, c)\n", "mi[53] = get_mutual_info_score(ret_fwd, a53)\n", "mi[53]" ] }, { "cell_type": "code", "execution_count": null, "id": "0f9e0019", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b07355f3", "metadata": {}, "source": [ "alpha 54" ] }, { "cell_type": "code", "execution_count": 149, "id": "1c3a2adf", "metadata": {}, "outputs": [], "source": [ "def alpha054(o, h, l, c):\n", " \"\"\"-(low - close) * power(open, 5) / ((low - high) * power(close, 5))\"\"\"\n", " return (l.sub(c).mul(o.pow(5)).mul(-1)\n", " .div(l.sub(h).replace(0, -0.0001).mul(c ** 5))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 150, "id": "331a3bd4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.2947490161621604" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a54=alpha054(o, h, l, c)\n", "mi[54] = get_mutual_info_score(ret_fwd, a54)\n", "mi[54]" ] }, { "cell_type": "code", "execution_count": null, "id": "3e2030b9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f2d025d9", "metadata": {}, "source": [ "alpha 55" ] }, { "cell_type": "code", "execution_count": 151, "id": "1e51e4ac", "metadata": {}, "outputs": [], "source": [ "def alpha055(h, l, c):\n", " \"\"\"(-1 * ts_corr(rank(((close - ts_min(low, 12)) / \n", " (ts_max(high, 12) - ts_min(low,12)))), \n", " rank(volume), 6))\"\"\"\n", "\n", " return (ts_corr(rank(c.sub(ts_min(l, 12))\n", " .div(ts_max(h, 12).sub(ts_min(l, 12))\n", " .replace(0, 1e-6))),\n", " rank(v), 6)\n", " .replace([-np.inf, np.inf], np.nan)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 152, "id": "cea00c56", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a55=alpha055(h, l, c)\n", "mi[55] = get_mutual_info_score(ret_fwd, a55)\n", "mi[55]" ] }, { "cell_type": "code", "execution_count": null, "id": "a12e6dcc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c8ca5f32", "metadata": {}, "source": [ "alpha 57" ] }, { "cell_type": "code", "execution_count": 153, "id": "0d0c31a9", "metadata": {}, "outputs": [], "source": [ "def alpha057(c, vwap):\n", " \"\"\"-(close - vwap) / ts_weighted_mean(rank(ts_argmax(close, 30)), 2)\"\"\"\n", " return (c.sub(vwap.add(1e-5))\n", " .div(ts_weighted_mean(rank(ts_argmax(c, 30)))).mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "38440f17", "metadata": {}, "source": [ "a57=alpha057(c, vwap)\n", "mi[57] = get_mutual_info_score(ret_fwd, a57)\n", "mi[57]" ] }, { "cell_type": "code", "execution_count": null, "id": "070e05f8", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "dbba9189", "metadata": {}, "source": [ "alpha 60" ] }, { "cell_type": "code", "execution_count": 154, "id": "505e6173", "metadata": {}, "outputs": [], "source": [ "def alpha060(l, h, c, v):\n", " \"\"\"-((2 * scale(rank(((((close - low) - (high - close)) / (high - low)) * volume)))) -scale(rank(ts_argmax(close, 10))))\"\"\"\n", " return (scale(rank(c.mul(2).sub(l).sub(h)\n", " .div(h.sub(l).replace(0, 1e-5))\n", " .mul(v))).mul(2)\n", " .sub(scale(rank(ts_argmax(c, 10)))).mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 155, "id": "8c6a989e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.09904644051422284" ] }, "execution_count": 155, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a60=alpha060(l, h, c, v)\n", "mi[60] = get_mutual_info_score(ret_fwd, a60)\n", "mi[60]" ] }, { "cell_type": "code", "execution_count": null, "id": "d12536fb", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "47b95a62", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "63a1ec9c", "metadata": {}, "source": [ "alpha 61" ] }, { "cell_type": "code", "execution_count": 156, "id": "277b0443", "metadata": {}, "outputs": [], "source": [ "def alpha061(v, vwap):\n", " \"\"\"rank((vwap - ts_min(vwap, 16))) < rank(ts_corr(vwap, adv180, 17))\"\"\"\n", "\n", " return (rank(vwap.sub(ts_min(vwap, 16)))\n", " .lt(rank(ts_corr(vwap, ts_mean(v, 180), 18)))\n", " .astype(int)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 157, "id": "a40a1c4c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.01015122469173857" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a61=alpha061(v, vwap)\n", "mi[61] = get_mutual_info_score(ret_fwd, a61)\n", "mi[61]" ] }, { "cell_type": "code", "execution_count": null, "id": "57ad3fbd", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f37ab033", "metadata": {}, "source": [ "alpha 62" ] }, { "cell_type": "code", "execution_count": 158, "id": "b45ee6ce", "metadata": {}, "outputs": [], "source": [ "def alpha062(o, h, l, vwap, adv20):\n", " \"\"\"((rank(ts_corr(vwap, ts_sum(adv20, 22.4101), 9.91009)) < \n", " rank(((rank(open) + rank(open)) < (rank(((high + low) / 2)) + rank(high))))) * -1)\"\"\"\n", " return (rank(ts_corr(vwap, ts_sum(adv20, 22), 9))\n", " .lt(rank(\n", " rank(o).mul(2))\n", " .lt(rank(h.add(l).div(2))\n", " .add(rank(h))))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 159, "id": "2684c355", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0031446379817416936" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a62=alpha062(o, h, l, vwap, adv20)\n", "mi[62] = get_mutual_info_score(ret_fwd, a62)\n", "mi[62]" ] }, { "cell_type": "code", "execution_count": null, "id": "e890ce36", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "876422d1", "metadata": {}, "source": [ "alpha 64" ] }, { "cell_type": "code", "execution_count": 160, "id": "03fbaf62", "metadata": {}, "outputs": [], "source": [ "def alpha064(o, h, l, v, vwap):\n", " \"\"\"((rank(ts_corr(ts_sum(((open * 0.178404) + (low * (1 - 0.178404))), 12.7054),ts_sum(adv120, 12.7054), 16.6208)) <\n", " rank(ts_delta(((((high + low) / 2) * 0.178404) + (vwap * (1 -0.178404))), 3.69741))) * -1)\"\"\"\n", " w = 0.178404\n", " return (rank(ts_corr(ts_sum(o.mul(w).add(l.mul(1 - w)), 12),\n", " ts_sum(ts_mean(v, 120), 12), 16))\n", " .lt(rank(ts_delta(h.add(l).div(2).mul(w)\n", " .add(vwap.mul(1 - w)), 3)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 161, "id": "89d1329f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a64=alpha062(o, h, l, v, vwap)\n", "mi[64] = get_mutual_info_score(ret_fwd, a64)\n", "mi[64]" ] }, { "cell_type": "code", "execution_count": null, "id": "2e231e97", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "501fa53b", "metadata": {}, "source": [ "alpha 65" ] }, { "cell_type": "code", "execution_count": 162, "id": "d77dd65d", "metadata": {}, "outputs": [], "source": [ "def alpha065(o, v, vwap):\n", " \"\"\"((rank(ts_corr(((open * 0.00817205) + (vwap * (1 - 0.00817205))), \n", " ts_sum(adv60,8.6911), 6.40374)) < \n", " rank((open - ts_min(open, 13.635)))) * -1)\n", " \"\"\"\n", " w = 0.00817205\n", " return (rank(ts_corr(o.mul(w).add(vwap.mul(1 - w)),\n", " ts_mean(ts_mean(v, 60), 9), 6))\n", " .lt(rank(o.sub(ts_min(o, 13))))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 163, "id": "c20cf659", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a65=alpha065(o, v, vwap)\n", "mi[65] = get_mutual_info_score(ret_fwd, a65)\n", "mi[65]" ] }, { "cell_type": "code", "execution_count": null, "id": "b65a85ca", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "de96942a", "metadata": {}, "source": [ "alpha 66" ] }, { "cell_type": "markdown", "id": "f08f06aa", "metadata": {}, "source": [ "def alpha066(l, h, vwap):\n", " \"\"\"((rank(ts_weighted_mean(ts_delta(vwap, 3.51013), 7.23052)) +\n", " ts_rank(ts_weighted_mean(((((low* 0.96633) + (low *\n", " (1 - 0.96633))) - vwap) /\n", " (open - ((high + low) / 2))), 11.4157), 6.72611)) * -1)\n", " \"\"\"\n", " w = 0.96633\n", " return (rank(ts_weighted_mean(ts_delta(vwap, 4), 7))\n", " .add(ts_rank(ts_weighted_mean(l.mul(w).add(l.mul(1 - w))\n", " .sub(vwap)\n", " .div(o.sub(h.add(l).div(2)).add(1e-3)), 11), 7))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())\n" ] }, { "cell_type": "markdown", "id": "4b0aa17e", "metadata": {}, "source": [ "\n", "a66=alpha066(l, h, vwap)\n", "mi[66] = get_mutual_info_score(ret_fwd, a66)\n", "mi[66]\n" ] }, { "cell_type": "code", "execution_count": null, "id": "b8a60666", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "159408cb", "metadata": {}, "source": [ "alpha 68" ] }, { "cell_type": "code", "execution_count": 164, "id": "c553588f", "metadata": {}, "outputs": [], "source": [ "def alpha068(h, c, v):\n", " \"\"\"((ts_rank(ts_corr(rank(high), rank(adv15), 8.91644), 13.9333) <\n", " rank(ts_delta(((close * 0.518371) + (low * (1 - 0.518371))), 1.06157))) * -1)\n", " \"\"\"\n", " w = 0.518371\n", " return (ts_rank(ts_corr(rank(h), rank(ts_mean(v, 15)), 9), 14)\n", " .lt(rank(ts_delta(c.mul(w).add(l.mul(1 - w)), 1)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 165, "id": "048d67fe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a68=alpha068(h, c, v)\n", "mi[68] = get_mutual_info_score(ret_fwd, a68)\n", "mi[68]" ] }, { "cell_type": "code", "execution_count": null, "id": "93f02d81", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e58a4a0e", "metadata": {}, "source": [ "alpha 71" ] }, { "cell_type": "markdown", "id": "c4694433", "metadata": {}, "source": [ "def alpha071(o, c, v, vwap):\n", " \"\"\"max(ts_rank(ts_weighted_mean(ts_corr(ts_rank(close, 3.43976), ts_rank(adv180,12.0647), 18.0175), 4.20501), 15.6948), \n", " ts_rank(ts_weighted_mean((rank(((low + open) - (vwap +vwap)))^2), 16.4662), 4.4388))\"\"\"\n", "\n", " s1 = (ts_rank(ts_weighted_mean(ts_corr(ts_rank(c, 3),\n", " ts_rank(ts_mean(v, 180), 12), 18), 4), 16))\n", " s2 = (ts_rank(ts_weighted_mean(rank(l.add(o).\n", " sub(vwap.mul(2)))\n", " .pow(2), 16), 4))\n", " return (s1.where(s1 > s2, s2)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "67bb84e0", "metadata": {}, "source": [ "a71=alpha071(o, c, v, vwap)\n", "mi[71] = get_mutual_info_score(ret_fwd, a71)\n", "mi[71]" ] }, { "cell_type": "code", "execution_count": null, "id": "4a41d2f9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ca69a1eb", "metadata": {}, "source": [ "alpha 72" ] }, { "cell_type": "markdown", "id": "6dd1ca24", "metadata": {}, "source": [ "def alpha072(h, l, v, vwap):\n", " \"\"\"(rank(ts_weighted_mean(ts_corr(((high + low) / 2), adv40, 8.93345), 10.1519)) /\n", " rank(ts_weighted_mean(ts_corr(ts_rank(vwap, 3.72469), ts_rank(volume, 18.5188), 6.86671), 2.95011)))\n", " \"\"\"\n", " return (rank(ts_weighted_mean(ts_corr(h.add(l).div(2), ts_mean(v, 40), 9), 10))\n", " .div(rank(ts_weighted_mean(ts_corr(ts_rank(vwap, 3), ts_rank(v, 18), 6), 2)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "dc47386a", "metadata": {}, "source": [ "a72=alpha072(h, l, v, vwap)\n", "mi[72] = get_mutual_info_score(ret_fwd, a72)\n", "mi[72]" ] }, { "cell_type": "code", "execution_count": null, "id": "b6fb5868", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e2dac21b", "metadata": {}, "source": [ "alpha 73" ] }, { "cell_type": "markdown", "id": "83415cf2", "metadata": {}, "source": [ "def alpha073(l, vwap):\n", " \"\"\"(max(rank(ts_weighted_mean(ts_delta(vwap, 4.72775), 2.91864)),\n", " ts_rank(ts_weighted_mean(((ts_delta(((open * 0.147155) + \n", " (low * (1 - 0.147155))), 2.03608) / \n", " ((open *0.147155) + (low * (1 - 0.147155)))) * -1), 3.33829), 16.7411)) * -1)\n", " \"\"\"\n", " w = 0.147155\n", " s1 = rank(ts_weighted_mean(ts_delta(vwap, 5), 3))\n", " s2 = (ts_rank(ts_weighted_mean(ts_delta(o.mul(w).add(l.mul(1 - w)), 2)\n", " .div(o.mul(w).add(l.mul(1 - w)).mul(-1)), 3), 16))\n", "\n", " print(s2)\n", " return (s1.where(s1 > s2, s2)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "5b330df1", "metadata": {}, "source": [ "a73=alpha073(l,vwap)\n", "mi[73] = get_mutual_info_score(ret_fwd, a73)\n", "mi[73]" ] }, { "cell_type": "code", "execution_count": null, "id": "0064652d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "14872b59", "metadata": {}, "source": [ "alpha 74" ] }, { "cell_type": "code", "execution_count": 166, "id": "4d38b1f0", "metadata": {}, "outputs": [], "source": [ "def alpha074(v, vwap):\n", " \"\"\"((rank(ts_corr(close, ts_sum(adv30, 37.4843), 15.1365)) <\n", " rank(ts_corr(rank(((high * 0.0261661) + (vwap * (1 - 0.0261661)))), rank(volume), 11.4791)))* -1)\"\"\"\n", "\n", " w = 0.0261661\n", " return (rank(ts_corr(c, ts_mean(ts_mean(v, 30), 37), 15))\n", " .lt(rank(ts_corr(rank(h.mul(w).add(vwap.mul(1 - w))), rank(v), 11)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 167, "id": "afe4aee2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.04015955319145004" ] }, "execution_count": 167, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a74=alpha074(v,vwap)\n", "mi[74] = get_mutual_info_score(ret_fwd, a74)\n", "mi[74]" ] }, { "cell_type": "code", "execution_count": null, "id": "f8444171", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "683d247f", "metadata": {}, "source": [ "alpha 75" ] }, { "cell_type": "code", "execution_count": 168, "id": "912e27b0", "metadata": {}, "outputs": [], "source": [ "def alpha075(l, v, vwap):\n", " \"\"\"(rank(ts_corr(vwap, volume, 4.24304)) < \n", " rank(ts_corr(rank(low), rank(adv50),12.4413)))\n", " \"\"\"\n", "\n", " return (rank(ts_corr(vwap, v, 4))\n", " .lt(rank(ts_corr(rank(l), rank(ts_mean(v, 50)), 12)))\n", " .astype(int)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 169, "id": "d7c7b07c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 169, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a75=alpha075(l, v,vwap)\n", "mi[75] = get_mutual_info_score(ret_fwd, a75)\n", "mi[75]" ] }, { "cell_type": "code", "execution_count": null, "id": "9cd13453", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1ac3318f", "metadata": {}, "source": [ "alpha 77" ] }, { "cell_type": "markdown", "id": "645ced84", "metadata": {}, "source": [ "def alpha077(l, h, vwap):\n", " \"\"\"min(rank(ts_weighted_mean(((((high + low) / 2) + high) - (vwap + high)), 20.0451)),\n", " rank(ts_weighted_mean(ts_corr(((high + low) / 2), adv40, 3.1614), 5.64125)))\n", " \"\"\"\n", "\n", " s1 = rank(ts_weighted_mean(h.add(l).div(2).sub(vwap), 20))\n", " s2 = rank(ts_weighted_mean(ts_corr(h.add(l).div(2), ts_mean(v, 40), 3), 5))\n", " return (s1.where(s1 < s2, s2)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "a0901475", "metadata": {}, "source": [ "a77=alpha077(l, h, vwap)\n", "mi[77] = get_mutual_info_score(ret_fwd, a77)\n", "mi[77]" ] }, { "cell_type": "code", "execution_count": null, "id": "737fe8fe", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "a8d84b0a", "metadata": {}, "source": [ "alpha 78" ] }, { "cell_type": "code", "execution_count": 170, "id": "8dc1cf1a", "metadata": {}, "outputs": [], "source": [ "def alpha078(l, v, vwap):\n", " \"\"\"(rank(ts_corr(ts_sum(((low * 0.352233) + (vwap * (1 - 0.352233))), 19.7428),\n", " ts_sum(adv40, 19.7428), 6.83313))^rank(ts_corr(rank(vwap), rank(volume), 5.77492)))\"\"\"\n", "\n", " w = 0.352233\n", " return (rank(ts_corr(ts_sum((l.mul(w).add(vwap.mul(1 - w))), 19),\n", " ts_sum(ts_mean(v, 40), 19), 6))\n", " .pow(rank(ts_corr(rank(vwap), rank(v), 5)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 171, "id": "a4cd0ee4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.01699307463028976" ] }, "execution_count": 171, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a78=alpha078(l, v, vwap)\n", "mi[78] = get_mutual_info_score(ret_fwd, a78)\n", "mi[78]" ] }, { "cell_type": "code", "execution_count": null, "id": "51911f60", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9695b4d5", "metadata": {}, "source": [ "alpha 81" ] }, { "cell_type": "code", "execution_count": 172, "id": "3e1acc44", "metadata": {}, "outputs": [], "source": [ "def alpha081(v, vwap):\n", " \"\"\"-(rank(log(ts_product(rank((rank(ts_corr(vwap, ts_sum(adv10, 49.6054),8.47743))^4)), 14.9655))) <\n", " rank(ts_corr(rank(vwap), rank(volume), 5.07914)))\"\"\"\n", "\n", " return (rank(log(ts_product(rank(rank(ts_corr(vwap,\n", " ts_sum(ts_mean(v, 10), 50), 8))\n", " .pow(4)), 15)))\n", " .lt(rank(ts_corr(rank(vwap), rank(v), 5)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 173, "id": "815603c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.026628386881316413" ] }, "execution_count": 173, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a81=alpha081(v, vwap)\n", "mi[81] = get_mutual_info_score(ret_fwd, a81)\n", "mi[81]" ] }, { "cell_type": "code", "execution_count": null, "id": "0b622323", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f71c999b", "metadata": {}, "source": [ "alpha 83" ] }, { "cell_type": "code", "execution_count": 174, "id": "7ad5fca5", "metadata": {}, "outputs": [], "source": [ "def alpha083(h, l, c):\n", " \"\"\"(rank(ts_lag((high - low) / ts_mean(close, 5), 2)) * rank(rank(volume)) / \n", " (((high - low) / ts_mean(close, 5) / (vwap - close)))\n", " \"\"\"\n", " s = h.sub(l).div(ts_mean(c, 5))\n", "\n", " return (rank(rank(ts_lag(s, 2))\n", " .mul(rank(rank(v)))\n", " .div(s).div(vwap.sub(c).add(1e-3)))\n", " .stack('ticker')\n", " .swaplevel()\n", " .replace((np.inf, -np.inf), np.nan))" ] }, { "cell_type": "code", "execution_count": 175, "id": "d06c9c08", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.11248091592236431" ] }, "execution_count": 175, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a83=alpha083(h, l, c)\n", "mi[83] = get_mutual_info_score(ret_fwd, a83)\n", "mi[83]" ] }, { "cell_type": "code", "execution_count": null, "id": "e90c51c9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f3ef6d50", "metadata": {}, "source": [ "alpha 84" ] }, { "cell_type": "code", "execution_count": 176, "id": "08f82b7a", "metadata": {}, "outputs": [], "source": [ "def alpha084(c, vwap):\n", " \"\"\"power(ts_rank((vwap - ts_max(vwap, 15.3217)), 20.7127), \n", " ts_delta(close,4.96796))\"\"\"\n", " return (rank(power(ts_rank(vwap.sub(ts_max(vwap, 15)), 20),\n", " ts_delta(c, 6)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 177, "id": "cb3f7c1f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.030143480602971007" ] }, "execution_count": 177, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a84=alpha084(c, vwap)\n", "mi[84] = get_mutual_info_score(ret_fwd, a84)\n", "mi[84]" ] }, { "cell_type": "code", "execution_count": null, "id": "25e3ef0b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ab30b656", "metadata": {}, "source": [ "alpha 85" ] }, { "cell_type": "code", "execution_count": 178, "id": "058ca097", "metadata": {}, "outputs": [], "source": [ "def alpha085(l, v):\n", " \"\"\"power(rank(ts_corr(((high * 0.876703) + (close * (1 - 0.876703))), adv30,9.61331)),\n", " rank(ts_corr(ts_rank(((high + low) / 2), 3.70596), \n", " ts_rank(volume, 10.1595),7.11408)))\n", " \"\"\"\n", " w = 0.876703\n", " return (rank(ts_corr(h.mul(w).add(c.mul(1 - w)), ts_mean(v, 30), 10))\n", " .pow(rank(ts_corr(ts_rank(h.add(l).div(2), 4),\n", " ts_rank(v, 10), 7)))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 179, "id": "4c94b8a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 179, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a85=alpha085(l, v)\n", "mi[85] = get_mutual_info_score(ret_fwd, a85)\n", "mi[85]" ] }, { "cell_type": "code", "execution_count": null, "id": "bfcc9fac", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f4646f17", "metadata": {}, "source": [ "alpha 86" ] }, { "cell_type": "code", "execution_count": 180, "id": "561113a5", "metadata": {}, "outputs": [], "source": [ "def alpha086(c, v, vwap):\n", " \"\"\"((ts_rank(ts_corr(close, ts_sum(adv20, 14.7444), 6.00049), 20.4195) < \n", " rank(((open + close) - (vwap + open)))) * -1)\n", " \"\"\"\n", " return (ts_rank(ts_corr(c, ts_mean(ts_mean(v, 20), 15), 6), 20)\n", " .lt(rank(c.sub(vwap)))\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 181, "id": "9b132b84", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0003291534995798484" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a86=alpha086(c, v, vwap)\n", "mi[86] = get_mutual_info_score(ret_fwd, a86)\n", "mi[86]" ] }, { "cell_type": "code", "execution_count": null, "id": "089e7d2f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "e14273a0", "metadata": {}, "source": [ "alpha 88" ] }, { "cell_type": "markdown", "id": "250ad8d5", "metadata": {}, "source": [ "def alpha088(o, h, l, c, v):\n", " \"\"\"min(rank(ts_weighted_mean(((rank(open) + rank(low)) - (rank(high) + rank(close))),8.06882)), \n", " ts_rank(ts_weighted_mean(ts_corr(ts_rank(close, 8.44728), \n", " ts_rank(adv60,20.6966), 8.01266), 6.65053), 2.61957))\"\"\"\n", "\n", " s1 = (rank(ts_weighted_mean(rank(o)\n", " .add(rank(l))\n", " .sub(rank(h))\n", " .add(rank(c)), 8)))\n", " s2 = ts_rank(ts_weighted_mean(ts_corr(ts_rank(c, 8),\n", " ts_rank(ts_mean(v, 60), 20), 8), 6), 2)\n", "\n", " return (s1.where(s1 < s2, s2)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "7b3332d8", "metadata": {}, "source": [ "a88=alpha088(o, h, l, c, v)\n", "mi[88] = get_mutual_info_score(ret_fwd, a88)\n", "mi[88]" ] }, { "cell_type": "markdown", "id": "d83ca372", "metadata": {}, "source": [ "alpha 92" ] }, { "cell_type": "code", "execution_count": 182, "id": "e30343d4", "metadata": {}, "outputs": [], "source": [ "def alpha092(o, l, c, v):\n", " \"\"\"min(ts_rank(ts_weighted_mean(((((high + low) / 2) + close) < (low + open)), 14.7221),18.8683), \n", " ts_rank(ts_weighted_mean(ts_corr(rank(low), rank(adv30), 7.58555), 6.94024),6.80584))\n", " \"\"\"\n", " p1 = ts_rank(ts_weighted_mean(h.add(l).div(2).add(c).lt(l.add(o)), 15), 18)\n", " p2 = ts_rank(ts_weighted_mean(ts_corr(rank(l), rank(ts_mean(v, 30)), 7), 6), 6)\n", "\n", " return (p1.where(p1 s2, s2)\n", " .mul(-1)\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "9966b44c", "metadata": {}, "source": [ "a96=alpha096(c, v, vwap)\n", "mi[96] = get_mutual_info_score(ret_fwd, a96)\n", "mi[96]" ] }, { "cell_type": "markdown", "id": "fc8a41a9", "metadata": {}, "source": [ "alpha 98" ] }, { "cell_type": "code", "execution_count": 188, "id": "ad08e859", "metadata": {}, "outputs": [], "source": [ "def alpha098(o, v, vwap):\n", " \"\"\"(rank(ts_weighted_mean(ts_corr(vwap, ts_sum(adv5, 26.4719), 4.58418), 7.18088)) -\n", " rank(ts_weighted_mean(ts_tank(ts_argmin(ts_corr(rank(open), \n", " rank(adv15), 20.8187), 8.62571),6.95668), 8.07206)))\n", " \"\"\"\n", " adv5 = ts_mean(v, 5)\n", " adv15 = ts_mean(v, 15)\n", " return (rank(ts_weighted_mean(ts_corr(vwap, ts_mean(adv5, 26), 4), 7))\n", " .sub(rank(ts_weighted_mean(ts_rank(ts_argmin(ts_corr(rank(o),\n", " rank(adv15), 20), 8), 6))))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "markdown", "id": "3bf02922", "metadata": {}, "source": [ "a98=alpha098(o, v, vwap)\n", "mi[98] = get_mutual_info_score(ret_fwd, a98)\n", "mi[98]" ] }, { "cell_type": "markdown", "id": "ce93bcd9", "metadata": {}, "source": [ "alpha 99" ] }, { "cell_type": "code", "execution_count": 189, "id": "69419b0d", "metadata": {}, "outputs": [], "source": [ "def alpha099(l, v):\n", " \"\"\"((rank(ts_corr(ts_sum(((high + low) / 2), 19.8975), \n", " ts_sum(adv60, 19.8975), 8.8136)) <\n", " rank(ts_corr(low, volume, 6.28259))) * -1)\"\"\"\n", "\n", " return ((rank(ts_corr(ts_sum((h.add(l).div(2)), 19),\n", " ts_sum(ts_mean(v, 60), 19), 8))\n", " .lt(rank(ts_corr(l, v, 6)))\n", " .mul(-1))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 190, "id": "9cdc9acc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.006644442157862862" ] }, "execution_count": 190, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a99=alpha099(l, v)\n", "mi[99] = get_mutual_info_score(ret_fwd, a99)\n", "mi[99]" ] }, { "cell_type": "code", "execution_count": null, "id": "99ef4cdf", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7e42d69f", "metadata": {}, "source": [ "alpha 101" ] }, { "cell_type": "code", "execution_count": 191, "id": "0cc059fe", "metadata": {}, "outputs": [], "source": [ "def alpha101(o, h, l, c):\n", " \"\"\"((close - open) / ((high - low) + .001))\"\"\"\n", " return (c.sub(o).div(h.sub(l).add(1e-3))\n", " .stack('ticker')\n", " .swaplevel())" ] }, { "cell_type": "code", "execution_count": 192, "id": "effa3449", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.508188263807337" ] }, "execution_count": 192, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a101=alpha101(o, h, l, c)\n", "mi[101] = get_mutual_info_score(ret_fwd, a101)\n", "mi[101]" ] }, { "cell_type": "code", "execution_count": null, "id": "9e6a03a8", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "737db1ff", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "a961c7da", "metadata": {}, "source": [ "# alpha selection" ] }, { "cell_type": "code", "execution_count": 193, "id": "6a88ce73", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{2: 0,\n", " 3: 0.032706983756991104,\n", " 4: 0,\n", " 5: 0.054266786583122784,\n", " 6: 0.007737607022389348,\n", " 7: 0.08770514982041533,\n", " 8: 0,\n", " 9: 0.9637340494892159,\n", " 10: 0.2512318102115323,\n", " 11: 0.024549634106292295,\n", " 12: 0.5030163052184431,\n", " 13: 0.03895566344547552,\n", " 14: 0.02358689321869889,\n", " 15: 0,\n", " 16: 0,\n", " 17: 0.2031276547601939,\n", " 18: 0.17244489525438444,\n", " 19: 0,\n", " 20: 0.06045467937577076,\n", " 21: 0.024410440783880993,\n", " 22: 0.0067115045794290396,\n", " 23: 0.0471943059894131,\n", " 24: 0.05896459371364138,\n", " 25: 0.29325088641406305,\n", " 26: 0.04351101761596343,\n", " 27: 0,\n", " 28: 0.1283364098825679,\n", " 29: 0.014014543370976629,\n", " 30: 0.00033333333333052106,\n", " 32: 0.05613811602484953,\n", " 33: 0.013479222997322182,\n", " 34: 0.16543869041969073,\n", " 35: 0.37151501888752003,\n", " 36: 0.05036610512811146,\n", " 37: 0.0791776700798712,\n", " 38: 0.19116398119114386,\n", " 40: 0,\n", " 41: 0.004507116019724311,\n", " 42: 0.12844822754081875,\n", " 43: 0.08028447934721017,\n", " 44: 0.026945423086009335,\n", " 45: 0.053480953692948585,\n", " 46: 0.15915573024673924,\n", " 47: 0.08470266330606302,\n", " 49: 1.1552429800816584,\n", " 50: 0.03630976617471715,\n", " 51: 1.1754409475657157,\n", " 52: 0,\n", " 53: 0.0001819931515086859,\n", " 54: 0.2947490161621604,\n", " 55: 0,\n", " 60: 0.09904644051422284,\n", " 61: 0.01015122469173857,\n", " 62: 0.0031446379817416936,\n", " 64: 0,\n", " 65: 0,\n", " 68: 0,\n", " 74: 0.04015955319145004,\n", " 75: 0,\n", " 78: 0.01699307463028976,\n", " 81: 0.026628386881316413,\n", " 83: 0.11248091592236431,\n", " 84: 0.030143480602971007,\n", " 85: 0,\n", " 86: 0.0003291534995798484,\n", " 94: 0,\n", " 95: 0,\n", " 99: 0.006644442157862862,\n", " 101: 0.508188263807337}" ] }, "execution_count": 193, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi" ] }, { "cell_type": "code", "execution_count": 194, "id": "5c9b7f8a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{51: 1.1754409475657157,\n", " 49: 1.1552429800816584,\n", " 9: 0.9637340494892159,\n", " 101: 0.508188263807337,\n", " 12: 0.5030163052184431,\n", " 35: 0.37151501888752003,\n", " 54: 0.2947490161621604,\n", " 25: 0.29325088641406305,\n", " 10: 0.2512318102115323,\n", " 17: 0.2031276547601939,\n", " 38: 0.19116398119114386,\n", " 18: 0.17244489525438444,\n", " 34: 0.16543869041969073,\n", " 46: 0.15915573024673924,\n", " 42: 0.12844822754081875,\n", " 28: 0.1283364098825679,\n", " 83: 0.11248091592236431,\n", " 60: 0.09904644051422284,\n", " 7: 0.08770514982041533,\n", " 47: 0.08470266330606302,\n", " 43: 0.08028447934721017,\n", " 37: 0.0791776700798712,\n", " 20: 0.06045467937577076,\n", " 24: 0.05896459371364138,\n", " 32: 0.05613811602484953,\n", " 5: 0.054266786583122784,\n", " 45: 0.053480953692948585,\n", " 36: 0.05036610512811146,\n", " 23: 0.0471943059894131,\n", " 26: 0.04351101761596343,\n", " 74: 0.04015955319145004,\n", " 13: 0.03895566344547552,\n", " 50: 0.03630976617471715,\n", " 3: 0.032706983756991104,\n", " 84: 0.030143480602971007,\n", " 44: 0.026945423086009335,\n", " 81: 0.026628386881316413,\n", " 11: 0.024549634106292295,\n", " 21: 0.024410440783880993,\n", " 14: 0.02358689321869889,\n", " 78: 0.01699307463028976,\n", " 29: 0.014014543370976629,\n", " 33: 0.013479222997322182,\n", " 61: 0.01015122469173857,\n", " 6: 0.007737607022389348,\n", " 22: 0.0067115045794290396,\n", " 99: 0.006644442157862862,\n", " 41: 0.004507116019724311,\n", " 62: 0.0031446379817416936,\n", " 30: 0.00033333333333052106,\n", " 86: 0.0003291534995798484,\n", " 53: 0.0001819931515086859,\n", " 2: 0,\n", " 4: 0,\n", " 8: 0,\n", " 15: 0,\n", " 16: 0,\n", " 19: 0,\n", " 27: 0,\n", " 40: 0,\n", " 52: 0,\n", " 55: 0,\n", " 64: 0,\n", " 65: 0,\n", " 68: 0,\n", " 75: 0,\n", " 85: 0,\n", " 94: 0,\n", " 95: 0}" ] }, "execution_count": 194, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted_mi = dict(sorted(mi.items(), reverse=True, key=lambda item: item[1]))\n", "sorted_mi" ] }, { "cell_type": "code", "execution_count": 195, "id": "e73d6ca2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ticker Date \n", "AAPL 2016/01/14 -0.414025\n", "ADBE 2016/01/14 0.493090\n", "ADI 2016/01/14 0.150472\n", "ADP 2016/01/14 0.421144\n", "ADSK 2016/01/14 0.515867\n", " ... \n", "WDAY 2020/12/30 -0.206533\n", "WDC 2020/12/30 -0.131785\n", "XEL 2020/12/30 -0.965703\n", "ZBRA 2020/12/30 -0.633176\n", "ZM 2020/12/30 0.361023\n", "Length: 118709, dtype: float64" ] }, "execution_count": 195, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a2" ] }, { "cell_type": "code", "execution_count": 196, "id": "b86176f2", "metadata": {}, "outputs": [], "source": [ "lst=[]\n", "df_lst=[]\n", "for i in sorted_mi.keys():\n", " lst.append('a'+str(i))\n", " df_lst.append(locals()['a'+str(i)])" ] }, { "cell_type": "code", "execution_count": 197, "id": "7873a7a7", "metadata": {}, "outputs": [], "source": [ "result = pd.concat(df_lst, axis=1, keys = lst)" ] }, { "cell_type": "code", "execution_count": 198, "id": "ab8d20a7", "metadata": {}, "outputs": [], "source": [ "result = result[result.index.get_level_values('Date') >='2015/02/01']" ] }, { "cell_type": "code", "execution_count": 199, "id": "c5a54a1f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
a51a49a9a101a12a35a54a25a10a17...a40a52a55a64a65a68a75a85a94a95
tickerDate
AAPL2016/01/05-1.000000-1.000000NaN-0.882696NaNNaN-0.100901NaNNaNNaN...NaNNaNNaN0000NaNNaN0
2016/01/06-1.000000-1.0000000.5025010.0559100.502501NaN-0.329696NaN0.549451NaN...NaNNaNNaN0000NaNNaN0
2016/01/07-1.000000-1.0000001.062500-0.6020531.062500NaN-0.006059NaN0.439560NaN...NaNNaNNaN0000NaNNaN0
2016/01/08-1.000000-1.000000-0.127501-0.6754480.127501NaN-0.092316NaN0.087912NaN...NaNNaNNaN0000NaNNaN0
2016/01/11-1.000000-1.000000-0.392500-0.2552220.392500NaN-0.707448NaN0.263736NaN...NaNNaNNaN0000NaNNaN0
.....................................................................
ZM2020/12/2325.11999525.11999525.119995-0.75433925.119995-0.0-0.2778800.990.990000-0.001287...-0.1743579.4040100.280261-1-1010.909295-0.14441
2020/12/248.7099918.7099918.709991-0.881488-8.709991-0.0-0.0193000.990.990000-0.019206...-0.294808-1.6630230.483085-10000.921156-0.00361
2020/12/2823.77999923.77999923.779999-0.78356123.779999-0.0-0.1271361.000.990000-0.002489...0.156586-109.5224390.604366-10010.976963-0.03501
2020/12/29-2.359985-2.359985-2.3599850.3160152.359985-0.0-0.3543650.060.100000-0.089743...0.105578-131.9733410.549857-10010.981798-0.06501
2020/12/300.3500060.3500060.350006-0.377416-0.350006165.0-0.6454560.880.710000-0.008649...0.017246-95.1490860.722640-10011.000000-0.03611
\n", "

125700 rows × 69 columns

\n", "
" ], "text/plain": [ " a51 a49 a9 a101 a12 \\\n", "ticker Date \n", "AAPL 2016/01/05 -1.000000 -1.000000 NaN -0.882696 NaN \n", " 2016/01/06 -1.000000 -1.000000 0.502501 0.055910 0.502501 \n", " 2016/01/07 -1.000000 -1.000000 1.062500 -0.602053 1.062500 \n", " 2016/01/08 -1.000000 -1.000000 -0.127501 -0.675448 0.127501 \n", " 2016/01/11 -1.000000 -1.000000 -0.392500 -0.255222 0.392500 \n", "... ... ... ... ... ... \n", "ZM 2020/12/23 25.119995 25.119995 25.119995 -0.754339 25.119995 \n", " 2020/12/24 8.709991 8.709991 8.709991 -0.881488 -8.709991 \n", " 2020/12/28 23.779999 23.779999 23.779999 -0.783561 23.779999 \n", " 2020/12/29 -2.359985 -2.359985 -2.359985 0.316015 2.359985 \n", " 2020/12/30 0.350006 0.350006 0.350006 -0.377416 -0.350006 \n", "\n", " a35 a54 a25 a10 a17 ... a40 \\\n", "ticker Date ... \n", "AAPL 2016/01/05 NaN -0.100901 NaN NaN NaN ... NaN \n", " 2016/01/06 NaN -0.329696 NaN 0.549451 NaN ... NaN \n", " 2016/01/07 NaN -0.006059 NaN 0.439560 NaN ... NaN \n", " 2016/01/08 NaN -0.092316 NaN 0.087912 NaN ... NaN \n", " 2016/01/11 NaN -0.707448 NaN 0.263736 NaN ... NaN \n", "... ... ... ... ... ... ... ... \n", "ZM 2020/12/23 -0.0 -0.277880 0.99 0.990000 -0.001287 ... -0.174357 \n", " 2020/12/24 -0.0 -0.019300 0.99 0.990000 -0.019206 ... -0.294808 \n", " 2020/12/28 -0.0 -0.127136 1.00 0.990000 -0.002489 ... 0.156586 \n", " 2020/12/29 -0.0 -0.354365 0.06 0.100000 -0.089743 ... 0.105578 \n", " 2020/12/30 165.0 -0.645456 0.88 0.710000 -0.008649 ... 0.017246 \n", "\n", " a52 a55 a64 a65 a68 a75 a85 a94 \\\n", "ticker Date \n", "AAPL 2016/01/05 NaN NaN 0 0 0 0 NaN NaN \n", " 2016/01/06 NaN NaN 0 0 0 0 NaN NaN \n", " 2016/01/07 NaN NaN 0 0 0 0 NaN NaN \n", " 2016/01/08 NaN NaN 0 0 0 0 NaN NaN \n", " 2016/01/11 NaN NaN 0 0 0 0 NaN NaN \n", "... ... ... ... ... ... ... ... ... \n", "ZM 2020/12/23 9.404010 0.280261 -1 -1 0 1 0.909295 -0.1444 \n", " 2020/12/24 -1.663023 0.483085 -1 0 0 0 0.921156 -0.0036 \n", " 2020/12/28 -109.522439 0.604366 -1 0 0 1 0.976963 -0.0350 \n", " 2020/12/29 -131.973341 0.549857 -1 0 0 1 0.981798 -0.0650 \n", " 2020/12/30 -95.149086 0.722640 -1 0 0 1 1.000000 -0.0361 \n", "\n", " a95 \n", "ticker Date \n", "AAPL 2016/01/05 0 \n", " 2016/01/06 0 \n", " 2016/01/07 0 \n", " 2016/01/08 0 \n", " 2016/01/11 0 \n", "... ... \n", "ZM 2020/12/23 1 \n", " 2020/12/24 1 \n", " 2020/12/28 1 \n", " 2020/12/29 1 \n", " 2020/12/30 1 \n", "\n", "[125700 rows x 69 columns]" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result" ] }, { "cell_type": "code", "execution_count": 200, "id": "86acf851", "metadata": {}, "outputs": [], "source": [ "#result.to_csv('initial alpha result.csv')" ] }, { "cell_type": "code", "execution_count": 201, "id": "7c97386b", "metadata": {}, "outputs": [], "source": [ "selected_alpha = lst[:40]" ] }, { "cell_type": "code", "execution_count": 202, "id": "d48b357c", "metadata": {}, "outputs": [], "source": [ "selected_result = result[selected_alpha]" ] }, { "cell_type": "code", "execution_count": 203, "id": "9619c612", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
a51a49a9a101a12a35a54a25a10a17...a74a13a50a3a84a44a81a11a21a14
tickerDate
AAPL2016/01/05-1.000000-1.000000NaN-0.882696NaNNaN-0.100901NaNNaNNaN...0NaNNaNNaNNaNNaN0NaN1NaN
2016/01/06-1.000000-1.0000000.5025010.0559100.502501NaN-0.329696NaN0.549451NaN...0NaNNaNNaNNaNNaN0NaN1NaN
2016/01/07-1.000000-1.0000001.062500-0.6020531.062500NaN-0.006059NaN0.439560NaN...0NaNNaNNaNNaNNaN0NaN1NaN
2016/01/08-1.000000-1.000000-0.127501-0.6754480.127501NaN-0.092316NaN0.087912NaN...0NaNNaNNaNNaNNaN01.0109891NaN
2016/01/11-1.000000-1.000000-0.392500-0.2552220.392500NaN-0.707448NaN0.263736NaN...0-0.664835NaNNaNNaNNaN00.0090571NaN
.....................................................................
ZM2020/12/2325.11999525.11999525.119995-0.75433925.119995-0.0-0.2778800.990.990000-0.001287...0-0.555000-0.516129NaN0.01-0.28896401.2276001-0.004774
2020/12/248.7099918.7099918.709991-0.881488-8.709991-0.0-0.0193000.990.990000-0.019206...0-0.060000-0.543478NaN0.010.13373800.2714001-0.002961
2020/12/2823.77999923.77999923.779999-0.78356123.779999-0.0-0.1271361.000.990000-0.002489...0-0.050000-0.5434780.3962030.010.40732501.88100010.005598
2020/12/29-2.359985-2.359985-2.3599850.3160152.359985-0.0-0.3543650.060.100000-0.089743...0-0.040000-0.5434780.3354490.010.44280000.08500010.107946
2020/12/300.3500060.3500060.350006-0.377416-0.350006165.0-0.6454560.880.710000-0.008649...0-0.860000-0.7578950.2984370.01-0.781974-11.20620010.036829
\n", "

125700 rows × 40 columns

\n", "
" ], "text/plain": [ " a51 a49 a9 a101 a12 \\\n", "ticker Date \n", "AAPL 2016/01/05 -1.000000 -1.000000 NaN -0.882696 NaN \n", " 2016/01/06 -1.000000 -1.000000 0.502501 0.055910 0.502501 \n", " 2016/01/07 -1.000000 -1.000000 1.062500 -0.602053 1.062500 \n", " 2016/01/08 -1.000000 -1.000000 -0.127501 -0.675448 0.127501 \n", " 2016/01/11 -1.000000 -1.000000 -0.392500 -0.255222 0.392500 \n", "... ... ... ... ... ... \n", "ZM 2020/12/23 25.119995 25.119995 25.119995 -0.754339 25.119995 \n", " 2020/12/24 8.709991 8.709991 8.709991 -0.881488 -8.709991 \n", " 2020/12/28 23.779999 23.779999 23.779999 -0.783561 23.779999 \n", " 2020/12/29 -2.359985 -2.359985 -2.359985 0.316015 2.359985 \n", " 2020/12/30 0.350006 0.350006 0.350006 -0.377416 -0.350006 \n", "\n", " a35 a54 a25 a10 a17 ... a74 \\\n", "ticker Date ... \n", "AAPL 2016/01/05 NaN -0.100901 NaN NaN NaN ... 0 \n", " 2016/01/06 NaN -0.329696 NaN 0.549451 NaN ... 0 \n", " 2016/01/07 NaN -0.006059 NaN 0.439560 NaN ... 0 \n", " 2016/01/08 NaN -0.092316 NaN 0.087912 NaN ... 0 \n", " 2016/01/11 NaN -0.707448 NaN 0.263736 NaN ... 0 \n", "... ... ... ... ... ... ... ... \n", "ZM 2020/12/23 -0.0 -0.277880 0.99 0.990000 -0.001287 ... 0 \n", " 2020/12/24 -0.0 -0.019300 0.99 0.990000 -0.019206 ... 0 \n", " 2020/12/28 -0.0 -0.127136 1.00 0.990000 -0.002489 ... 0 \n", " 2020/12/29 -0.0 -0.354365 0.06 0.100000 -0.089743 ... 0 \n", " 2020/12/30 165.0 -0.645456 0.88 0.710000 -0.008649 ... 0 \n", "\n", " a13 a50 a3 a84 a44 a81 \\\n", "ticker Date \n", "AAPL 2016/01/05 NaN NaN NaN NaN NaN 0 \n", " 2016/01/06 NaN NaN NaN NaN NaN 0 \n", " 2016/01/07 NaN NaN NaN NaN NaN 0 \n", " 2016/01/08 NaN NaN NaN NaN NaN 0 \n", " 2016/01/11 -0.664835 NaN NaN NaN NaN 0 \n", "... ... ... ... ... ... ... \n", "ZM 2020/12/23 -0.555000 -0.516129 NaN 0.01 -0.288964 0 \n", " 2020/12/24 -0.060000 -0.543478 NaN 0.01 0.133738 0 \n", " 2020/12/28 -0.050000 -0.543478 0.396203 0.01 0.407325 0 \n", " 2020/12/29 -0.040000 -0.543478 0.335449 0.01 0.442800 0 \n", " 2020/12/30 -0.860000 -0.757895 0.298437 0.01 -0.781974 -1 \n", "\n", " a11 a21 a14 \n", "ticker Date \n", "AAPL 2016/01/05 NaN 1 NaN \n", " 2016/01/06 NaN 1 NaN \n", " 2016/01/07 NaN 1 NaN \n", " 2016/01/08 1.010989 1 NaN \n", " 2016/01/11 0.009057 1 NaN \n", "... ... ... ... \n", "ZM 2020/12/23 1.227600 1 -0.004774 \n", " 2020/12/24 0.271400 1 -0.002961 \n", " 2020/12/28 1.881000 1 0.005598 \n", " 2020/12/29 0.085000 1 0.107946 \n", " 2020/12/30 1.206200 1 0.036829 \n", "\n", "[125700 rows x 40 columns]" ] }, "execution_count": 203, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_result" ] }, { "cell_type": "code", "execution_count": 204, "id": "31f63c7b", "metadata": {}, "outputs": [], "source": [ "alpha_corr = selected_result.corr()" ] }, { "cell_type": "code", "execution_count": null, "id": "1c282e3f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 205, "id": "4777f05d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a9 and a49 have correlation 0.9987507761482323\n", "a101 and a49 have correlation 0.8181978849744372\n", "a101 and a9 have correlation 0.8195618708235256\n", "a17 and a10 have correlation 0.7653454694426206\n", "a34 and a10 have correlation 0.6374959349566753\n", "a44 and a45 have correlation 0.6252782439509331\n" ] } ], "source": [ "for i in range(len(alpha_corr.values)):\n", " for j in range(i):\n", " if alpha_corr.values[i][j]>0.6:\n", " print(f\"{lst[i+1]} and {lst[j+1]} have correlation {alpha_corr.values[i][j]}\")" ] }, { "cell_type": "code", "execution_count": 207, "id": "0b5f4617", "metadata": {}, "outputs": [], "source": [ "# drop columns that are highly correlated\n", "selected_result = selected_result.drop(columns=['a9', 'a101', 'a10', 'a44'])" ] }, { "cell_type": "code", "execution_count": null, "id": "80a0b056", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 208, "id": "0e5391ef", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "36" ] }, "execution_count": 208, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(selected_result.columns)" ] }, { "cell_type": "code", "execution_count": 209, "id": "2678517f", "metadata": {}, "outputs": [], "source": [ "result_na = (selected_result.isna().sum()/len(selected_result)).sort_values()" ] }, { "cell_type": "code", "execution_count": 210, "id": "3b7b4edd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "a51 0.000000\n", "a74 0.000000\n", "a81 0.000000\n", "a23 0.000000\n", "a49 0.000000\n", "a21 0.000000\n", "a7 0.011551\n", "a54 0.050048\n", "a42 0.050048\n", "a12 0.050843\n", "a20 0.050843\n", "a46 0.050843\n", "a24 0.052434\n", "a11 0.052434\n", "a13 0.053230\n", "a34 0.053230\n", "a83 0.054821\n", "a5 0.057208\n", "a14 0.057208\n", "a38 0.057208\n", "a60 0.057208\n", "a18 0.057208\n", "a25 0.065163\n", "a47 0.065163\n", "a28 0.068345\n", "a17 0.068345\n", "a45 0.072840\n", "a35 0.074710\n", "a84 0.076269\n", "a43 0.080278\n", "a26 0.108568\n", "a3 0.119419\n", "a36 0.207279\n", "a37 0.208067\n", "a32 0.234845\n", "a50 0.310676\n", "dtype: float64" ] }, "execution_count": 210, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result_na" ] }, { "cell_type": "code", "execution_count": 211, "id": "2fdcfce8", "metadata": {}, "outputs": [], "source": [ "# drop a37, a32, a33, a3, a78, a36\n", "selected_result = selected_result.drop(columns=['a50', 'a37', 'a36', 'a32', 'a3', 'a26'])" ] }, { "cell_type": "code", "execution_count": 212, "id": "b5c87c3e", "metadata": {}, "outputs": [], "source": [ "selected_result.to_csv('first round alpha.csv')" ] }, { "cell_type": "code", "execution_count": 213, "id": "26a9a6dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['a51', 'a49', 'a12', 'a35', 'a54', 'a25', 'a17', 'a38', 'a18', 'a34',\n", " 'a46', 'a42', 'a28', 'a83', 'a60', 'a7', 'a47', 'a43', 'a20', 'a24',\n", " 'a5', 'a45', 'a23', 'a74', 'a13', 'a84', 'a81', 'a11', 'a21', 'a14'],\n", " dtype='object')" ] }, "execution_count": 213, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_result.columns" ] }, { "cell_type": "code", "execution_count": 214, "id": "79d19613", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
a51a49a12a35a54a25a17a38a18a34...a5a45a23a74a13a84a81a11a21a14
tickerDate
AAPL2016/01/05-1.000000-1.000000NaNNaN-0.100901NaNNaNNaNNaNNaN...NaNNaN0.00NaNNaN0NaN1NaN
2016/01/06-1.000000-1.0000000.502501NaN-0.329696NaNNaNNaNNaNNaN...NaNNaN0.00NaNNaN0NaN1NaN
2016/01/07-1.000000-1.0000001.062500NaN-0.006059NaNNaNNaNNaNNaN...NaNNaN0.00NaNNaN0NaN1NaN
2016/01/08-1.000000-1.0000000.127501NaN-0.092316NaNNaNNaNNaNNaN...NaNNaN0.00NaNNaN01.0109891NaN
2016/01/11-1.000000-1.0000000.392500NaN-0.707448NaNNaNNaNNaN0.43956...NaNNaN0.00-0.664835NaN00.0090571NaN
.....................................................................
ZM2020/12/2325.11999525.11999525.119995-0.0-0.2778800.99-0.001287-0.01580-0.020.65500...0.01710.64800.00-0.5550000.0101.2276001-0.004774
2020/12/248.7099918.709991-8.709991-0.0-0.0193000.99-0.019206-0.00035-0.040.81000...0.0002-0.65700.00-0.0600000.0100.2714001-0.002961
2020/12/2823.77999923.77999923.779999-0.0-0.1271361.00-0.002489-0.00105-0.020.86500...0.00010.67950.00-0.0500000.0101.88100010.005598
2020/12/29-2.359985-2.3599852.359985-0.0-0.3543650.06-0.089743-0.04600-0.960.05000...0.00840.66600.00-0.0400000.0100.08500010.107946
2020/12/300.3500060.350006-0.350006165.0-0.6454560.88-0.008649-0.00980-0.770.90500...0.0025-0.71100.00-0.8600000.01-11.20620010.036829
\n", "

125700 rows × 30 columns

\n", "
" ], "text/plain": [ " a51 a49 a12 a35 a54 a25 \\\n", "ticker Date \n", "AAPL 2016/01/05 -1.000000 -1.000000 NaN NaN -0.100901 NaN \n", " 2016/01/06 -1.000000 -1.000000 0.502501 NaN -0.329696 NaN \n", " 2016/01/07 -1.000000 -1.000000 1.062500 NaN -0.006059 NaN \n", " 2016/01/08 -1.000000 -1.000000 0.127501 NaN -0.092316 NaN \n", " 2016/01/11 -1.000000 -1.000000 0.392500 NaN -0.707448 NaN \n", "... ... ... ... ... ... ... \n", "ZM 2020/12/23 25.119995 25.119995 25.119995 -0.0 -0.277880 0.99 \n", " 2020/12/24 8.709991 8.709991 -8.709991 -0.0 -0.019300 0.99 \n", " 2020/12/28 23.779999 23.779999 23.779999 -0.0 -0.127136 1.00 \n", " 2020/12/29 -2.359985 -2.359985 2.359985 -0.0 -0.354365 0.06 \n", " 2020/12/30 0.350006 0.350006 -0.350006 165.0 -0.645456 0.88 \n", "\n", " a17 a38 a18 a34 ... a5 a45 a23 \\\n", "ticker Date ... \n", "AAPL 2016/01/05 NaN NaN NaN NaN ... NaN NaN 0.0 \n", " 2016/01/06 NaN NaN NaN NaN ... NaN NaN 0.0 \n", " 2016/01/07 NaN NaN NaN NaN ... NaN NaN 0.0 \n", " 2016/01/08 NaN NaN NaN NaN ... NaN NaN 0.0 \n", " 2016/01/11 NaN NaN NaN 0.43956 ... NaN NaN 0.0 \n", "... ... ... ... ... ... ... ... ... \n", "ZM 2020/12/23 -0.001287 -0.01580 -0.02 0.65500 ... 0.0171 0.6480 0.0 \n", " 2020/12/24 -0.019206 -0.00035 -0.04 0.81000 ... 0.0002 -0.6570 0.0 \n", " 2020/12/28 -0.002489 -0.00105 -0.02 0.86500 ... 0.0001 0.6795 0.0 \n", " 2020/12/29 -0.089743 -0.04600 -0.96 0.05000 ... 0.0084 0.6660 0.0 \n", " 2020/12/30 -0.008649 -0.00980 -0.77 0.90500 ... 0.0025 -0.7110 0.0 \n", "\n", " a74 a13 a84 a81 a11 a21 a14 \n", "ticker Date \n", "AAPL 2016/01/05 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/06 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/07 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/08 0 NaN NaN 0 1.010989 1 NaN \n", " 2016/01/11 0 -0.664835 NaN 0 0.009057 1 NaN \n", "... ... ... ... ... ... ... ... \n", "ZM 2020/12/23 0 -0.555000 0.01 0 1.227600 1 -0.004774 \n", " 2020/12/24 0 -0.060000 0.01 0 0.271400 1 -0.002961 \n", " 2020/12/28 0 -0.050000 0.01 0 1.881000 1 0.005598 \n", " 2020/12/29 0 -0.040000 0.01 0 0.085000 1 0.107946 \n", " 2020/12/30 0 -0.860000 0.01 -1 1.206200 1 0.036829 \n", "\n", "[125700 rows x 30 columns]" ] }, "execution_count": 214, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_result" ] }, { "cell_type": "code", "execution_count": 215, "id": "81dfebcf", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
a51a49a12a35a54a25a17a38a18a34...a5a45a23a74a13a84a81a11a21a14
tickerDate
DOCU2016/01/05-1.000000-1.000000NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN0.0000000NaNNaN0NaN1NaN
2016/01/06-1.000000-1.000000NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN0.0000000NaNNaN0NaN1NaN
2016/01/07-1.000000-1.000000NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN0.0000000NaNNaN0NaN1NaN
2016/01/08-1.000000-1.000000NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN0.0000000NaNNaN0NaN1NaN
2016/01/11-1.000000-1.000000NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaN0.0000000NaNNaN0NaN1NaN
..................................................................
2020/12/237.5500037.550003-7.550003176.0-0.1710570.95-0.025929-0.05845-0.080.860...0.1104-0.5904-2.580002-1-0.960.86-10.65721-0.064971
2020/12/24-0.879990-0.8799900.87999081.0-0.2105940.08-0.238402-0.22570-0.830.290...0.09960.08032.489990-1-0.970.85-10.47961-0.002179
2020/12/2815.72999615.72999615.729996-0.0-0.0628220.98-0.003801-0.01780-0.030.585...0.02960.05115.599991-1-0.120.0301.42821-0.003233
2020/12/291.0399931.039993-1.039993360.0-0.2380960.89-0.026408-0.01610-0.740.485...0.0055-0.05040.0000000-0.070.0401.640510.033492
2020/12/302.2600102.260010-2.260010-0.0-0.2932930.93-0.004418-0.00400-0.810.970...0.0022-0.09360.0000000-0.030.0401.26101-0.016925
\n", "

1257 rows × 30 columns

\n", "
" ], "text/plain": [ " a51 a49 a12 a35 a54 a25 \\\n", "ticker Date \n", "DOCU 2016/01/05 -1.000000 -1.000000 NaN NaN NaN NaN \n", " 2016/01/06 -1.000000 -1.000000 NaN NaN NaN NaN \n", " 2016/01/07 -1.000000 -1.000000 NaN NaN NaN NaN \n", " 2016/01/08 -1.000000 -1.000000 NaN NaN NaN NaN \n", " 2016/01/11 -1.000000 -1.000000 NaN NaN NaN NaN \n", "... ... ... ... ... ... ... \n", " 2020/12/23 7.550003 7.550003 -7.550003 176.0 -0.171057 0.95 \n", " 2020/12/24 -0.879990 -0.879990 0.879990 81.0 -0.210594 0.08 \n", " 2020/12/28 15.729996 15.729996 15.729996 -0.0 -0.062822 0.98 \n", " 2020/12/29 1.039993 1.039993 -1.039993 360.0 -0.238096 0.89 \n", " 2020/12/30 2.260010 2.260010 -2.260010 -0.0 -0.293293 0.93 \n", "\n", " a17 a38 a18 a34 ... a5 a45 \\\n", "ticker Date ... \n", "DOCU 2016/01/05 NaN NaN NaN NaN ... NaN NaN \n", " 2016/01/06 NaN NaN NaN NaN ... NaN NaN \n", " 2016/01/07 NaN NaN NaN NaN ... NaN NaN \n", " 2016/01/08 NaN NaN NaN NaN ... NaN NaN \n", " 2016/01/11 NaN NaN NaN NaN ... NaN NaN \n", "... ... ... ... ... ... ... ... \n", " 2020/12/23 -0.025929 -0.05845 -0.08 0.860 ... 0.1104 -0.5904 \n", " 2020/12/24 -0.238402 -0.22570 -0.83 0.290 ... 0.0996 0.0803 \n", " 2020/12/28 -0.003801 -0.01780 -0.03 0.585 ... 0.0296 0.0511 \n", " 2020/12/29 -0.026408 -0.01610 -0.74 0.485 ... 0.0055 -0.0504 \n", " 2020/12/30 -0.004418 -0.00400 -0.81 0.970 ... 0.0022 -0.0936 \n", "\n", " a23 a74 a13 a84 a81 a11 a21 a14 \n", "ticker Date \n", "DOCU 2016/01/05 0.000000 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/06 0.000000 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/07 0.000000 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/08 0.000000 0 NaN NaN 0 NaN 1 NaN \n", " 2016/01/11 0.000000 0 NaN NaN 0 NaN 1 NaN \n", "... ... ... ... ... ... ... ... ... \n", " 2020/12/23 -2.580002 -1 -0.96 0.86 -1 0.6572 1 -0.064971 \n", " 2020/12/24 2.489990 -1 -0.97 0.85 -1 0.4796 1 -0.002179 \n", " 2020/12/28 5.599991 -1 -0.12 0.03 0 1.4282 1 -0.003233 \n", " 2020/12/29 0.000000 0 -0.07 0.04 0 1.6405 1 0.033492 \n", " 2020/12/30 0.000000 0 -0.03 0.04 0 1.2610 1 -0.016925 \n", "\n", "[1257 rows x 30 columns]" ] }, "execution_count": 215, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_result.loc[['DOCU']]" ] }, { "cell_type": "code", "execution_count": null, "id": "d43b1a26", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }