{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# labels" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import vectorbt as vbt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "Collapsed": "false" }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from datetime import datetime, timedelta\n", "from numba import njit" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Disable caching for performance testing\n", "vbt.settings.caching['enabled'] = False" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "close = pd.DataFrame({\n", " 'a': [1, 2, 1, 2, 3, 2],\n", " 'b': [3, 2, 3, 2, 1, 2]\n", "}, index=pd.Index([\n", " datetime(2020, 1, 1),\n", " datetime(2020, 1, 2),\n", " datetime(2020, 1, 3),\n", " datetime(2020, 1, 4),\n", " datetime(2020, 1, 5),\n", " datetime(2020, 1, 6)\n", "]))\n", "\n", "pos_ths = [np.array([1, 1 / 2]), np.array([2, 1 / 2]), np.array([3, 1 / 2])]\n", "neg_ths = [np.array([1 / 2, 1 / 3]), np.array([1 / 2, 2 / 3]), np.array([1 / 2, 3 / 4])]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1000, 1000)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "big_close = pd.DataFrame(np.random.randint(1, 10, size=(1000, 1000)).astype(float))\n", "big_close.index = [datetime(2018, 1, 1) + timedelta(days=i) for i in range(1000)]\n", "big_close.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Look-ahead indicators" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fmean_window 2 3 \\\n", "fmean_ewm False True False True \n", " a b a b a b a \n", "2020-01-01 1.5 2.5 1.802469 2.197531 1.666667 2.333333 1.8125 \n", "2020-01-02 1.5 2.5 1.407407 2.592593 2.000000 2.000000 1.6250 \n", "2020-01-03 2.5 1.5 2.222222 1.777778 2.333333 1.666667 2.2500 \n", "2020-01-04 2.5 1.5 2.666667 1.333333 NaN NaN NaN \n", "2020-01-05 NaN NaN NaN NaN NaN NaN NaN \n", "2020-01-06 NaN NaN NaN NaN NaN NaN NaN \n", "\n", "fmean_window \n", "fmean_ewm \n", " b \n", "2020-01-01 2.1875 \n", "2020-01-02 2.3750 \n", "2020-01-03 1.7500 \n", "2020-01-04 NaN \n", "2020-01-05 NaN \n", "2020-01-06 NaN \n", "11.2 ms ± 1.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "77.1 ms ± 1.63 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.FMEAN.run(close, window=(2, 3), ewm=(False, True), param_product=True).fmean)\n", "\n", "%timeit vbt.FMEAN.run(big_close, window=2)\n", "%timeit vbt.FMEAN.run(big_close, window=np.arange(2, 10).tolist())\n", "\n", "print(vbt.FMEAN.run(big_close, window=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fstd_window 2 3 \\\n", "fstd_ewm False True False True \n", " a b a b a b a \n", "2020-01-01 0.5 0.5 0.644867 0.644867 0.471405 0.471405 0.646256 \n", "2020-01-02 0.5 0.5 0.883301 0.883301 0.816497 0.816497 0.859125 \n", "2020-01-03 0.5 0.5 0.591608 0.591608 0.471405 0.471405 0.547723 \n", "2020-01-04 0.5 0.5 0.707107 0.707107 NaN NaN NaN \n", "2020-01-05 NaN NaN NaN NaN NaN NaN NaN \n", "2020-01-06 NaN NaN NaN NaN NaN NaN NaN \n", "\n", "fstd_window \n", "fstd_ewm \n", " b \n", "2020-01-01 0.646256 \n", "2020-01-02 0.859125 \n", "2020-01-03 0.547723 \n", "2020-01-04 NaN \n", "2020-01-05 NaN \n", "2020-01-06 NaN \n", "13.2 ms ± 565 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "107 ms ± 1.88 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.FSTD.run(close, window=(2, 3), ewm=(False, True), param_product=True).fstd)\n", "\n", "%timeit vbt.FSTD.run(big_close, window=2)\n", "%timeit vbt.FSTD.run(big_close, window=np.arange(2, 10).tolist())\n", "\n", "print(vbt.FSTD.run(big_close, window=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fmin_window 2 3 \n", " a b a b\n", "2020-01-01 1.0 2.0 1.0 2.0\n", "2020-01-02 1.0 2.0 1.0 1.0\n", "2020-01-03 2.0 1.0 2.0 1.0\n", "2020-01-04 2.0 1.0 NaN NaN\n", "2020-01-05 NaN NaN NaN NaN\n", "2020-01-06 NaN NaN NaN NaN\n", "9.06 ms ± 323 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "113 ms ± 875 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.FMIN.run(close, window=(2, 3)).fmin)\n", "\n", "%timeit vbt.FMIN.run(big_close, window=2)\n", "%timeit vbt.FMIN.run(big_close, window=np.arange(2, 10).tolist())\n", "\n", "print(vbt.FMIN.run(big_close, window=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fmax_window 2 3 \n", " a b a b\n", "2020-01-01 2.0 3.0 2.0 3.0\n", "2020-01-02 2.0 3.0 3.0 3.0\n", "2020-01-03 3.0 2.0 3.0 2.0\n", "2020-01-04 3.0 2.0 NaN NaN\n", "2020-01-05 NaN NaN NaN NaN\n", "2020-01-06 NaN NaN NaN NaN\n", "9.08 ms ± 418 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "114 ms ± 700 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.FMAX.run(close, window=(2, 3)).fmax)\n", "\n", "%timeit vbt.FMAX.run(big_close, window=2)\n", "%timeit vbt.FMAX.run(big_close, window=np.arange(2, 10).tolist())\n", "\n", "print(vbt.FMAX.run(big_close, window=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label generators" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fixlb_n 2 3 \n", " a b a b\n", "2020-01-01 0.0 0.000000 1.0 -0.333333\n", "2020-01-02 0.0 0.000000 0.5 -0.500000\n", "2020-01-03 2.0 -0.666667 1.0 -0.333333\n", "2020-01-04 0.0 0.000000 NaN NaN\n", "2020-01-05 NaN NaN NaN NaN\n", "2020-01-06 NaN NaN NaN NaN\n", "3.11 ms ± 84.1 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "43.6 ms ± 2.82 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.FIXLB.run(close, n=(2, 3)).labels)\n", "\n", "%timeit vbt.FIXLB.run(big_close, n=2)\n", "%timeit vbt.FIXLB.run(big_close, n=np.arange(2, 10).tolist())\n", "\n", "print(vbt.FIXLB.run(big_close, n=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close00.511.52" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.FIXLB.run(close['a'], n=2).plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "meanlb_window 2 3 \\\n", "meanlb_ewm False True False True \n", " a b a b a b a \n", "2020-01-01 0.50 -0.166667 0.802469 -0.267490 0.666667 -0.222222 0.8125 \n", "2020-01-02 -0.25 0.250000 -0.296296 0.296296 0.000000 0.000000 -0.1875 \n", "2020-01-03 1.50 -0.500000 1.222222 -0.407407 1.333333 -0.444444 1.2500 \n", "2020-01-04 0.25 -0.250000 0.333333 -0.333333 NaN NaN NaN \n", "2020-01-05 NaN NaN NaN NaN NaN NaN NaN \n", "2020-01-06 NaN NaN NaN NaN NaN NaN NaN \n", "\n", "meanlb_window \n", "meanlb_ewm \n", " b \n", "2020-01-01 -0.270833 \n", "2020-01-02 0.187500 \n", "2020-01-03 -0.416667 \n", "2020-01-04 NaN \n", "2020-01-05 NaN \n", "2020-01-06 NaN \n", "12.8 ms ± 2.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "77.2 ms ± 1.27 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.MEANLB.run(close, window=(2, 3), ewm=(False, True), param_product=True).labels)\n", "\n", "%timeit vbt.MEANLB.run(big_close, window=2)\n", "%timeit vbt.MEANLB.run(big_close, window=np.arange(2, 10).tolist())\n", "\n", "print(vbt.MEANLB.run(big_close, window=np.arange(2, 10).tolist()).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close00.511.5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.MEANLB.run(close['a'], window=2).plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lexlb_pos_th array_0 array_1 array_2 \n", "lexlb_neg_th array_0 array_1 array_2 \n", " a b a b a b\n", "2020-01-01 -1 1 -1 1 0 0\n", "2020-01-02 1 -1 0 0 0 0\n", "2020-01-03 -1 1 0 0 0 0\n", "2020-01-04 0 0 0 0 0 0\n", "2020-01-05 1 -1 1 -1 0 0\n", "2020-01-06 0 1 0 1 0 0\n", "15.6 ms ± 230 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.LEXLB.run(close, pos_th=pos_ths, neg_th=neg_ths).labels)\n", "\n", "%timeit vbt.LEXLB.run(big_close, pos_th=1, neg_th=0.5)\n", "\n", "print(vbt.LEXLB.run(big_close, pos_th=1, neg_th=0.5).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close−1−0.500.51" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.LEXLB.run(close['a'], pos_th=1, neg_th=0.5).plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trendlb_pos_th array_0 array_1 array_2 \n", "trendlb_neg_th array_0 array_1 array_2 \n", "trendlb_mode 0 0 0 \n", " a b a b a b\n", "2020-01-01 1.0 0.0 1.0 0.0 NaN NaN\n", "2020-01-02 0.0 1.0 1.0 0.0 NaN NaN\n", "2020-01-03 1.0 0.0 1.0 0.0 NaN NaN\n", "2020-01-04 1.0 0.0 1.0 0.0 NaN NaN\n", "2020-01-05 NaN 1.0 NaN 1.0 NaN NaN\n", "2020-01-06 NaN NaN NaN NaN NaN NaN\n", "28.3 ms ± 335 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.TRENDLB.run(close, pos_th=pos_ths, neg_th=neg_ths, mode='Binary').labels)\n", "\n", "%timeit vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='Binary')\n", "\n", "print(vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='Binary').wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close00.20.40.60.81" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.TRENDLB.run(close['a'], pos_th=1, neg_th=0.5, mode='Binary').plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trendlb_pos_th array_0 array_1 array_2 \n", "trendlb_neg_th array_0 array_1 array_2 \n", "trendlb_mode 1 1 1 \n", " a b a b a b\n", "2020-01-01 1.0 0.0 1.0 0.0 NaN NaN\n", "2020-01-02 0.0 1.0 0.5 0.5 NaN NaN\n", "2020-01-03 1.0 0.0 1.0 0.0 NaN NaN\n", "2020-01-04 0.5 0.5 0.5 0.5 NaN NaN\n", "2020-01-05 NaN 1.0 NaN 1.0 NaN NaN\n", "2020-01-06 NaN NaN NaN NaN NaN NaN\n", "106 ms ± 718 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.TRENDLB.run(close, pos_th=pos_ths, neg_th=neg_ths, mode='BinaryCont').labels)\n", "\n", "%timeit vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='BinaryCont')\n", "\n", "print(vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='BinaryCont').wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close00.20.40.60.81" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.TRENDLB.run(close['a'], pos_th=1, neg_th=0.5, mode='BinaryCont').plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trendlb_pos_th array_0 array_1 array_2 \n", "trendlb_neg_th array_0 array_1 array_2 \n", "trendlb_mode 2 2 2 \n", " a b a b a b\n", "2020-01-01 1.000000 0.0 1.0 0.0 NaN NaN\n", "2020-01-02 0.000000 1.0 0.5 0.5 NaN NaN\n", "2020-01-03 1.000000 0.0 1.0 0.0 NaN NaN\n", "2020-01-04 0.666667 0.0 0.5 0.5 NaN NaN\n", "2020-01-05 NaN 1.0 NaN 1.0 NaN NaN\n", "2020-01-06 NaN NaN NaN NaN NaN NaN\n", "43.5 ms ± 1.24 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.TRENDLB.run(close, pos_th=pos_ths, neg_th=neg_ths, mode='BinaryContSat').labels)\n", "\n", "%timeit vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='BinaryContSat')\n", "\n", "print(vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='BinaryContSat').wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close00.20.40.60.81" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.TRENDLB.run(close['a'], pos_th=1, neg_th=0.5, mode='BinaryContSat').plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trendlb_pos_th array_0 array_1 array_2 \n", "trendlb_neg_th array_0 array_1 array_2 \n", "trendlb_mode 3 3 3 \n", " a b a b a b\n", "2020-01-01 1.0 -0.333333 2.0 -0.666667 NaN NaN\n", "2020-01-02 -0.5 0.500000 0.5 -0.500000 NaN NaN\n", "2020-01-03 2.0 -0.666667 2.0 -0.666667 NaN NaN\n", "2020-01-04 0.5 -0.500000 0.5 -0.500000 NaN NaN\n", "2020-01-05 NaN 1.000000 NaN 1.000000 NaN NaN\n", "2020-01-06 NaN NaN NaN NaN NaN NaN\n", "27.9 ms ± 112 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.TRENDLB.run(close, pos_th=pos_ths, neg_th=neg_ths, mode='PctChange').labels)\n", "\n", "%timeit vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='PctChange')\n", "\n", "print(vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='PctChange').wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close−0.500.511.52" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.TRENDLB.run(close['a'], pos_th=1, neg_th=0.5, mode='PctChange').plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "trendlb_pos_th array_0 array_1 array_2 \n", "trendlb_neg_th array_0 array_1 array_2 \n", "trendlb_mode 4 4 4 \n", " a b a b a b\n", "2020-01-01 0.500000 -0.333333 0.666667 -0.666667 NaN NaN\n", "2020-01-02 -0.500000 0.333333 0.333333 -0.500000 NaN NaN\n", "2020-01-03 0.666667 -0.666667 0.666667 -0.666667 NaN NaN\n", "2020-01-04 0.333333 -0.500000 0.333333 -0.500000 NaN NaN\n", "2020-01-05 NaN 0.500000 NaN 0.500000 NaN NaN\n", "2020-01-06 NaN NaN NaN NaN NaN NaN\n", "28.2 ms ± 44.8 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 1000)\n" ] } ], "source": [ "print(vbt.TRENDLB.run(close, pos_th=pos_ths, neg_th=neg_ths, mode='PctChangeNorm').labels)\n", "\n", "%timeit vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='PctChangeNorm')\n", "\n", "print(vbt.TRENDLB.run(big_close, pos_th=1, neg_th=0.5, mode='PctChangeNorm').wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close−0.4−0.200.20.40.6" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.TRENDLB.run(close['a'], pos_th=1, neg_th=0.5, mode='PctChangeNorm').plot().show_svg()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bolb_window 1 \n", "bolb_pos_th array_0 array_1 array_2 \n", "bolb_neg_th array_0 array_1 array_2 \n", " a b a b a b\n", "2020-01-01 1.0 -1.0 0.0 0.0 0.0 0.0\n", "2020-01-02 -1.0 1.0 -1.0 1.0 -1.0 1.0\n", "2020-01-03 1.0 -1.0 0.0 0.0 0.0 0.0\n", "2020-01-04 0.0 -1.0 0.0 0.0 0.0 0.0\n", "2020-01-05 0.0 1.0 0.0 1.0 0.0 1.0\n", "2020-01-06 0.0 0.0 0.0 0.0 0.0 0.0\n", "bolb_window 2 \n", "bolb_pos_th array_0 array_1 array_2 \n", "bolb_neg_th array_0 array_1 array_2 \n", " a b a b a b\n", "2020-01-01 1.0 -1.0 0.0 0.0 0.0 0.0\n", "2020-01-02 -1.0 1.0 -1.0 1.0 -1.0 1.0\n", "2020-01-03 1.0 -1.0 1.0 -1.0 0.0 0.0\n", "2020-01-04 0.0 -1.0 0.0 0.0 0.0 0.0\n", "2020-01-05 0.0 1.0 0.0 1.0 0.0 1.0\n", "2020-01-06 0.0 0.0 0.0 0.0 0.0 0.0\n", "18.2 ms ± 277 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n", "137 ms ± 341 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n", "(1000, 8000)\n" ] } ], "source": [ "print(vbt.BOLB.run(close, window=1, pos_th=pos_ths, neg_th=neg_ths).labels)\n", "print(vbt.BOLB.run(close, window=2, pos_th=pos_ths, neg_th=neg_ths).labels)\n", "\n", "%timeit vbt.BOLB.run(big_close, window=2, pos_th=1, neg_th=0.5)\n", "%timeit vbt.BOLB.run(big_close, window=np.arange(2, 10).tolist(), pos_th=1, neg_th=0.5)\n", "\n", "print(vbt.BOLB.run(big_close, window=np.arange(2, 10).tolist(), pos_th=1, neg_th=0.5).wrapper.shape)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "Jan 12020Jan 2Jan 3Jan 4Jan 5Jan 6labels11.522.53close−1−0.500.51" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vbt.BOLB.run(close['a'], window=2, pos_th=1, neg_th=0.5).plot().show_svg()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }