{ "cells": [ { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2025-02-23T13:55:26.847970Z", "start_time": "2025-02-23T13:55:26.843343Z" } }, "source": [ "import math\n", "import os\n", "import platform\n", "\n", "import pandas as pd\n", "\n", "root_path = \"C:\\\\Users\\\\lanyuanxiaoyao\\\\SynologyDrive\\\\data\\\\Tushare\" \\\n", " if platform.processor().startswith(\"AMD\") \\\n", " else \"/Users/lanyuanxiaoyao/SynologyDrive/data/Tushare\"" ], "outputs": [], "execution_count": 150 }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-23T13:55:26.864248Z", "start_time": "2025-02-23T13:55:26.859869Z" } }, "cell_type": "code", "source": [ "def load_stock(code):\n", " source_df = pd.read_csv(os.path.join(root_path, \"日线行情 1990-2024\", \"分组行情\", f\"{code}.csv\")) \\\n", " [[\"trade_date\", \"vol\", \"open_qfq\", \"close_qfq\", \"high_qfq\", \"low_qfq\"]]\n", " temp_df = pd.DataFrame()\n", " temp_df[[\"date\", \"Volume\", \"Open\", \"Close\", \"High\", \"Low\"]] = \\\n", " source_df[[\"trade_date\", \"vol\", \"open_qfq\", \"close_qfq\", \"high_qfq\", \"low_qfq\"]]\n", " temp_df[\"datetime\"] = pd.to_datetime(temp_df[\"date\"], format=\"%Y%m%d\")\n", " temp_df[\"datetime_text\"] = temp_df[\"datetime\"].apply(lambda x: x.strftime(\"%Y%m%d\"))\n", " temp_df = temp_df[temp_df[\"datetime\"].dt.year > 2023]\n", " temp_df.sort_values(by='datetime', inplace=True)\n", " temp_df.set_index('datetime', inplace=True)\n", " return temp_df" ], "id": "414a7a0a199096a2", "outputs": [], "execution_count": 151 }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-23T13:55:26.923472Z", "start_time": "2025-02-23T13:55:26.875905Z" } }, "cell_type": "code", "source": "df = load_stock(\"000001.SZ\")", "id": "bdcc7bfcec324577", "outputs": [], "execution_count": 152 }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-23T13:55:26.939116Z", "start_time": "2025-02-23T13:55:26.933781Z" } }, "cell_type": "code", "source": [ "from backtesting import Strategy\n", "from backtesting.lib import crossover\n", "import talib\n", "\n", "\n", "class MACDStrategy(Strategy):\n", " def init(self):\n", " self.dif, self.dea, self.macd = self.I(talib.MACD, self.data.Close, 12, 26, 9)\n", "\n", " def next(self):\n", " curr_dif = self.dif[-1]\n", " curr_dea = self.dea[-1]\n", " curr_macd = self.macd[-1]\n", " if crossover(self.dif, self.dea) and curr_macd > 0 and (curr_dif > curr_macd and curr_dea > curr_macd):\n", " self.buy(size=100)\n", " elif crossover(self.dea, self.dif):\n", " if self.position.size > 0:\n", " self.position.close()" ], "id": "1b47368c3b916b9b", "outputs": [], "execution_count": 153 }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-23T13:55:26.966319Z", "start_time": "2025-02-23T13:55:26.961967Z" } }, "cell_type": "code", "source": [ "class SMAStrategy(Strategy):\n", " def init(self):\n", " self.sma_fast = self.I(talib.SMA, self.data.Close, 14)\n", " self.sma_slow = self.I(talib.SMA, self.data.Close, 60)\n", "\n", " def next(self):\n", " if crossover(self.sma_fast, self.sma_slow):\n", " self.buy(size=100)\n", " elif crossover(self.sma_slow, self.sma_fast):\n", " if self.position.size > 0:\n", " self.position.close()" ], "id": "85da7018d63adc0", "outputs": [], "execution_count": 154 }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": [ "class BaseStrategy(Strategy):\n", " def init(self):\n", " pass\n", "\n", " def next(self):\n", " pass\n", "\n", " @property\n", " def current_open(self):\n", " return self.data.Open[-1]\n", "\n", " @property\n", " def current_close(self):\n", " return self.data.Close[-1]\n", "\n", " @property\n", " def current_high(self):\n", " return self.data.High[-1]\n", "\n", " @property\n", " def current_low(self):\n", " return self.data.Low[-1]" ], "id": "591e9117c40ef0f2" }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": [ "import math\n", "\n", "\n", "class LegendStrategy(BaseStrategy):\n", " _max_holding_yield_rate = 0\n", " _go = True\n", "\n", " def init(self):\n", " pass\n", "\n", " def next(self):\n", " current_close = self.data.Close[-1]\n", " # 持仓成本\n", " holding_price = 0\n", " # 持仓收益率\n", " holding_profit = 0\n", " # 平仓价格\n", " close_price = 0\n", " if len(self.trades) > 0:\n", " total_trade_size = sum(map(lambda x: x.size, self.trades))\n", " total_trade_price = sum(map(lambda x: x.size * x.entry_price, self.trades))\n", " holding_price = total_trade_price / total_trade_size\n", " holding_profit = (current_close - holding_price) * 100 / holding_price\n", "\n", " temp_holding_yield_rate = max(self._max_holding_yield_rate, holding_profi)\n", "\n", " if temp_holding_yield_rate < 5:\n", " close_price = holding_price * 0.95\n", " elif 5 < temp_holding_yield_rate < 10:\n", " close_price = holding_price * 1.05\n", " else:\n", " if temp_holding_yield_rate > (self._max_holding_yield_rate + 9) // 10 * 10:\n", " close_price = current_close * 0.95\n", " else:\n", " close_price = current_close * 1.05\n", "\n", " self._max_holding_yield_rate = temp_holding_yield_rate\n", "\n", " print(\n", " f\"{self.data.index[-1]} 持仓成本:{holding_price:.2f} 持仓收益率:{holding_profi:.2f}% 平仓价格:{close_price:.2f} 现价:{current_close:.2f}\"\n", " )\n", "\n", " if current_close <= close_price:\n", " self.position.close()\n", " self._max_holding_yield_rate = 0\n", " self._go = True\n", "\n", " if str(self.data.index[-1]) == \"2024-12-30 00:00:00\":\n", " self.position.close()\n", "\n", " if self._go and abs(current_close - self.data.High[-1]) < 0.01 \\\n", " and (current_close - self.current_open) / self.current_open > 0.02:\n", " print('买入')\n", " self.buy(size=math.floor(1000 / current_close))\n", " self._go = False\n", "\n" ], "id": "7503872b9cd7a84e" }, { "metadata": { "ExecuteTime": { "end_time": "2025-02-23T13:55:28.355317Z", "start_time": "2025-02-23T13:55:28.184572Z" } }, "cell_type": "code", "source": [ "from backtesting import Backtest\n", "\n", "bt = Backtest(df, LegendStrategy, cash=10000, trade_on_close=False)\n", "result = bt.run()\n", "\n", "print(result)\n", "trades = result[\"_trades\"]\n", "print(f\"总盈利:{(trades[\"Size\"] * (trades[\"ExitPrice\"] - trades[\"EntryPrice\"])).sum():.2f}\")\n", "\n", "bt.plot()" ], "id": "b3b25c83497ad0ef", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-01-03 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.40\n", "2024-01-04 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.32\n", "2024-01-05 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.47\n", "2024-01-08 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.36\n", "2024-01-09 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.38\n", "2024-01-10 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.30\n", "2024-01-11 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.38\n", "2024-01-12 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.39\n", "2024-01-15 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.41\n", "2024-01-16 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.53\n", "2024-01-17 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.43\n", "2024-01-18 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.40\n", "2024-01-19 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.38\n", "2024-01-22 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.31\n", "2024-01-23 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.37\n", "2024-01-24 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.52\n", "2024-01-25 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.68\n", "2024-01-26 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.79\n", "2024-01-29 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.86\n", "2024-01-30 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.68\n", "2024-01-31 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.64\n", "2024-02-01 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.59\n", "2024-02-02 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.47\n", "2024-02-05 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.57\n", "2024-02-06 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:8.84\n", "买入\n", "2024-02-07 00:00:00 持仓成本:8.79 持仓收益率:-0.10% 平仓价格:8.35 现价:8.78\n", "2024-02-08 00:00:00 持仓成本:8.79 持仓收益率:0.52% 平仓价格:8.35 现价:8.83\n", "2024-02-19 00:00:00 持仓成本:8.79 持仓收益率:1.98% 平仓价格:8.35 现价:8.96\n", "2024-02-20 00:00:00 持仓成本:8.79 持仓收益率:2.08% 平仓价格:8.35 现价:8.97\n", "2024-02-21 00:00:00 持仓成本:8.79 持仓收益率:12.27% 平仓价格:9.37 现价:9.86\n", "2024-02-22 00:00:00 持仓成本:8.79 持仓收益率:13.31% 平仓价格:10.45 现价:9.96\n", "买入\n", "2024-02-23 00:00:00 持仓成本:9.94 持仓收益率:-0.28% 平仓价格:9.44 现价:9.91\n", "2024-02-26 00:00:00 持仓成本:9.94 持仓收益率:-3.22% 平仓价格:9.44 现价:9.62\n", "2024-02-27 00:00:00 持仓成本:9.94 持仓收益率:-3.49% 平仓价格:9.44 现价:9.59\n", "2024-02-28 00:00:00 持仓成本:9.94 持仓收益率:-3.58% 平仓价格:9.44 现价:9.58\n", "2024-02-29 00:00:00 持仓成本:9.94 持仓收益率:-2.67% 平仓价格:9.44 现价:9.67\n", "2024-03-01 00:00:00 持仓成本:9.94 持仓收益率:-3.58% 平仓价格:9.44 现价:9.58\n", "2024-03-04 00:00:00 持仓成本:9.94 持仓收益率:-5.06% 平仓价格:9.44 现价:9.44\n", "2024-03-05 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.53\n", "2024-03-06 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.44\n", "2024-03-07 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.48\n", "2024-03-08 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.48\n", "2024-03-11 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.56\n", "2024-03-12 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.65\n", "2024-03-13 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.44\n", "2024-03-14 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.34\n", "2024-03-15 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.68\n", "2024-03-18 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.63\n", "2024-03-19 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.50\n", "2024-03-20 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.54\n", "2024-03-21 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.56\n", "2024-03-22 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.46\n", "2024-03-25 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.50\n", "2024-03-26 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.68\n", "2024-03-27 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.62\n", "2024-03-28 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.58\n", "2024-03-29 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.61\n", "2024-04-01 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.72\n", "2024-04-02 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.64\n", "2024-04-03 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.55\n", "2024-04-08 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.53\n", "2024-04-09 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.50\n", "2024-04-10 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.39\n", "2024-04-11 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.36\n", "2024-04-12 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.19\n", "2024-04-15 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.40\n", "2024-04-16 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.39\n", "2024-04-17 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.70\n", "买入\n", "2024-04-18 00:00:00 持仓成本:9.66 持仓收益率:2.08% 平仓价格:9.18 现价:9.86\n", "2024-04-19 00:00:00 持仓成本:9.66 持仓收益率:1.04% 平仓价格:9.18 现价:9.76\n", "2024-04-22 00:00:00 持仓成本:9.66 持仓收益率:-0.76% 平仓价格:9.18 现价:9.59\n", "2024-04-23 00:00:00 持仓成本:9.66 持仓收益率:-0.38% 平仓价格:9.18 现价:9.63\n", "2024-04-24 00:00:00 持仓成本:9.66 持仓收益率:-0.47% 平仓价格:9.18 现价:9.62\n", "2024-04-25 00:00:00 持仓成本:9.66 持仓收益率:0.28% 平仓价格:9.18 现价:9.69\n", "2024-04-26 00:00:00 持仓成本:9.66 持仓收益率:0.19% 平仓价格:9.18 现价:9.68\n", "2024-04-29 00:00:00 持仓成本:9.66 持仓收益率:2.17% 平仓价格:9.18 现价:9.87\n", "2024-04-30 00:00:00 持仓成本:9.66 持仓收益率:1.98% 平仓价格:9.18 现价:9.86\n", "2024-05-06 00:00:00 持仓成本:9.66 持仓收益率:2.93% 平仓价格:9.18 现价:9.95\n", "2024-05-07 00:00:00 持仓成本:9.66 持仓收益率:2.84% 平仓价格:9.18 现价:9.94\n", "2024-05-08 00:00:00 持仓成本:9.66 持仓收益率:1.42% 平仓价格:9.18 现价:9.80\n", "2024-05-09 00:00:00 持仓成本:9.66 持仓收益率:1.70% 平仓价格:9.18 现价:9.83\n", "2024-05-10 00:00:00 持仓成本:9.66 持仓收益率:3.40% 平仓价格:9.18 现价:9.99\n", "2024-05-13 00:00:00 持仓成本:9.66 持仓收益率:3.69% 平仓价格:9.18 现价:10.02\n", "2024-05-14 00:00:00 持仓成本:9.66 持仓收益率:3.12% 平仓价格:9.18 现价:9.96\n", "2024-05-15 00:00:00 持仓成本:9.66 持仓收益率:2.36% 平仓价格:9.18 现价:9.89\n", "2024-05-16 00:00:00 持仓成本:9.66 持仓收益率:5.58% 平仓价格:10.15 现价:10.20\n", "2024-05-17 00:00:00 持仓成本:9.66 持仓收益率:7.94% 平仓价格:10.15 现价:10.43\n", "2024-05-20 00:00:00 持仓成本:9.66 持仓收益率:7.56% 平仓价格:10.15 现价:10.39\n", "2024-05-21 00:00:00 持仓成本:9.66 持仓收益率:9.17% 平仓价格:10.15 现价:10.55\n", "2024-05-22 00:00:00 持仓成本:9.66 持仓收益率:9.26% 平仓价格:10.15 现价:10.56\n", "2024-05-23 00:00:00 持仓成本:9.66 持仓收益率:7.75% 平仓价格:10.15 现价:10.41\n", "2024-05-24 00:00:00 持仓成本:9.66 持仓收益率:6.90% 平仓价格:10.15 现价:10.33\n", "2024-05-27 00:00:00 持仓成本:9.66 持仓收益率:8.79% 平仓价格:10.15 现价:10.51\n", "2024-05-28 00:00:00 持仓成本:9.66 持仓收益率:7.75% 平仓价格:10.15 现价:10.41\n", "2024-05-29 00:00:00 持仓成本:9.66 持仓收益率:6.43% 平仓价格:10.15 现价:10.28\n", "2024-05-30 00:00:00 持仓成本:9.66 持仓收益率:5.10% 平仓价格:10.15 现价:10.16\n", "2024-05-31 00:00:00 持仓成本:9.66 持仓收益率:5.01% 平仓价格:10.15 现价:10.15\n", "2024-06-03 00:00:00 持仓成本:9.66 持仓收益率:3.78% 平仓价格:10.15 现价:10.03\n", "2024-06-04 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:10.07\n", "2024-06-05 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.93\n", "2024-06-06 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.96\n", "2024-06-07 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:10.04\n", "2024-06-11 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.93\n", "2024-06-12 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.94\n", "2024-06-13 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.86\n", "2024-06-14 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.96\n", "2024-06-17 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.88\n", "2024-06-18 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.86\n", "2024-06-19 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.93\n", "2024-06-20 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.83\n", "2024-06-21 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.79\n", "2024-06-24 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.77\n", "2024-06-25 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.86\n", "2024-06-26 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.86\n", "2024-06-27 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.91\n", "2024-06-28 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.93\n", "2024-07-01 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:10.13\n", "买入\n", "2024-07-02 00:00:00 持仓成本:10.08 持仓收益率:0.97% 平仓价格:9.58 现价:10.18\n", "2024-07-03 00:00:00 持仓成本:10.08 持仓收益率:0.10% 平仓价格:9.58 现价:10.09\n", "2024-07-04 00:00:00 持仓成本:10.08 持仓收益率:-0.39% 平仓价格:9.58 现价:10.04\n", "2024-07-05 00:00:00 持仓成本:10.08 持仓收益率:-3.20% 平仓价格:9.58 现价:9.76\n", "2024-07-08 00:00:00 持仓成本:10.08 持仓收益率:-3.59% 平仓价格:9.58 现价:9.72\n", "2024-07-09 00:00:00 持仓成本:10.08 持仓收益率:-2.23% 平仓价格:9.58 现价:9.85\n", "2024-07-10 00:00:00 持仓成本:10.08 持仓收益率:-1.55% 平仓价格:9.58 现价:9.92\n", "2024-07-11 00:00:00 持仓成本:10.08 持仓收益率:-1.65% 平仓价格:9.58 现价:9.91\n", "2024-07-12 00:00:00 持仓成本:10.08 持仓收益率:0.10% 平仓价格:9.58 现价:10.09\n", "2024-07-15 00:00:00 持仓成本:10.08 持仓收益率:0.29% 平仓价格:9.58 现价:10.11\n", "2024-07-16 00:00:00 持仓成本:10.08 持仓收益率:0.00% 平仓价格:9.58 现价:10.08\n", "2024-07-17 00:00:00 持仓成本:10.08 持仓收益率:0.97% 平仓价格:9.58 现价:10.18\n", "2024-07-18 00:00:00 持仓成本:10.08 持仓收益率:1.07% 平仓价格:9.58 现价:10.19\n", "2024-07-19 00:00:00 持仓成本:10.08 持仓收益率:0.68% 平仓价格:9.58 现价:10.15\n", "2024-07-22 00:00:00 持仓成本:10.08 持仓收益率:-0.68% 平仓价格:9.58 现价:10.01\n", "2024-07-23 00:00:00 持仓成本:10.08 持仓收益率:-1.17% 平仓价格:9.58 现价:9.96\n", "2024-07-24 00:00:00 持仓成本:10.08 持仓收益率:-1.65% 平仓价格:9.58 现价:9.91\n", "2024-07-25 00:00:00 持仓成本:10.08 持仓收益率:-2.04% 平仓价格:9.58 现价:9.87\n", "2024-07-26 00:00:00 持仓成本:10.08 持仓收益率:-2.62% 平仓价格:9.58 现价:9.82\n", "2024-07-29 00:00:00 持仓成本:10.08 持仓收益率:-1.84% 平仓价格:9.58 现价:9.89\n", "2024-07-30 00:00:00 持仓成本:10.08 持仓收益率:-2.14% 平仓价格:9.58 现价:9.86\n", "2024-07-31 00:00:00 持仓成本:10.08 持仓收益率:-0.29% 平仓价格:9.58 现价:10.05\n", "2024-08-01 00:00:00 持仓成本:10.08 持仓收益率:-0.29% 平仓价格:9.58 现价:10.05\n", "2024-08-02 00:00:00 持仓成本:10.08 持仓收益率:-1.55% 平仓价格:9.58 现价:9.92\n", "2024-08-05 00:00:00 持仓成本:10.08 持仓收益率:-2.43% 平仓价格:9.58 现价:9.83\n", "2024-08-06 00:00:00 持仓成本:10.08 持仓收益率:-3.59% 平仓价格:9.58 现价:9.72\n", "2024-08-07 00:00:00 持仓成本:10.08 持仓收益率:-3.59% 平仓价格:9.58 现价:9.72\n", "2024-08-08 00:00:00 持仓成本:10.08 持仓收益率:-3.50% 平仓价格:9.58 现价:9.73\n", "2024-08-09 00:00:00 持仓成本:10.08 持仓收益率:-2.52% 平仓价格:9.58 现价:9.83\n", "2024-08-12 00:00:00 持仓成本:10.08 持仓收益率:-2.82% 平仓价格:9.58 现价:9.80\n", "2024-08-13 00:00:00 持仓成本:10.08 持仓收益率:-3.40% 平仓价格:9.58 现价:9.74\n", "2024-08-14 00:00:00 持仓成本:10.08 持仓收益率:-3.69% 平仓价格:9.58 现价:9.71\n", "2024-08-15 00:00:00 持仓成本:10.08 持仓收益率:-2.62% 平仓价格:9.58 现价:9.82\n", "2024-08-16 00:00:00 持仓成本:10.08 持仓收益率:-1.65% 平仓价格:9.58 现价:9.91\n", "2024-08-19 00:00:00 持仓成本:10.08 持仓收益率:-0.10% 平仓价格:9.58 现价:10.07\n", "2024-08-20 00:00:00 持仓成本:10.08 持仓收益率:0.39% 平仓价格:9.58 现价:10.12\n", "2024-08-21 00:00:00 持仓成本:10.08 持仓收益率:0.49% 平仓价格:9.58 现价:10.13\n", "2024-08-22 00:00:00 持仓成本:10.08 持仓收益率:0.78% 平仓价格:9.58 现价:10.16\n", "2024-08-23 00:00:00 持仓成本:10.08 持仓收益率:1.65% 平仓价格:9.58 现价:10.25\n", "2024-08-26 00:00:00 持仓成本:10.08 持仓收益率:1.84% 平仓价格:9.58 现价:10.27\n", "2024-08-27 00:00:00 持仓成本:10.08 持仓收益率:1.26% 平仓价格:9.58 现价:10.21\n", "2024-08-28 00:00:00 持仓成本:10.08 持仓收益率:0.29% 平仓价格:9.58 现价:10.11\n", "2024-08-29 00:00:00 持仓成本:10.08 持仓收益率:-1.65% 平仓价格:9.58 现价:9.91\n", "2024-08-30 00:00:00 持仓成本:10.08 持仓收益率:-1.36% 平仓价格:9.58 现价:9.94\n", "2024-09-02 00:00:00 持仓成本:10.08 持仓收益率:-1.84% 平仓价格:9.58 现价:9.89\n", "2024-09-03 00:00:00 持仓成本:10.08 持仓收益率:-2.14% 平仓价格:9.58 现价:9.86\n", "2024-09-04 00:00:00 持仓成本:10.08 持仓收益率:-2.72% 平仓价格:9.58 现价:9.81\n", "2024-09-05 00:00:00 持仓成本:10.08 持仓收益率:-2.23% 平仓价格:9.58 现价:9.85\n", "2024-09-06 00:00:00 持仓成本:10.08 持仓收益率:-2.14% 平仓价格:9.58 现价:9.86\n", "2024-09-09 00:00:00 持仓成本:10.08 持仓收益率:-4.37% 平仓价格:9.58 现价:9.64\n", "2024-09-10 00:00:00 持仓成本:10.08 持仓收益率:-3.88% 平仓价格:9.58 现价:9.69\n", "2024-09-11 00:00:00 持仓成本:10.08 持仓收益率:-6.31% 平仓价格:9.58 现价:9.44\n", "2024-09-12 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.53\n", "2024-09-13 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.49\n", "2024-09-18 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.56\n", "2024-09-19 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.60\n", "2024-09-20 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.69\n", "2024-09-23 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:9.83\n", "2024-09-24 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:10.15\n", "买入\n", "2024-09-25 00:00:00 持仓成本:10.29 持仓收益率:-0.19% 平仓价格:9.78 现价:10.28\n", "2024-09-26 00:00:00 持仓成本:10.29 持仓收益率:5.99% 平仓价格:10.81 现价:10.91\n", "2024-09-27 00:00:00 持仓成本:10.29 持仓收益率:8.56% 平仓价格:10.81 现价:11.18\n", "2024-09-30 00:00:00 持仓成本:10.29 持仓收益率:16.06% 平仓价格:11.35 现价:11.95\n", "2024-10-08 00:00:00 持仓成本:10.29 持仓收益率:22.43% 平仓价格:11.97 现价:12.60\n", "2024-10-09 00:00:00 持仓成本:10.29 持仓收益率:11.03% 平仓价格:12.00 现价:11.43\n", "2024-10-10 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.98\n", "2024-10-11 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.72\n", "2024-10-14 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:12.02\n", "2024-10-15 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.90\n", "2024-10-16 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:12.06\n", "2024-10-17 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.95\n", "2024-10-18 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:12.04\n", "2024-10-21 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.81\n", "2024-10-22 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.79\n", "2024-10-23 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.86\n", "2024-10-24 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.75\n", "2024-10-25 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.71\n", "2024-10-28 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.64\n", "2024-10-29 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.54\n", "2024-10-30 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.32\n", "2024-10-31 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.38\n", "2024-11-01 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.43\n", "2024-11-04 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.46\n", "2024-11-05 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.65\n", "买入\n", "2024-11-06 00:00:00 持仓成本:11.62 持仓收益率:-0.60% 平仓价格:11.04 现价:11.55\n", "2024-11-07 00:00:00 持仓成本:11.62 持仓收益率:2.50% 平仓价格:11.04 现价:11.91\n", "2024-11-08 00:00:00 持仓成本:11.62 持仓收益率:0.86% 平仓价格:11.04 现价:11.72\n", "2024-11-11 00:00:00 持仓成本:11.62 持仓收益率:-0.17% 平仓价格:11.04 现价:11.60\n", "2024-11-12 00:00:00 持仓成本:11.62 持仓收益率:-0.69% 平仓价格:11.04 现价:11.54\n", "2024-11-13 00:00:00 持仓成本:11.62 持仓收益率:-0.09% 平仓价格:11.04 现价:11.61\n", "2024-11-14 00:00:00 持仓成本:11.62 持仓收益率:-0.69% 平仓价格:11.04 现价:11.54\n", "2024-11-15 00:00:00 持仓成本:11.62 持仓收益率:-1.55% 平仓价格:11.04 现价:11.44\n", "2024-11-18 00:00:00 持仓成本:11.62 持仓收益率:1.12% 平仓价格:11.04 现价:11.75\n", "2024-11-19 00:00:00 持仓成本:11.62 持仓收益率:0.52% 平仓价格:11.04 现价:11.68\n", "2024-11-20 00:00:00 持仓成本:11.62 持仓收益率:0.17% 平仓价格:11.04 现价:11.64\n", "2024-11-21 00:00:00 持仓成本:11.62 持仓收益率:-0.26% 平仓价格:11.04 现价:11.59\n", "2024-11-22 00:00:00 持仓成本:11.62 持仓收益率:-2.93% 平仓价格:11.04 现价:11.28\n", "2024-11-25 00:00:00 持仓成本:11.62 持仓收益率:-3.79% 平仓价格:11.04 现价:11.18\n", "2024-11-26 00:00:00 持仓成本:11.62 持仓收益率:-3.01% 平仓价格:11.04 现价:11.27\n", "2024-11-27 00:00:00 持仓成本:11.62 持仓收益率:-1.98% 平仓价格:11.04 现价:11.39\n", "2024-11-28 00:00:00 持仓成本:11.62 持仓收益率:-2.41% 平仓价格:11.04 现价:11.34\n", "2024-11-29 00:00:00 持仓成本:11.62 持仓收益率:-2.07% 平仓价格:11.04 现价:11.38\n", "2024-12-02 00:00:00 持仓成本:11.62 持仓收益率:-1.98% 平仓价格:11.04 现价:11.39\n", "2024-12-03 00:00:00 持仓成本:11.62 持仓收益率:-1.12% 平仓价格:11.04 现价:11.49\n", "2024-12-04 00:00:00 持仓成本:11.62 持仓收益率:-1.38% 平仓价格:11.04 现价:11.46\n", "2024-12-05 00:00:00 持仓成本:11.62 持仓收益率:-1.55% 平仓价格:11.04 现价:11.44\n", "2024-12-06 00:00:00 持仓成本:11.62 持仓收益率:0.34% 平仓价格:11.04 现价:11.66\n", "2024-12-09 00:00:00 持仓成本:11.62 持仓收益率:0.43% 平仓价格:11.04 现价:11.67\n", "2024-12-10 00:00:00 持仓成本:11.62 持仓收益率:1.46% 平仓价格:11.04 现价:11.79\n", "2024-12-11 00:00:00 持仓成本:11.62 持仓收益率:0.95% 平仓价格:11.04 现价:11.73\n", "2024-12-12 00:00:00 持仓成本:11.62 持仓收益率:1.98% 平仓价格:11.04 现价:11.85\n", "2024-12-13 00:00:00 持仓成本:11.62 持仓收益率:-0.52% 平仓价格:11.04 现价:11.56\n", "2024-12-16 00:00:00 持仓成本:11.62 持仓收益率:-0.43% 平仓价格:11.04 现价:11.57\n", "2024-12-17 00:00:00 持仓成本:11.62 持仓收益率:-0.77% 平仓价格:11.04 现价:11.53\n", "2024-12-18 00:00:00 持仓成本:11.62 持仓收益率:0.26% 平仓价格:11.04 现价:11.65\n", "2024-12-19 00:00:00 持仓成本:11.62 持仓收益率:-0.26% 平仓价格:11.04 现价:11.59\n", "2024-12-20 00:00:00 持仓成本:11.62 持仓收益率:0.00% 平仓价格:11.04 现价:11.62\n", "2024-12-23 00:00:00 持仓成本:11.62 持仓收益率:0.95% 平仓价格:11.04 现价:11.73\n", "2024-12-24 00:00:00 持仓成本:11.62 持仓收益率:2.07% 平仓价格:11.04 现价:11.86\n", "2024-12-25 00:00:00 持仓成本:11.62 持仓收益率:2.58% 平仓价格:11.04 现价:11.92\n", "2024-12-26 00:00:00 持仓成本:11.62 持仓收益率:2.07% 平仓价格:11.04 现价:11.86\n", "2024-12-27 00:00:00 持仓成本:11.62 持仓收益率:1.81% 平仓价格:11.04 现价:11.83\n", "2024-12-30 00:00:00 持仓成本:11.62 持仓收益率:2.84% 平仓价格:11.04 现价:11.95\n", "2024-12-31 00:00:00 持仓成本:0.00 持仓收益率:0.00% 平仓价格:0.00 现价:11.70\n", "Start 2024-01-02 00:00:00\n", "End 2024-12-31 00:00:00\n", "Duration 364 days 00:00:00\n", "Exposure Time [%] 59.91736\n", "Equity Final [$] 10205.75758\n", "Equity Peak [$] 10275.87094\n", "Return [%] 2.05758\n", "Buy & Hold Return [%] 39.08619\n", "Return (Ann.) [%] 2.1435\n", "Volatility (Ann.) [%] 2.41689\n", "CAGR [%] 1.42001\n", "Sharpe Ratio 0.88689\n", "Sortino Ratio 1.46418\n", "Calmar Ratio 1.64544\n", "Max. Drawdown [%] -1.3027\n", "Avg. Drawdown [%] -0.63274\n", "Max. Drawdown Duration 131 days 00:00:00\n", "Avg. Drawdown Duration 61 days 00:00:00\n", "# Trades 6\n", "Win Rate [%] 66.66667\n", "Best Trade [%] 13.09778\n", "Worst Trade [%] -6.3107\n", "Avg. Trade [%] 3.12968\n", "Max. Trade Duration 72 days 00:00:00\n", "Avg. Trade Duration 36 days 00:00:00\n", "Profit Factor 2.76035\n", "Expectancy [%] 3.41555\n", "SQN 0.99945\n", "Kelly Criterion 0.42723\n", "_strategy LegendStrategy\n", "_equity_curve ...\n", "_trades Size EntryBa...\n", "dtype: object\n", "总盈利:205.76\n" ] }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"64d313c8-4e58-479d-a798-64a22ee792d6\":{\"version\":\"3.6.3\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"GridPlot\",\"id\":\"p23684\",\"attributes\":{\"rows\":null,\"cols\":null,\"sizing_mode\":\"stretch_width\",\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p23683\",\"attributes\":{\"logo\":null,\"tools\":[{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23670\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p23432\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p23531\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p23386\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p23588\",\"attributes\":{\"dimensions\":\"width\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23671\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p23433\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p23532\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p23387\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p23589\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23672\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p23434\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p23435\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p23441\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p23440\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p23533\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p23534\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p23540\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p23539\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p23388\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p23389\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p23395\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p23394\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p23590\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p23591\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p23597\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p23596\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23673\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p23442\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p23541\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p23396\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p23598\"}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23674\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p23443\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p23542\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p23397\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p23599\"}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23675\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p23444\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p23543\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p23398\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p23600\"}]}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p23676\"},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23677\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p23467\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23464\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23400\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23401\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23402\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAFsAAABcAAAAXQAAAF4AAABfAAAAYAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAewAAAHwAAAB9AAAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAACPAAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAmQAAAJoAAACbAAAAnAAAAJ0AAACeAAAAnwAAAKAAAAChAAAAogAAAKMAAACkAAAApQAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAArgAAAK8AAACwAAAAsQAAALIAAACzAAAAtAAAALUAAAC2AAAAtwAAALgAAAC5AAAAugAAALsAAAC8AAAAvQAAAL4AAAC/AAAAwAAAAMEAAADCAAAAwwAAAMQAAADFAAAAxgAAAMcAAADIAAAAyQAAAMoAAADLAAAAzAAAAM0AAADOAAAAzwAAANAAAADRAAAA0gAAANMAAADUAAAA1QAAANYAAADXAAAA2AAAANkAAADaAAAA2wAAANwAAADdAAAA3gAAAN8AAADgAAAA4QAAAOIAAADjAAAA5AAAAOUAAADmAAAA5wAAAOgAAADpAAAA6gAAAOsAAADsAAAA7QAAAO4AAADvAAAA8AAAAPEAAAA=\"},\"shape\":[242],\"dtype\":\"int32\",\"order\":\"little\"}],[\"Open\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"High\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Low\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Close\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Volume\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"datetime\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"inc\",{\"type\":\"ndarray\",\"array\":[\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"0\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"0\",\"0\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"0\",\"1\",\"0\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"0\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"1\",\"0\",\"1\",\"1\",\"0\",\"0\",\"0\",\"0\",\"1\",\"1\",\"0\",\"0\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"0\",\"0\",\"1\",\"0\",\"0\",\"0\",\"1\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"1\",\"0\",\"0\",\"0\",\"0\",\"0\",\"1\",\"1\",\"1\",\"1\",\"0\",\"1\",\"0\",\"0\",\"0\",\"1\",\"0\",\"0\",\"1\",\"0\",\"0\",\"0\",\"0\",\"0\",\"1\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\",\"0\"],\"shape\":[242],\"dtype\":\"object\",\"order\":\"little\"}],[\"equity\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"ohlc_low\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"ohlc_high\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23465\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23466\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23461\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity\"},\"line_color\":\"#1f77b4\",\"line_width\":1.5}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23462\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":1.5}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23463\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":1.5}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"Equity\",\"@equity{+0,0.[000]%}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"mode\":\"vline\",\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23678\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p23564\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23552\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23403\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23404\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23405\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IAAAACcAAABjAAAAqgAAALcAAADxAAAA\"},\"shape\":[6],\"dtype\":\"int32\",\"order\":\"little\"}],[\"datetime\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAMDTdeEIAAECPvuB4QgAAgLoI/nhCAACAeTgeeUIAAICaOyd5QgAAADKgQXlC\"},\"shape\":[6],\"dtype\":\"float64\",\"order\":\"little\"}],[\"exit_price\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x4Ds9e7fI0AbZJKRs9AiQDj4wmSqACRAidLe4AvjIkA9CtejcD0nQFyPwvUo3CdA\"},\"shape\":[6],\"dtype\":\"float64\",\"order\":\"little\"}],[\"size\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cQAAAGQAAABnAAAAYgAAAGIAAABVAAAA\"},\"shape\":[6],\"dtype\":\"int32\",\"order\":\"little\"}],[\"returns_positive\",{\"type\":\"ndarray\",\"array\":[\"1\",\"0\",\"1\",\"0\",\"1\",\"1\"],\"shape\":[6],\"dtype\":\"object\",\"order\":\"little\"}],[\"returns_long\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IIiOEeHDwD+A3FH4TEurv2CvFTPB56E/yDkWjcgnsL8AVCp/9XnAP8DNyb6DUZs/\"},\"shape\":[6],\"dtype\":\"float64\",\"order\":\"little\"}],[\"returns_short\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/\"},\"shape\":[6],\"dtype\":\"float64\",\"order\":\"little\"}],[\"marker_size\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAANEC2bdu2bdssQNu2bdu2bS9ASZIkSZIkK0BJkiRJkiQrQAAAAAAAACBA\"},\"shape\":[6],\"dtype\":\"float64\",\"order\":\"little\"}],[\"position_lines_xs\",[[26,32],[32,39],[69,99],[118,170],[177,183],[202,241]]],[\"position_lines_ys\",[[8.78653,9.93737],[9.93737,9.40762],[9.66336,10.0013],[10.07954,9.44345],[10.29483,11.62],[11.62,11.93]]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23553\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23554\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23549\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_long\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"type\":\"object\",\"name\":\"CategoricalColorMapper\",\"id\":\"p23407\",\"attributes\":{\"palette\":[\"tomato\",\"lime\"],\"factors\":[\"0\",\"1\"]}}},\"marker\":{\"type\":\"value\",\"value\":\"triangle\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23550\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_long\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23407\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1},\"marker\":{\"type\":\"value\",\"value\":\"triangle\"}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23551\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_long\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23407\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2},\"marker\":{\"type\":\"value\",\"value\":\"triangle\"}}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"Size\",\"@size{0,0}\"],[\"P/L\",\"@returns_long{+0.[000]%}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23679\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p23565\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23561\",\"attributes\":{\"data_source\":{\"id\":\"p23403\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23562\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23563\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23558\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_short\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23407\"}},\"marker\":{\"type\":\"value\",\"value\":\"inverted_triangle\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23559\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_short\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23407\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1},\"marker\":{\"type\":\"value\",\"value\":\"inverted_triangle\"}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23560\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"returns_short\"},\"size\":{\"type\":\"field\",\"field\":\"marker_size\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23407\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2},\"marker\":{\"type\":\"value\",\"value\":\"inverted_triangle\"}}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"Size\",\"@size{0,0}\"],[\"P/L\",\"@returns_short{+0.[000]%}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23680\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p23665\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23650\",\"attributes\":{\"data_source\":{\"id\":\"p23400\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23651\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23652\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23647\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"type\":\"object\",\"name\":\"CategoricalColorMapper\",\"id\":\"p23406\",\"attributes\":{\"palette\":[\"tomato\",\"lime\"],\"factors\":[\"0\",\"1\"]}}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23648\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23649\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"x, y\",\"$index\\u00a0\\u00a0\\u00a0\\u00a0$y{0,0.0[0000]}\"],[\"OHLC\",\"@Open{0,0.0[0000]}\\u00a0\\u00a0\\u00a0\\u00a0@High{0,0.0[0000]}\\u00a0\\u00a0\\u00a0\\u00a0@Low{0,0.0[0000]}\\u00a0\\u00a0\\u00a0\\u00a0@Close{0,0.0[0000]}\"],[\"Volume\",\"@Volume{0,0}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"mode\":\"vline\",\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23681\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p23611\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23608\",\"attributes\":{\"data_source\":{\"id\":\"p23400\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23609\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23610\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23605\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"top\":{\"type\":\"field\",\"field\":\"Volume\"},\"line_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23606\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"top\":{\"type\":\"field\",\"field\":\"Volume\"},\"line_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23607\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"value\",\"value\":0.8},\"top\":{\"type\":\"field\",\"field\":\"Volume\"},\"line_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23406\"}},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"Volume\",\"@Volume{0.00 a}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"mode\":\"vline\",\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p23682\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"CrosshairTool\",\"id\":\"p23669\",\"attributes\":{\"overlay\":[{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p23667\",\"attributes\":{\"line_dash\":[2,4]}},{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p23668\",\"attributes\":{\"dimension\":\"height\",\"line_dash\":[2,4]}}],\"line_color\":\"lightgrey\"}},{\"id\":\"p23669\"},{\"id\":\"p23669\"},{\"id\":\"p23669\"}]}}],\"active_drag\":{\"id\":\"p23670\"},\"active_scroll\":{\"id\":\"p23671\"}}},\"toolbar_location\":\"right\",\"children\":[[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p23411\",\"attributes\":{\"width\":null,\"height\":110,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p23364\",\"attributes\":{\"js_property_callbacks\":{\"type\":\"map\",\"entries\":[[\"change:end\",[{\"type\":\"object\",\"name\":\"CustomJS\",\"id\":\"p23666\",\"attributes\":{\"args\":{\"type\":\"map\",\"entries\":[[\"ohlc_range\",{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p23367\"}],[\"source\",{\"id\":\"p23400\"}],[\"volume_range\",{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p23569\"}]]},\"code\":\"if (!window._bt_scale_range) {\\n window._bt_scale_range = function (range, min, max, pad) {\\n \\\"use strict\\\";\\n if (min !== Infinity && max !== -Infinity) {\\n pad = pad ? (max - min) * .03 : 0;\\n range.start = min - pad;\\n range.end = max + pad;\\n } else console.error('backtesting: scale range error:', min, max, range);\\n };\\n}\\n\\nclearTimeout(window._bt_autoscale_timeout);\\n\\nwindow._bt_autoscale_timeout = setTimeout(function () {\\n /**\\n * @variable cb_obj `fig_ohlc.x_range`.\\n * @variable source `ColumnDataSource`\\n * @variable ohlc_range `fig_ohlc.y_range`.\\n * @variable volume_range `fig_volume.y_range`.\\n */\\n \\\"use strict\\\";\\n\\n let i = Math.max(Math.floor(cb_obj.start), 0),\\n j = Math.min(Math.ceil(cb_obj.end), source.data['ohlc_high'].length);\\n\\n let max = Math.max.apply(null, source.data['ohlc_high'].slice(i, j)),\\n min = Math.min.apply(null, source.data['ohlc_low'].slice(i, j));\\n _bt_scale_range(ohlc_range, min, max, true);\\n\\n if (volume_range) {\\n max = Math.max.apply(null, source.data['Volume'].slice(i, j));\\n _bt_scale_range(volume_range, 0, max * 1.03, false);\\n }\\n\\n}, 50);\\n\"}}]]]},\"end\":241,\"bounds\":[-12.05,253.05],\"min_interval\":10}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p23413\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23420\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23421\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p23418\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23455\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23446\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23447\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23448\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[484],\"dtype\":\"int32\",\"order\":\"little\"}],[\"equity_dd\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[484],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23456\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23457\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p23452\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity_dd\"},\"line_color\":\"#ffcb66\",\"fill_color\":\"#ffffea\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p23453\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity_dd\"},\"line_color\":\"#ffcb66\",\"line_alpha\":0.1,\"fill_color\":\"#ffffea\",\"fill_alpha\":0.1,\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p23454\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"equity_dd\"},\"line_color\":\"#ffcb66\",\"line_alpha\":0.2,\"fill_color\":\"#ffffea\",\"fill_alpha\":0.2,\"hatch_alpha\":0.2}}}},{\"id\":\"p23464\"},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23475\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23469\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23470\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23471\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23476\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23477\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23472\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":181},\"y\":{\"type\":\"value\",\"value\":1.0275870939999998},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"fill_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"cyan\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23473\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":181},\"y\":{\"type\":\"value\",\"value\":1.0275870939999998},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23474\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":181},\"y\":{\"type\":\"value\",\"value\":1.0275870939999998},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"cyan\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23486\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23480\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23481\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23482\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23487\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23488\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23483\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0205757579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"blue\"},\"fill_color\":{\"type\":\"value\",\"value\":\"blue\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"blue\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23484\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0205757579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"blue\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"blue\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"blue\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23485\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0205757579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"blue\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"blue\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"blue\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23496\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23490\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23491\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23492\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23497\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23498\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23493\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":215},\"y\":{\"type\":\"value\",\"value\":1.0142007579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"red\"},\"fill_color\":{\"type\":\"value\",\"value\":\"red\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"red\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23494\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":215},\"y\":{\"type\":\"value\",\"value\":1.0142007579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"red\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"red\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"red\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p23495\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":215},\"y\":{\"type\":\"value\",\"value\":1.0142007579999999},\"size\":{\"type\":\"value\",\"value\":8},\"line_color\":{\"type\":\"value\",\"value\":\"red\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"red\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"red\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23506\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23500\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23501\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23502\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",[90,179.44099137281322]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23507\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23508\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23503\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.016926419},\"line_color\":\"red\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23504\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.016926419},\"line_color\":\"red\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p23505\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.016926419},\"line_color\":\"red\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p23419\",\"attributes\":{\"tools\":[{\"id\":\"p23432\"},{\"id\":\"p23433\"},{\"id\":\"p23434\"},{\"id\":\"p23442\"},{\"id\":\"p23443\"},{\"id\":\"p23444\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p23445\"},{\"id\":\"p23467\"},{\"id\":\"p23669\"}],\"active_drag\":{\"id\":\"p23432\"},\"active_scroll\":{\"id\":\"p23433\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23427\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23428\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p23468\",\"attributes\":{\"format\":\"0,0.[00]%\"}},\"axis_label\":\"Equity\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23430\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23422\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23423\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p23424\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23425\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23426\",\"attributes\":{\"axis\":{\"id\":\"p23422\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23431\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p23427\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p23478\",\"attributes\":{\"location\":\"top_left\",\"border_line_color\":\"#333333\",\"click_policy\":\"hide\",\"label_text_font_size\":\"8pt\",\"margin\":0,\"padding\":5,\"spacing\":0,\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p23479\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Peak (103%)\"},\"renderers\":[{\"id\":\"p23475\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p23489\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Final (102%)\"},\"renderers\":[{\"id\":\"p23486\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p23499\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Max Drawdown (-1.3%)\"},\"renderers\":[{\"id\":\"p23496\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p23509\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Max Dd Dur. (128 days)\"},\"renderers\":[{\"id\":\"p23506\"}]}}]}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},0,0],[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p23510\",\"attributes\":{\"width\":null,\"height\":90,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p23364\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p23512\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23519\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23520\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p23517\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"id\":\"p23552\"},{\"id\":\"p23561\"}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p23518\",\"attributes\":{\"tools\":[{\"id\":\"p23531\"},{\"id\":\"p23532\"},{\"id\":\"p23533\"},{\"id\":\"p23541\"},{\"id\":\"p23542\"},{\"id\":\"p23543\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p23544\"},{\"id\":\"p23564\"},{\"id\":\"p23565\"},{\"id\":\"p23669\"}],\"active_drag\":{\"id\":\"p23531\"},\"active_scroll\":{\"id\":\"p23532\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23526\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23527\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p23566\",\"attributes\":{\"format\":\"0.[00]%\"}},\"axis_label\":\"Profit / Loss\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23529\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23521\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23522\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p23523\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23524\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23525\",\"attributes\":{\"axis\":{\"id\":\"p23521\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23530\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p23526\"}}},{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p23545\",\"attributes\":{\"location\":0,\"line_color\":\"#666666\",\"line_dash\":[6]}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},1,0],[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p23365\",\"attributes\":{\"width\":null,\"height\":400,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p23364\"},\"y_range\":{\"id\":\"p23367\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23374\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23375\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p23372\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23622\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p23613\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p23614\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p23615\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAJUAAAAAAAAA9QAAAAAAAgEdAAAAAAADgUEAAAAAAAOBVQAAAAAAAwFpAAAAAAAAAYEAAAAAAANBiQAAAAAAAYGVAAAAAAACwZ0AAAAAAACBqQAAAAAAA0GxA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Open\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gufewyUnIUBx5ldzgDAhQCrG+ZtQWCNAuk4jLZU3I0D2I0VkWAUkQMcRa/EpUCRAHXIz3IC/I0By3CkdrA8kQB8RUyKJziNAYr68APtIKkDD9Shcj8ImQEjhehSuxyZA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"High\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zo3pCUsMIkDVsrW+SIgkQIkMq3gjoyNAZ5sb0xMmJEBSLLe0GnIlQIY97fDXVCRAF9S3zOmCJEBnYU87/KUkQG2QSUbOEihAYr68APtIKkAUrkfhehQoQArXo3A9CihA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Low\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"deWzPA9eIEDEWnwKgJEgQP3BwHPvoSJAnnsPlxxXIkA4Z0Rpb5AjQGcsms5OViNALCtNSkFHI0BTIoleRlEjQDvkZrgBzyJAexSuR+F6JkBI4XoUrkcmQB+F61G4niZA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Close\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8l61MuFHIUAqxvmbUFgjQLpOIy2VNyNA2bERiNe1I0CWPnRBfUskQCGwcmiR3SNAmdNlMbEZJEBt/8pKk+IjQPYLdsO25SdAw/UoXI/CJkDD9Shcj8ImQGZmZmZmZidA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Volume\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XI/CuWhtfEF7FK63gUmBQbgehYsS+X1BpHA9buJxe0HsUbjKBoZ+QQAAAATpp3FBFK5HUQuWdUEzMzObR8xyQc3MzDDqjnpBMzMzBfTAgkFI4Xr87eB9QYXrUdA7XXhB\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"_width\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZmZmZmbmNUDNzMzMzMwtQGZmZmZm5jRAZmZmZmbmM0BmZmZmZuYzQGZmZmZm5jJAZmZmZmbmNkBmZmZmZuY1QGZmZmZm5jJAZmZmZmbmMUBmZmZmZuY0QGZmZmZm5jVA\"},\"shape\":[12],\"dtype\":\"float64\",\"order\":\"little\"}],[\"inc\",{\"type\":\"ndarray\",\"array\":[\"1\",\"1\",\"0\",\"1\",\"1\",\"0\",\"1\",\"0\",\"1\",\"0\",\"1\",\"1\"],\"shape\":[12],\"dtype\":\"object\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23623\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23624\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23619\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"},\"line_color\":{\"type\":\"value\",\"value\":\"#bbbbbb\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23620\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"},\"line_color\":{\"type\":\"value\",\"value\":\"#bbbbbb\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23621\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"},\"line_color\":{\"type\":\"value\",\"value\":\"#bbbbbb\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23632\",\"attributes\":{\"data_source\":{\"id\":\"p23613\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23633\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23634\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23629\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"field\",\"field\":\"_width\"},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"line_color\":{\"type\":\"value\",\"value\":null},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"type\":\"object\",\"name\":\"CategoricalColorMapper\",\"id\":\"p23625\",\"attributes\":{\"palette\":[\"rgb(254, 220, 214)\",\"rgb(214, 254, 214)\"],\"factors\":[\"0\",\"1\"]}}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23630\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"field\",\"field\":\"_width\"},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"line_color\":{\"type\":\"value\",\"value\":null},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23625\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p23631\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"width\":{\"type\":\"field\",\"field\":\"_width\"},\"bottom\":{\"type\":\"field\",\"field\":\"Close\"},\"top\":{\"type\":\"field\",\"field\":\"Open\"},\"line_color\":{\"type\":\"value\",\"value\":null},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p23625\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23641\",\"attributes\":{\"data_source\":{\"id\":\"p23400\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23642\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23643\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23638\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23639\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p23640\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"index\"},\"y0\":{\"type\":\"field\",\"field\":\"High\"},\"x1\":{\"type\":\"field\",\"field\":\"index\"},\"y1\":{\"type\":\"field\",\"field\":\"Low\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"id\":\"p23650\"},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p23659\",\"attributes\":{\"data_source\":{\"id\":\"p23403\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p23660\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p23661\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p23656\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"position_lines_xs\"},\"ys\":{\"type\":\"field\",\"field\":\"position_lines_ys\"},\"line_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"type\":\"object\",\"name\":\"CategoricalColorMapper\",\"id\":\"p23408\",\"attributes\":{\"palette\":[\"rgb(178, 27, 0)\",\"rgb(0, 178, 0)\"],\"factors\":[\"0\",\"1\"]}}},\"line_width\":{\"type\":\"value\",\"value\":8},\"line_dash\":{\"type\":\"value\",\"value\":\"dotted\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p23657\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"position_lines_xs\"},\"ys\":{\"type\":\"field\",\"field\":\"position_lines_ys\"},\"line_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23408\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"line_width\":{\"type\":\"value\",\"value\":8},\"line_dash\":{\"type\":\"value\",\"value\":\"dotted\"}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p23658\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"position_lines_xs\"},\"ys\":{\"type\":\"field\",\"field\":\"position_lines_ys\"},\"line_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p23408\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":8},\"line_dash\":{\"type\":\"value\",\"value\":\"dotted\"}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p23373\",\"attributes\":{\"tools\":[{\"id\":\"p23386\"},{\"id\":\"p23387\"},{\"id\":\"p23388\"},{\"id\":\"p23396\"},{\"id\":\"p23397\"},{\"id\":\"p23398\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p23399\"},{\"id\":\"p23665\"},{\"id\":\"p23669\"}],\"active_drag\":{\"id\":\"p23386\"},\"active_scroll\":{\"id\":\"p23387\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23381\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23382\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p23383\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23384\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23376\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23377\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"CustomJSTickFormatter\",\"id\":\"p23410\",\"attributes\":{\"args\":{\"type\":\"map\",\"entries\":[[\"axis\",{\"id\":\"p23376\"}],[\"formatter\",{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p23409\",\"attributes\":{\"days\":\"%a, %d %b\"}}],[\"source\",{\"id\":\"p23400\"}]]},\"code\":\"\\nthis.labels = this.labels || formatter.doFormat(ticks\\n .map(i => source.data.datetime[i])\\n .filter(t => t !== undefined));\\nreturn this.labels[index] || \\\"\\\";\\n \"}},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23379\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23380\",\"attributes\":{\"axis\":{\"id\":\"p23376\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23385\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p23381\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p23662\",\"attributes\":{\"location\":\"top_left\",\"border_line_color\":\"#333333\",\"click_policy\":\"hide\",\"label_text_font_size\":\"8pt\",\"margin\":0,\"padding\":5,\"spacing\":0,\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p23663\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Trades (6)\"},\"renderers\":[{\"id\":\"p23659\"}]}}]}},{\"type\":\"object\",\"name\":\"Label\",\"id\":\"p23664\",\"attributes\":{\"text\":\"Created with Backtesting.py: http://kernc.github.io/backtesting.py\",\"text_color\":\"silver\",\"text_alpha\":0.09,\"x\":10,\"y\":15,\"x_units\":\"screen\",\"y_units\":\"screen\"}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},2,0],[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p23567\",\"attributes\":{\"width\":null,\"height\":70,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p23364\"},\"y_range\":{\"id\":\"p23569\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23576\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p23577\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p23574\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"id\":\"p23608\"}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p23575\",\"attributes\":{\"tools\":[{\"id\":\"p23588\"},{\"id\":\"p23589\"},{\"id\":\"p23590\"},{\"id\":\"p23598\"},{\"id\":\"p23599\"},{\"id\":\"p23600\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p23601\"},{\"id\":\"p23611\"},{\"id\":\"p23669\"}],\"active_drag\":{\"id\":\"p23588\"},\"active_scroll\":{\"id\":\"p23589\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23583\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23584\",\"attributes\":{\"desired_num_ticks\":3,\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p23612\",\"attributes\":{\"format\":\"0 a\"}},\"axis_label\":\"Volume\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23586\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p23578\",\"attributes\":{\"visible\":true,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p23579\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"id\":\"p23410\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p23581\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23582\",\"attributes\":{\"axis\":{\"id\":\"p23578\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p23587\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p23583\"}}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},3,0]]}}],\"callbacks\":{\"type\":\"map\",\"entries\":[[\"document_ready\",[{\"type\":\"object\",\"name\":\"CustomJS\",\"id\":\"p23363\",\"attributes\":{\"code\":\"(function() { var i = document.createElement('iframe'); i.style.display='none';i.width=i.height=1;i.loading='eager';i.src='https://kernc.github.io/backtesting.py/plx.gif.html?utm_source='+location.origin;document.body.appendChild(i);})();\"}}]]]}}};\n const render_items = [{\"docid\":\"64d313c8-4e58-479d-a798-64a22ee792d6\",\"roots\":{\"p23684\":\"fb3bf779-4a00-4aaa-b3c1-8863f0fb1e83\"},\"root_ids\":[\"p23684\"]}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p23684" } }, "output_type": "display_data" }, { "data": { "text/plain": [ "GridPlot(id='p23684', ...)" ], "text/html": [ "