{
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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": [
""
]
},
"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
}