1
0
Files
finance/回测/backtesting.ipynb
2025-02-21 11:56:28 +08:00

498 lines
137 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-02-21T03:15:40.259079Z",
"start_time": "2025-02-21T03:15:40.254285Z"
}
},
"source": [
"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": 83
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:15:40.299604Z",
"start_time": "2025-02-21T03:15:40.295742Z"
}
},
"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": 84
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:15:40.394509Z",
"start_time": "2025-02-21T03:15:40.304999Z"
}
},
"cell_type": "code",
"source": "df = load_stock(\"000001.SZ\")",
"id": "bdcc7bfcec324577",
"outputs": [],
"execution_count": 85
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:15:40.423569Z",
"start_time": "2025-02-21T03:15:40.417310Z"
}
},
"cell_type": "code",
"source": [
"def translate_metrics(data):\n",
" \"\"\"\n",
" 将 Pandas Series 中的指标名称翻译为中文并打印结果。\n",
"\n",
" 参数:\n",
" data (pd.Series or pd.DataFrame): 包含指标的 Pandas 数据结构。\n",
" \"\"\"\n",
" # 翻译字典\n",
" translation = {\n",
" \"Start\": \"开始日期\",\n",
" \"End\": \"结束日期\",\n",
" \"Duration\": \"持续时间\",\n",
" \"Exposure Time [%]\": \"有效时间\",\n",
" \"Equity Final [$]\": \"最终权益\",\n",
" \"Equity Peak [$]\": \"最高权益\",\n",
" \"Commissions [$]\": \"佣金\",\n",
" \"Return [%]\": \"回报率\",\n",
" \"Buy & Hold Return [%]\": \"买并持有回报率\",\n",
" \"Return (Ann.) [%]\": \"年化回报率\",\n",
" \"Volatility (Ann.) [%]\": \"年化波动率\",\n",
" \"CAGR [%]\": \"年复合增长率\",\n",
" \"Sharpe Ratio\": \"夏普比率\",\n",
" \"Sortino Ratio\": \"索提诺比率\",\n",
" \"Calmar Ratio\": \"卡玛比率\",\n",
" \"Max. Drawdown [%]\": \"最大回撤\",\n",
" \"Avg. Drawdown [%]\": \"平均回撤\",\n",
" \"Max. Drawdown Duration\": \"最长回撤时间\",\n",
" \"Avg. Drawdown Duration\": \"平均回撤时间\",\n",
" \"# Trades\": \"交易次数\",\n",
" \"Win Rate [%]\": \"胜率\",\n",
" \"Best Trade [%]\": \"最佳交易\",\n",
" \"Worst Trade [%]\": \"最差交易\",\n",
" \"Avg. Trade [%]\": \"平均交易\",\n",
" \"Max. Trade Duration\": \"最长交易时间\",\n",
" \"Avg. Trade Duration\": \"平均交易时间\",\n",
" \"Profit Factor\": \"利润因子\",\n",
" \"Expectancy [%]\": \"期望\",\n",
" \"SQN\": \"系统质量系数\",\n",
" \"Kelly Criterion\": \"凯利比率\"\n",
" }\n",
"\n",
" # 如果是 Series\n",
" if isinstance(data, pd.Series):\n",
" for idx in range(len(data)):\n",
" key = data.index[idx]\n",
" value = data.iloc[idx]\n",
" translated_key = translation.get(key, key)\n",
" print(f\"{translated_key}: {value}\")\n",
" else:\n",
" raise ValueError(\"输入数据必须是 Pandas Series 或 DataFrame。\")"
],
"id": "f6e932667ad314ff",
"outputs": [],
"execution_count": 86
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:23:42.886623Z",
"start_time": "2025-02-21T03:23:42.881086Z"
}
},
"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": 94
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:15:40.473207Z",
"start_time": "2025-02-21T03:15:40.468715Z"
}
},
"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": 88
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:23:45.326016Z",
"start_time": "2025-02-21T03:23:44.841258Z"
}
},
"cell_type": "code",
"source": [
"from backtesting import Backtest\n",
"\n",
"bt = Backtest(df, MACDStrategy, cash=10000, commission=.002, trade_on_close=True)\n",
"result = bt.run()\n",
"print(result.iloc[4])\n",
"bt.plot()"
],
"id": "ab574b78805925e5",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10008.226826000002\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div id=\"a10a1def-6d3a-43e1-8bc6-784ba89baab3\" data-root-id=\"p11108\" style=\"display: contents;\"></div>\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"ec5a5724-7ffa-4f13-af38-a2f148de4693\":{\"version\":\"3.6.3\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"GridPlot\",\"id\":\"p11108\",\"attributes\":{\"rows\":null,\"cols\":null,\"sizing_mode\":\"stretch_width\",\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p11107\",\"attributes\":{\"logo\":null,\"tools\":[{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11093\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p10787\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p10886\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p10741\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p10943\",\"attributes\":{\"dimensions\":\"width\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p11040\",\"attributes\":{\"dimensions\":\"width\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11094\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p10788\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p10887\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p10742\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p10944\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p11041\",\"attributes\":{\"dimensions\":\"width\",\"renderers\":\"auto\",\"maintain_focus\":false}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11095\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p10789\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p10790\",\"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\":\"p10796\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p10795\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p10888\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p10889\",\"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\":\"p10895\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p10894\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p10743\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p10744\",\"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\":\"p10750\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p10749\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p10945\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p10946\",\"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\":\"p10952\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p10951\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p11042\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p11043\",\"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\":\"p11049\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p11048\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11096\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p10797\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p10896\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p10751\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p10953\"},{\"type\":\"object\",\"name\":\"UndoTool\",\"id\":\"p11050\"}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11097\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p10798\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p10897\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p10752\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p10954\"},{\"type\":\"object\",\"name\":\"RedoTool\",\"id\":\"p11051\"}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11098\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p10799\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p10898\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p10753\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p10955\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p11052\"}]}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p11099\"},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11100\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p10822\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10819\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10755\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10756\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10757\"},\"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\":\"AAAAhXfMeEIAAMDqycx4QgAAgFAczXhCAABAtm7NeEIAAIDnZc54QgAAQE24znhCAAAAswrPeEIAAMAYXc94QgAAgH6vz3hCAADAr6bQeEIAAIAV+dB4QgAAQHtL0XhCAAAA4Z3ReEIAAMBG8NF4QgAAAHjn0nhCAADA3TnTeEIAAIBDjNN4QgAAQKne03hCAAAADzHUeEIAAEBAKNV4QgAAAKZ61XhCAADAC83VeEIAAIBxH9Z4QgAAQNdx1nhCAACACGnXeEIAAEBuu9d4QgAAANQN2HhCAADAOWDYeEIAAACZ6tt4QgAAwP483HhCAACAZI/ceEIAAEDK4dx4QgAAADA03XhCAABAYSveeEIAAADHfd54QgAAwCzQ3nhCAACAkiLfeEIAAED4dN94QgAAgCls4HhCAABAj77geEIAAAD1EOF4QgAAwFpj4XhCAACAwLXheEIAAMDxrOJ4QgAAgFf/4nhCAABAvVHjeEIAAAAjpON4QgAAwIj243hCAAAAuu3keEIAAMAfQOV4QgAAgIWS5XhCAABA6+TleEIAAABRN+Z4QgAAQIIu53hCAAAA6IDneEIAAMBN0+d4QgAAgLMl6HhCAABAGXjoeEIAAIBKb+l4QgAAQLDB6XhCAAAAFhTqeEIAAMASsOt4QgAAgHgC7HhCAABA3lTseEIAAABEp+x4QgAAwKn57HhCAAAA2/DteEIAAMBAQ+54QgAAgKaV7nhCAABADOjueEIAAAByOu94QgAAQKMx8HhCAAAACYTweEIAAMBu1vB4QgAAgNQo8XhCAABAOnvxeEIAAIBrcvJ4QgAAQNHE8nhCAADAM7P0eEIAAICZBfV4QgAAQP9X9XhCAAAAZar1eEIAAMDK/PV4QgAAAPzz9nhCAADAYUb3eEIAAIDHmPd4QgAAQC3r93hCAAAAkz34eEIAAEDENPl4QgAAACqH+XhCAADAj9n5eEIAAID1K/p4QgAAQFt++nhCAACAjHX7eEIAAEDyx/t4QgAAAFga/HhCAADAvWz8eEIAAIAjv/x4QgAAwFS2/XhCAACAugj+eEIAAEAgW/54QgAAAIat/nhCAADA6//+eEIAAMCCSQB5QgAAgOibAHlCAABATu4AeUIAAAC0QAF5QgAAQOU3AnlCAAAAS4oCeUIAAMCw3AJ5QgAAgBYvA3lCAABAfIEDeUIAAICteAR5QgAAQBPLBHlCAAAAeR0FeUIAAMDebwV5QgAAgETCBXlCAADAdbkGeUIAAIDbCwd5QgAAQEFeB3lCAAAAp7AHeUIAAMAMAwh5QgAAAD76CHlCAADAo0wJeUIAAIAJnwl5QgAAQG/xCXlCAAAA1UMKeUIAAEAGOwt5QgAAAGyNC3lCAADA0d8LeUIAAIA3Mgx5QgAAQJ2EDHlCAACAznsNeUIAAEA0zg15QgAAAJogDnlCAADA/3IOeUIAAIBlxQ55QgAAwJa8D3lCAACA/A4QeUIAAEBiYRB5QgAAAMizEHlCAADALQYReUIAAABf/RF5QgAAwMRPEnlCAACAKqISeUIAAECQ9BJ5QgAAAPZGE3lCAABAJz4UeUIAAACNkBR5QgAAwPLiFHlCAACAWDUVeUIAAEC+hxV5QgAAgO9+FnlCAABAVdEWeUIAAAC7Ixd5QgAAwCB2F3lCAACAhsgXeUIAAMC3vxh5QgAAgB0SGXlCAABAg2QZeUIAAADpthl5QgAAwE4JGnlCAAAAgAAbeUIAAMDlUht5QgAAgEulG3lCAABAsfcbeUIAAAAXShx5QgAAQEhBHXlCAAAArpMdeUIAAMAT5h15QgAAgHk4HnlCAABA34oeeUIAAADcJiB5QgAAwEF5IHlCAACAp8sgeUIAAMDYwiF5QgAAgD4VInlCAABApGcieUIAAAAKuiJ5QgAAwG8MI3lCAAAAoQMkeUIAAADPliZ5QgAAwDTpJnlCAACAmjsneUIAAEAAjid5QgAAgDGFKHlCAABAl9coeUIAAAD9KSl5QgAAwGJ8KXlCAACAyM4peUIAAMD5xSp5QgAAgF8YK3lCAABAxWoreUIAAAArvSt5QgAAwJAPLHlCAAAAwgYteUIAAMAnWS15QgAAgI2rLXlCAABA8/0teUIAAABZUC55QgAAQIpHL3lCAAAA8JkveUIAAMBV7C95QgAAgLs+MHlCAABAIZEweUIAAIBSiDF5QgAAQLjaMXlCAAAAHi0yeUIAAMCDfzJ5QgAAgOnRMnlCAADAGskzeUIAAICAGzR5QgAAQOZtNHlCAAAATMA0eUIAAMCxEjV5QgAAAOMJNnlCAADASFw2eUIAAICurjZ5QgAAQBQBN3lCAAAAelM3eUIAAECrSjh5QgAAABGdOHlCAADAdu84eUIAAIDcQTl5QgAAQEKUOXlCAACAc4s6eUIAAEDZ3Tp5QgAAAD8wO3lCAADApII7eUIAAIAK1Tt5QgAAwDvMPHlCAACAoR49eUIAAEAHcT15QgAAAG3DPXlCAADA0hU+eUIAAAAEDT95QgAAwGlfP3lCAACAz7E/eUIAAEA1BEB5QgAAAJtWQHlCAABAzE1BeUIAAAAyoEF5Qg==\"},\"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\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D9vEq5AJ/bvP3o35trv5+8/h+vX8e3q7z/Qd4d5LurvPyDFGt0q8O8/alHKZGvv7z/MEzO7If/vPylH4pSi/e8/jTBjD48C8D+z9jpTLwLwP3zGn1cl+e8/0wZB9mP77z8JN9zxbQTwPzXXLEGNBfA/3paLok4D8D828MFwUADwP4r+OLAIDfA/XSy+AWMW8D9WUkX24xTwP4DZABZAG/A/WxMp0p8b8D8LxpVuoxXwP4nlo4BFEvA/3wyw78AZ8D8LxpVuoxXwPw3fKp5mEPA/D/i/zSkL8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/riZ6IskJ8D/6OwZtsw7wP1QxwEc+DPA/oUZMkigR8D/SvXmzRwXwP0NqBY+wBfA/f7jWIA0E8D/MzWJr9wjwPyXDHEaCBvA/DQ7GNo8F8D8NDsY2jwXwP8aR6F3sCfA/bJwug2EM8D/Gkehd7AnwP3OMRcuxCPA/v6HRFZwN8D+1yi2lXgPwPw==\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"MACD(C,12,26,9)[0]_0_0\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"MACD(C,12,26,9)[1]_0_1\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[242],\"dtype\":\"float64\",\"order\":\"little\"}],[\"MACD(C,12,26,9)[2]_0_2\",{\"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\":\"p10820\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10821\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p10816\",\"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\":\"p10817\",\"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\":\"p10818\",\"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\":\"p11101\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p10919\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10907\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10758\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10759\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10760\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YAAAAOkAAAA=\"},\"shape\":[2],\"dtype\":\"int32\",\"order\":\"little\"}],[\"datetime\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AADAvWz8eEIAAABtwz15Qg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"exit_price\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xxFr8SlQJECuR+F6FC4nQA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"size\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZAAAAGQAAAA=\"},\"shape\":[2],\"dtype\":\"int32\",\"order\":\"little\"}],[\"returns_positive\",{\"type\":\"ndarray\",\"array\":[\"1\",\"0\"],\"shape\":[2],\"dtype\":\"object\",\"order\":\"little\"}],[\"returns_long\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wDdW/RRXnj8A98KcDZd4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"returns_short\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA+H8AAAAAAAD4fw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"marker_size\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAANEAAAAAAAAA0QA==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"position_lines_xs\",[[69,96],[224,233]]],[\"position_lines_ys\",[[9.8643,10.15657],[11.66,11.59]]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10908\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10909\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10904\",\"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\":\"p10762\",\"attributes\":{\"palette\":[\"tomato\",\"lime\"],\"factors\":[\"0\",\"1\"]}}},\"marker\":{\"type\":\"value\",\"value\":\"triangle\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10905\",\"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\":\"p10762\"}},\"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\":\"p10906\",\"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\":\"p10762\"}},\"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\":\"p11102\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p10920\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10916\",\"attributes\":{\"data_source\":{\"id\":\"p10758\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10917\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10918\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10913\",\"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\":\"p10762\"}},\"marker\":{\"type\":\"value\",\"value\":\"inverted_triangle\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10914\",\"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\":\"p10762\"}},\"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\":\"p10915\",\"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\":\"p10762\"}},\"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\":\"p11103\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p11088\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p11005\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p11006\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p11007\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p11002\",\"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\":\"p10761\",\"attributes\":{\"palette\":[\"tomato\",\"lime\"],\"factors\":[\"0\",\"1\"]}}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p11003\",\"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\":\"p10761\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p11004\",\"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\":\"p10761\"}},\"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\":\"p11104\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p10966\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10963\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10964\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10965\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10960\",\"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\":\"p10761\"}},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10961\",\"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\":\"p10761\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10962\",\"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\":\"p10761\"}},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"field\",\"field\":\"inc\",\"transform\":{\"id\":\"p10761\"}},\"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\":\"p11105\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p11086\",\"attributes\":{\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p11081\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p11082\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p11083\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11078\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[2]_0_2\"},\"line_color\":\"#2ca02c\",\"line_width\":1.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11079\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[2]_0_2\"},\"line_color\":\"#2ca02c\",\"line_alpha\":0.1,\"line_width\":1.3}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11080\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[2]_0_2\"},\"line_color\":\"#2ca02c\",\"line_alpha\":0.2,\"line_width\":1.3}}}}],\"tooltips\":[[\"Date\",\"@datetime{%c}\"],[\"MACD(C,12,26,9)\",\"@{MACD(C,12,26,9)[0]_0_0}{0,0.0[0000]}\\u00a0\\u00a0\\u00a0\\u00a0@{MACD(C,12,26,9)[1]_0_1}{0,0.0[0000]}\\u00a0\\u00a0\\u00a0\\u00a0@{MACD(C,12,26,9)[2]_0_2}{0,0.0[0000]}\"]],\"formatters\":{\"type\":\"map\",\"entries\":[[\"@datetime\",\"datetime\"]]},\"mode\":\"vline\",\"point_policy\":\"follow_mouse\"}}]}},{\"type\":\"object\",\"name\":\"ToolProxy\",\"id\":\"p11106\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"CrosshairTool\",\"id\":\"p11092\",\"attributes\":{\"overlay\":[{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p11090\",\"attributes\":{\"line_dash\":[2,4]}},{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p11091\",\"attributes\":{\"dimension\":\"height\",\"line_dash\":[2,4]}}],\"line_color\":\"lightgrey\"}},{\"id\":\"p11092\"},{\"id\":\"p11092\"},{\"id\":\"p11092\"},{\"id\":\"p11092\"}]}}],\"active_drag\":{\"id\":\"p11093\"},\"active_scroll\":{\"id\":\"p11094\"}}},\"toolbar_location\":\"right\",\"children\":[[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p10766\",\"attributes\":{\"width\":null,\"height\":110,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p10719\",\"attributes\":{\"js_property_callbacks\":{\"type\":\"map\",\"entries\":[[\"change:end\",[{\"type\":\"object\",\"name\":\"CustomJS\",\"id\":\"p11089\",\"attributes\":{\"args\":{\"type\":\"map\",\"entries\":[[\"ohlc_range\",{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p10722\"}],[\"source\",{\"id\":\"p10755\"}],[\"volume_range\",{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p10924\"}]]},\"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\":\"p10768\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10775\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10776\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p10773\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10810\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10801\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10802\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10803\"},\"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\":\"AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D9vEq5AJ/bvP3o35trv5+8/h+vX8e3q7z/Qd4d5LurvPyDFGt0q8O8/alHKZGvv7z/MEzO7If/vPylH4pSi/e8/jTBjD48C8D+z9jpTLwLwP3zGn1cl+e8/0wZB9mP77z8JN9zxbQTwPzXXLEGNBfA/3paLok4D8D828MFwUADwP4r+OLAIDfA/XSy+AWMW8D9WUkX24xTwP4DZABZAG/A/WxMp0p8b8D8LxpVuoxXwP4nlo4BFEvA/3wyw78AZ8D8LxpVuoxXwPw3fKp5mEPA/D/i/zSkL8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/zHMUzlQK8D/McxTOVArwP8xzFM5UCvA/riZ6IskJ8D/6OwZtsw7wP1QxwEc+DPA/oUZMkigR8D/SvXmzRwXwP0NqBY+wBfA/f7jWIA0E8D/MzWJr9wjwPyXDHEaCBvA/DQ7GNo8F8D8NDsY2jwXwP8aR6F3sCfA/bJwug2EM8D/Gkehd7AnwP3OMRcuxCPA/v6HRFZwN8D+1yi2lXgPwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D9bEynSnxvwP1sTKdKfG/A/WxMp0p8b8D+A2QAWQBvwP10svgFjFvA/XSy+AWMW8D+K/jiwCA3wPzXXLEGNBfA/NdcsQY0F8D811yxBjQXwPwk33PFtBPA/jTBjD48C8D+NMGMPjwLwP40wYw+PAvA/jTBjD48C8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8=\"},\"shape\":[484],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10811\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10812\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p10807\",\"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\":\"p10808\",\"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\":\"p10809\",\"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\":\"p10819\"},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10830\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10824\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10825\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10826\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10831\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10832\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10827\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":90},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"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\":\"p10828\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":90},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"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\":\"p10829\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":90},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"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\":\"p10841\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10835\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10836\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10837\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10842\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10843\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10838\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10839\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10840\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10851\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10845\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10846\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10847\"},\"data\":{\"type\":\"map\"}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10852\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10853\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p10848\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10849\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10850\",\"attributes\":{\"x\":{\"type\":\"value\",\"value\":241},\"y\":{\"type\":\"value\",\"value\":1.0008226826000002},\"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\":\"p10861\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10855\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10856\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10857\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",[90,241]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10862\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10863\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p10858\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"line_color\":\"red\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p10859\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"line_color\":\"red\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p10860\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"value\",\"value\":1.006744214},\"line_color\":\"red\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p10774\",\"attributes\":{\"tools\":[{\"id\":\"p10787\"},{\"id\":\"p10788\"},{\"id\":\"p10789\"},{\"id\":\"p10797\"},{\"id\":\"p10798\"},{\"id\":\"p10799\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p10800\"},{\"id\":\"p10822\"},{\"id\":\"p11092\"}],\"active_drag\":{\"id\":\"p10787\"},\"active_scroll\":{\"id\":\"p10788\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10782\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10783\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p10823\",\"attributes\":{\"format\":\"0,0.[00]%\"}},\"axis_label\":\"Equity\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10785\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10777\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10778\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p10779\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10780\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10781\",\"attributes\":{\"axis\":{\"id\":\"p10777\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10786\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p10782\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p10833\",\"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\":\"p10834\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Peak (101%)\"},\"renderers\":[{\"id\":\"p10830\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p10844\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Final (100%)\"},\"renderers\":[{\"id\":\"p10841\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p10854\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Max Drawdown (-0.6%)\"},\"renderers\":[{\"id\":\"p10851\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p10864\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Max Dd Dur. (223 days)\"},\"renderers\":[{\"id\":\"p10861\"}]}}]}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},0,0],[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p10865\",\"attributes\":{\"width\":null,\"height\":90,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p10719\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p10867\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10874\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10875\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p10872\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"id\":\"p10907\"},{\"id\":\"p10916\"}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p10873\",\"attributes\":{\"tools\":[{\"id\":\"p10886\"},{\"id\":\"p10887\"},{\"id\":\"p10888\"},{\"id\":\"p10896\"},{\"id\":\"p10897\"},{\"id\":\"p10898\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p10899\"},{\"id\":\"p10919\"},{\"id\":\"p10920\"},{\"id\":\"p11092\"}],\"active_drag\":{\"id\":\"p10886\"},\"active_scroll\":{\"id\":\"p10887\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10881\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10882\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p10921\",\"attributes\":{\"format\":\"0.[00]%\"}},\"axis_label\":\"Profit / Loss\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10884\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10876\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10877\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p10878\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10879\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10880\",\"attributes\":{\"axis\":{\"id\":\"p10876\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10885\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p10881\"}}},{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p10900\",\"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\":\"p10720\",\"attributes\":{\"width\":null,\"height\":400,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p10719\"},\"y_range\":{\"id\":\"p10722\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10729\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10730\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p10727\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10977\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p10968\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p10969\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p10970\"},\"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\":\"p10978\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10979\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p10974\",\"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\":\"p10975\",\"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\":\"p10976\",\"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\":\"p10987\",\"attributes\":{\"data_source\":{\"id\":\"p10968\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10988\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10989\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10984\",\"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\":\"p10980\",\"attributes\":{\"palette\":[\"rgb(254, 220, 214)\",\"rgb(214, 254, 214)\"],\"factors\":[\"0\",\"1\"]}}}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10985\",\"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\":\"p10980\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p10986\",\"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\":\"p10980\"}},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p10996\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p10997\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p10998\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p10993\",\"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\":\"p10994\",\"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\":\"p10995\",\"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\":\"p11005\"},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p11014\",\"attributes\":{\"data_source\":{\"id\":\"p10758\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p11015\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p11016\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p11011\",\"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\":\"p10763\",\"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\":\"p11012\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"position_lines_xs\"},\"ys\":{\"type\":\"field\",\"field\":\"position_lines_ys\"},\"line_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p10763\"}},\"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\":\"p11013\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"position_lines_xs\"},\"ys\":{\"type\":\"field\",\"field\":\"position_lines_ys\"},\"line_color\":{\"type\":\"field\",\"field\":\"returns_positive\",\"transform\":{\"id\":\"p10763\"}},\"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\":\"p10728\",\"attributes\":{\"tools\":[{\"id\":\"p10741\"},{\"id\":\"p10742\"},{\"id\":\"p10743\"},{\"id\":\"p10751\"},{\"id\":\"p10752\"},{\"id\":\"p10753\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p10754\"},{\"id\":\"p11088\"},{\"id\":\"p11092\"}],\"active_drag\":{\"id\":\"p10741\"},\"active_scroll\":{\"id\":\"p10742\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10736\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10737\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p10738\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10739\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10731\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10732\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"CustomJSTickFormatter\",\"id\":\"p10765\",\"attributes\":{\"args\":{\"type\":\"map\",\"entries\":[[\"axis\",{\"id\":\"p10731\"}],[\"formatter\",{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p10764\",\"attributes\":{\"days\":\"%a, %d %b\"}}],[\"source\",{\"id\":\"p10755\"}]]},\"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\":\"p10734\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10735\",\"attributes\":{\"axis\":{\"id\":\"p10731\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10740\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p10736\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p11017\",\"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\":\"p11018\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Trades (2)\"},\"renderers\":[{\"id\":\"p11014\"}]}}]}},{\"type\":\"object\",\"name\":\"Label\",\"id\":\"p11087\",\"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\":\"p10922\",\"attributes\":{\"width\":null,\"height\":70,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p10719\"},\"y_range\":{\"id\":\"p10924\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10931\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p10932\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p10929\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"id\":\"p10963\"}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p10930\",\"attributes\":{\"tools\":[{\"id\":\"p10943\"},{\"id\":\"p10944\"},{\"id\":\"p10945\"},{\"id\":\"p10953\"},{\"id\":\"p10954\"},{\"id\":\"p10955\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p10956\"},{\"id\":\"p10966\"},{\"id\":\"p11092\"}],\"active_drag\":{\"id\":\"p10943\"},\"active_scroll\":{\"id\":\"p10944\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10938\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10939\",\"attributes\":{\"desired_num_ticks\":3,\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"NumeralTickFormatter\",\"id\":\"p10967\",\"attributes\":{\"format\":\"0 a\"}},\"axis_label\":\"Volume\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10941\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p10933\",\"attributes\":{\"visible\":true,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p10934\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"id\":\"p10765\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p10936\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10937\",\"attributes\":{\"axis\":{\"id\":\"p10933\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p10942\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p10938\"}}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},3,0],[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p11019\",\"attributes\":{\"width\":null,\"height\":90,\"sizing_mode\":\"stretch_width\",\"x_range\":{\"id\":\"p10719\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p11021\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p11028\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p11029\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p11026\"},\"outline_line_color\":\"#666666\",\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p11060\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p11061\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p11062\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11057\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[0]_0_0\"},\"line_color\":\"#1f77b4\",\"line_width\":1.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11058\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[0]_0_0\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":1.3}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11059\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[0]_0_0\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":1.3}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p11071\",\"attributes\":{\"data_source\":{\"id\":\"p10755\"},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p11072\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p11073\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11068\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[1]_0_1\"},\"line_color\":\"#ff7f0e\",\"line_width\":1.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11069\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[1]_0_1\"},\"line_color\":\"#ff7f0e\",\"line_alpha\":0.1,\"line_width\":1.3}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p11070\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"index\"},\"y\":{\"type\":\"field\",\"field\":\"MACD(C,12,26,9)[1]_0_1\"},\"line_color\":\"#ff7f0e\",\"line_alpha\":0.2,\"line_width\":1.3}}}},{\"id\":\"p11081\"}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p11027\",\"attributes\":{\"tools\":[{\"id\":\"p11040\"},{\"id\":\"p11041\"},{\"id\":\"p11042\"},{\"id\":\"p11050\"},{\"id\":\"p11051\"},{\"id\":\"p11052\"},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p11053\"},{\"id\":\"p11086\"},{\"id\":\"p11092\"}],\"active_drag\":{\"id\":\"p11040\"},\"active_scroll\":{\"id\":\"p11041\"}}},\"toolbar_location\":null,\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p11035\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p11036\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p11037\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p11038\"},\"minor_tick_line_color\":null}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p11030\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p11031\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p11032\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p11033\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p11034\",\"attributes\":{\"axis\":{\"id\":\"p11030\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p11039\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p11035\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p11063\",\"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\":\"p11064\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"MACD(C,12,26,9)[0]\"},\"renderers\":[{\"id\":\"p11060\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p11074\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"MACD(C,12,26,9)[1]\"},\"renderers\":[{\"id\":\"p11071\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p11084\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"MACD(C,12,26,9)[2]\"},\"renderers\":[{\"id\":\"p11081\"}]}}]}},{\"type\":\"object\",\"name\":\"Span\",\"id\":\"p11085\",\"attributes\":{\"location\":-0.001814620793287516,\"line_color\":\"#666666\",\"line_width\":0.5,\"line_dash\":[6]}}],\"min_border_top\":3,\"min_border_bottom\":6,\"min_border_left\":0,\"min_border_right\":10}},4,0]]}}],\"callbacks\":{\"type\":\"map\",\"entries\":[[\"document_ready\",[{\"type\":\"object\",\"name\":\"CustomJS\",\"id\":\"p10718\",\"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\":\"ec5a5724-7ffa-4f13-af38-a2f148de4693\",\"roots\":{\"p11108\":\"a10a1def-6d3a-43e1-8bc6-784ba89baab3\"},\"root_ids\":[\"p11108\"]}];\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": "p11108"
}
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"GridPlot(id='p11108', ...)"
],
"text/html": [
"<div style=\"display: table;\"><div style=\"display: table-row;\"><div style=\"display: table-cell;\"><b title=\"bokeh.models.plots.GridPlot\">GridPlot</b>(</div><div style=\"display: table-cell;\">id&nbsp;=&nbsp;'p11108', <span id=\"p11140\" style=\"cursor: pointer;\">&hellip;)</span></div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">align&nbsp;=&nbsp;'auto',</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_ratio&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">children&nbsp;=&nbsp;[(figure(id='p10766', ...), 0, 0), (figure(id='p10865', ...), 1, 0), (figure(id='p10720', ...), 2, 0), (figure(id='p10922', ...), 3, 0), (figure(id='p11019', ...), 4, 0)],</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">cols&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">context_menu&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">css_classes&nbsp;=&nbsp;[],</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">css_variables&nbsp;=&nbsp;{},</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">disabled&nbsp;=&nbsp;False,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">elements&nbsp;=&nbsp;[],</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">flow_mode&nbsp;=&nbsp;'block',</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_event_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_property_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">margin&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_height&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_width&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_height&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_width&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">name&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">resizable&nbsp;=&nbsp;False,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">rows&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">sizing_mode&nbsp;=&nbsp;'stretch_width',</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">spacing&nbsp;=&nbsp;0,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">styles&nbsp;=&nbsp;{},</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">stylesheets&nbsp;=&nbsp;[],</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">subscribed_events&nbsp;=&nbsp;PropertyValueSet(),</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">syncable&nbsp;=&nbsp;True,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">tags&nbsp;=&nbsp;[],</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar&nbsp;=&nbsp;Toolbar(id='p11107', ...),</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_location&nbsp;=&nbsp;'right',</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">visible&nbsp;=&nbsp;True,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width&nbsp;=&nbsp;None,</div></div><div class=\"p11139\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width_policy&nbsp;=&nbsp;'auto')</div></div></div>\n",
"<script>\n",
"(function() {\n",
" let expanded = false;\n",
" const ellipsis = document.getElementById(\"p11140\");\n",
" ellipsis.addEventListener(\"click\", function() {\n",
" const rows = document.getElementsByClassName(\"p11139\");\n",
" for (let i = 0; i < rows.length; i++) {\n",
" const el = rows[i];\n",
" el.style.display = expanded ? \"none\" : \"table-row\";\n",
" }\n",
" ellipsis.innerHTML = expanded ? \"&hellip;)\" : \"&lsaquo;&lsaquo;&lsaquo;\";\n",
" expanded = !expanded;\n",
" });\n",
"})();\n",
"</script>\n"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 95
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-21T03:15:24.196237Z",
"start_time": "2025-02-21T03:15:09.989176Z"
}
},
"cell_type": "code",
"source": [
"count = 0\n",
"success = 0\n",
"\n",
"for name in os.listdir(os.path.join(root_path, \"日线行情 1990-2024\", \"分组行情\")):\n",
" if name.endswith(\"SZ.csv\"):\n",
" stock_df = load_stock(name.replace(\".csv\", \"\"))\n",
" if stock_df.empty or stock_df.size < 1000:\n",
" continue\n",
" bt = Backtest(stock_df, MACDStrategy, cash=10000, commission=.002, trade_on_close=True)\n",
" result = bt.run()\n",
" count += 1\n",
" final = result.iloc[4]\n",
" if final > 10000:\n",
" success += 1\n",
" print(f\"{name}: {result.iloc[4]} 胜率:{(success / count) * 100:.2f}%\")"
],
"id": "abcba3a2b27082af",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"300602.SZ.csv: 9519.828495999998 胜率0.00%\n",
"301335.SZ.csv: 9483.993636 胜率0.00%\n",
"300153.SZ.csv: 10945.991414000004 胜率33.33%\n",
"002719.SZ.csv: 10160.783446000001 胜率50.00%\n",
"002048.SZ.csv: 8827.930520000002 胜率40.00%\n",
"301182.SZ.csv: 9085.706827999997 胜率33.33%\n",
"300702.SZ.csv: 9187.587144000001 胜率28.57%\n",
"301235.SZ.csv: 9865.623893999997 胜率25.00%\n",
"300053.SZ.csv: 9265.564532000004 胜率22.22%\n",
"301082.SZ.csv: 9390.439036 胜率20.00%\n",
"002619.SZ.csv: 10311.905327999993 胜率27.27%\n",
"002148.SZ.csv: 9789.179133999996 胜率25.00%\n",
"300817.SZ.csv: 10137.570670000001 胜率30.77%\n",
"300917.SZ.csv: 8381.743184 胜率28.57%\n",
"000533.SZ.csv: 10497.018527999993 胜率33.33%\n",
"002282.SZ.csv: 10193.735793999997 胜率37.50%\n",
"301348.SZ.csv: 10061.892033999999 胜率41.18%\n",
"301419.SZ.csv: 9292.442044000001 胜率38.89%\n",
"002035.SZ.csv: 9591.023048000005 胜率36.84%\n",
"300399.SZ.csv: 12489.192386000006 胜率40.00%\n",
"301248.SZ.csv: 9710.557384000005 胜率38.10%\n",
"301519.SZ.csv: 9829.372 胜率36.36%\n",
"002382.SZ.csv: 9769.216531999997 胜率34.78%\n",
"300299.SZ.csv: 11216.701843999996 胜率37.50%\n",
"002664.SZ.csv: 11549.794853999994 胜率40.00%\n",
"002135.SZ.csv: 10007.526262000007 胜率42.31%\n",
"002971.SZ.csv: 8151.281703999998 胜率40.74%\n",
"002871.SZ.csv: 9211.733576000002 胜率39.29%\n",
"002912.SZ.csv: 10146.829072000006 胜率41.38%\n",
"300809.SZ.csv: 9588.934147999997 胜率40.00%\n",
"002812.SZ.csv: 11656.421232000004 胜率41.94%\n",
"300909.SZ.csv: 8588.468658000002 胜率40.62%\n",
"002707.SZ.csv: 10577.020016000004 胜率42.42%\n",
"002056.SZ.csv: 9459.701375999995 胜率41.18%\n",
"002607.SZ.csv: 10173.426610000004 胜率42.86%\n",
"002156.SZ.csv: 10170.384258000006 胜率44.44%\n",
"000301.SZ.csv: 12005.214035999998 胜率45.95%\n",
"000550.SZ.csv: 9263.366957999995 胜率44.74%\n",
"300387.SZ.csv: 9745.065623999995 胜率43.59%\n",
"301356.SZ.csv: 10010.228 胜率45.00%\n",
"300661.SZ.csv: 20063.738909999993 胜率46.34%\n",
"300130.SZ.csv: 9971.323087999996 胜率45.24%\n",
"300287.SZ.csv: 10603.057631999996 胜率46.51%\n",
"301256.SZ.csv: 9861.662801999999 胜率45.45%\n",
"300761.SZ.csv: 9193.41177 胜率44.44%\n",
"300030.SZ.csv: 8977.232825999996 胜率43.48%\n",
"301507.SZ.csv: 9837.594000000001 胜率42.55%\n",
"301090.SZ.csv: 9703.311370000001 胜率41.67%\n",
"300041.SZ.csv: 10303.257277999997 胜率42.86%\n",
"300710.SZ.csv: 7537.6221040000055 胜率42.00%\n",
"301227.SZ.csv: 9468.773936 胜率41.18%\n",
"000983.SZ.csv: 9954.838291999995 胜率40.38%\n",
"301190.SZ.csv: 9659.340995999997 胜率39.62%\n",
"000883.SZ.csv: 10401.635018000003 胜率40.74%\n",
"300141.SZ.csv: 8340.2177 胜率40.00%\n",
"300610.SZ.csv: 9520.578048000001 胜率39.29%\n",
"301327.SZ.csv: 10206.100219999998 胜率40.35%\n",
"000521.SZ.csv: 10191.881714000003 胜率41.38%\n",
"000796.SZ.csv: 12470.941844 胜率42.37%\n",
"300905.SZ.csv: 10152.944361999998 胜率43.33%\n",
"000421.SZ.csv: 9726.993368 胜率42.62%\n",
"300805.SZ.csv: 10069.385488000002 胜率43.55%\n",
"002127.SZ.csv: 9692.408426 胜率42.86%\n",
"002676.SZ.csv: 9871.942907999992 胜率42.19%\n",
"002390.SZ.csv: 9876.528632000001 胜率41.54%\n",
"002027.SZ.csv: 10055.298240000006 胜率42.42%\n",
"002776.SZ.csv: 9355.59108 胜率41.79%\n",
"002290.SZ.csv: 9321.72332 胜率41.18%\n",
"002863.SZ.csv: 9525.297927999994 胜率40.58%\n",
"300978.SZ.csv: 9571.490240000003 胜率40.00%\n",
"002963.SZ.csv: 8944.589947999995 胜率39.44%\n",
"300878.SZ.csv: 9356.324578000003 胜率38.89%\n",
"000788.SZ.csv: 9341.254410000003 胜率38.36%\n",
"002800.SZ.csv: 8875.538516 胜率37.84%\n",
"000688.SZ.csv: 9574.79905999999 胜率37.33%\n",
"002900.SZ.csv: 9870.057568 胜率36.84%\n",
"301568.SZ.csv: 9807.006 胜率36.36%\n",
"301239.SZ.csv: 11019.801569999998 胜率37.18%\n",
"002144.SZ.csv: 10778.951788000004 胜率37.97%\n",
"002615.SZ.csv: 9889.889564000001 胜率37.50%\n",
"301468.SZ.csv: 9846.74 胜率37.04%\n",
"301339.SZ.csv: 9535.735184 胜率36.59%\n",
"002044.SZ.csv: 11152.365348000005 胜率37.35%\n",
"002715.SZ.csv: 10430.780532000004 胜率38.10%\n",
"300966.SZ.csv: 9890.578855999998 胜率37.65%\n",
"300866.SZ.csv: 11812.275567999995 胜率38.37%\n",
"300022.SZ.csv: 10363.765635999996 胜率39.08%\n",
"301515.SZ.csv: 9783.928726000002 胜率38.64%\n",
"300773.SZ.csv: 9466.590149999998 胜率38.20%\n",
"300295.SZ.csv: 10939.342843999999 胜率38.89%\n",
"002139.SZ.csv: 9453.461012000002 胜率38.46%\n",
"002668.SZ.csv: 11227.651740000001 胜率39.13%\n",
"300122.SZ.csv: 13784.496112000006 胜率39.78%\n",
"300673.SZ.csv: 8973.484199999994 胜率39.36%\n",
"002039.SZ.csv: 9494.157394000002 胜率38.95%\n",
"002768.SZ.csv: 7782.210227999998 胜率38.54%\n",
"300395.SZ.csv: 9365.419239999988 胜率38.14%\n",
"300933.SZ.csv: 9487.828085999998 胜率37.76%\n",
"002828.SZ.csv: 8358.072293999998 胜率37.37%\n",
"000517.SZ.csv: 10041.592438000001 胜率38.00%\n",
"300833.SZ.csv: 9470.562539999997 胜率37.62%\n",
"002928.SZ.csv: 9542.208591999997 胜率37.25%\n",
"000417.SZ.csv: 10067.213900000002 胜率37.86%\n",
"301211.SZ.csv: 10972.102878 胜率38.46%\n",
"300726.SZ.csv: 8425.234223999998 胜率38.10%\n",
"300077.SZ.csv: 11780.844837999999 胜率38.68%\n",
"300591.SZ.csv: 9436.061188000001 胜率38.32%\n",
"301311.SZ.csv: 9945.208452 胜率37.96%\n",
"300626.SZ.csv: 9386.148637999999 胜率37.61%\n",
"300177.SZ.csv: 9011.063890000001 胜率37.27%\n",
"300491.SZ.csv: 10052.257583999997 胜率37.84%\n",
"002855.SZ.csv: 9245.365823999999 胜率37.50%\n",
"002955.SZ.csv: 7554.4666499999985 胜率37.17%\n",
"002640.SZ.csv: 10273.371091999996 胜率37.72%\n",
"002111.SZ.csv: 8933.251687999998 胜率37.39%\n",
"002740.SZ.csv: 10135.691998000008 胜率37.93%\n",
"002011.SZ.csv: 9243.965426000002 胜率37.61%\n",
"002623.SZ.csv: 13090.688944000001 胜率38.14%\n",
"002172.SZ.csv: 10509.94092799999 胜率38.66%\n",
"002494.SZ.csv: 10602.247872000004 胜率39.17%\n",
"300738.SZ.csv: 9331.140395999997 胜率38.84%\n",
"300069.SZ.csv: 9889.920100000003 胜率38.52%\n",
"002723.SZ.csv: 9526.232450000003 胜率38.21%\n",
"002072.SZ.csv: 11292.011394 胜率38.71%\n",
"300638.SZ.csv: 11990.929651999993 胜率39.20%\n",
"300169.SZ.csv: 9745.924591999992 胜率38.89%\n",
"002594.SZ.csv: 7510.792000000005 胜率38.58%\n",
"002836.SZ.csv: 9626.417934000005 胜率38.28%\n",
"000509.SZ.csv: 9872.115722000004 胜率37.98%\n",
"001289.SZ.csv: 9879.595522000001 胜率37.69%\n",
"002936.SZ.csv: 9912.525302000002 胜率37.40%\n",
"000409.SZ.csv: 11377.516533999995 胜率37.88%\n",
"001389.SZ.csv: 10000.0 胜率37.59%\n",
"300745.SZ.csv: 9994.81873 胜率37.31%\n",
"301272.SZ.csv: 9698.32 胜率37.04%\n",
"300014.SZ.csv: 12071.207913999997 胜率37.50%\n",
"300645.SZ.csv: 7534.546742000009 胜率37.23%\n",
"301372.SZ.csv: 9490.588 胜率36.96%\n",
"300114.SZ.csv: 9445.48086 胜率36.69%\n",
"300950.SZ.csv: 9559.671058 胜率36.43%\n",
"300850.SZ.csv: 10161.139240000002 胜率36.88%\n",
"300821.SZ.csv: 10678.778544 胜率37.32%\n",
"000505.SZ.csv: 10114.488989999998 胜率37.76%\n",
"300921.SZ.csv: 8390.758202000005 胜率37.50%\n",
"300483.SZ.csv: 8274.767106 胜率37.24%\n",
"300165.SZ.csv: 8940.145671999991 胜率36.99%\n",
"301303.SZ.csv: 9732.397175999999 胜率36.73%\n",
"300634.SZ.csv: 8067.565702000003 胜率36.49%\n",
"002598.SZ.csv: 9403.05394800001 胜率36.24%\n",
"300583.SZ.csv: 10538.833442000005 胜率36.67%\n",
"002498.SZ.csv: 9998.372069999996 胜率36.42%\n",
"300065.SZ.csv: 9539.798432 胜率36.18%\n",
"301203.SZ.csv: 9954.219616 胜率35.95%\n",
"002947.SZ.csv: 11105.890109999997 胜率36.36%\n",
"002847.SZ.csv: 12481.039889999995 胜率36.77%\n",
"002003.SZ.csv: 9504.926315999994 胜率36.54%\n",
"002752.SZ.csv: 9859.230991999993 胜率36.31%\n",
"300118.SZ.csv: 7735.671107999999 胜率36.08%\n",
"300649.SZ.csv: 8502.335930000003 胜率35.85%\n",
"002103.SZ.csv: 10666.264657999993 胜率36.25%\n",
"002652.SZ.csv: 9801.958144000002 胜率36.02%\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[0;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)",
"\u001B[0;32m/var/folders/7h/w0cmp4zj6mn9br_6nyj310m40000gn/T/ipykernel_73705/2811901891.py\u001B[0m in \u001B[0;36m?\u001B[0;34m()\u001B[0m\n\u001B[1;32m 6\u001B[0m \u001B[0mstock_df\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mload_stock\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mreplace\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m\".csv\"\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m\"\"\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 7\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mstock_df\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mempty\u001B[0m \u001B[0;32mor\u001B[0m \u001B[0mstock_df\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0msize\u001B[0m \u001B[0;34m<\u001B[0m \u001B[0;36m1000\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 8\u001B[0m \u001B[0;32mcontinue\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9\u001B[0m \u001B[0mbt\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mBacktest\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mstock_df\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mMACDStrategy\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcash\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;36m10000\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcommission\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;36m.002\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mtrade_on_close\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mTrue\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 10\u001B[0;31m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mbt\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mrun\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 11\u001B[0m \u001B[0mcount\u001B[0m \u001B[0;34m+=\u001B[0m \u001B[0;36m1\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 12\u001B[0m \u001B[0mfinal\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mresult\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0miloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;36m4\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 13\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mfinal\u001B[0m \u001B[0;34m>\u001B[0m \u001B[0;36m10000\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n",
"\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/finance-G8vNaf2C-py3.13/lib/python3.13/site-packages/backtesting/backtesting.py\u001B[0m in \u001B[0;36m?\u001B[0;34m(self, **kwargs)\u001B[0m\n\u001B[1;32m 1337\u001B[0m \u001B[0;31m# for future `indicator._opts['data'].index` calls to work\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1338\u001B[0m \u001B[0mdata\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_set_length\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_data\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1339\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1340\u001B[0m \u001B[0mequity\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mpd\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mSeries\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbroker\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_equity\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mbfill\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mfillna\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbroker\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_cash\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1341\u001B[0;31m self._results = compute_stats(\n\u001B[0m\u001B[1;32m 1342\u001B[0m \u001B[0mtrades\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mbroker\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mclosed_trades\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1343\u001B[0m \u001B[0mequity\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mequity\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1344\u001B[0m \u001B[0mohlc_data\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_data\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n",
"\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/finance-G8vNaf2C-py3.13/lib/python3.13/site-packages/backtesting/_stats.py\u001B[0m in \u001B[0;36m?\u001B[0;34m(***failed resolving arguments***)\u001B[0m\n\u001B[1;32m 148\u001B[0m \u001B[0;31m# and simple standard deviation\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 149\u001B[0m \u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Sharpe Ratio'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Return (Ann.) [%]'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m-\u001B[0m \u001B[0mrisk_free_rate\u001B[0m \u001B[0;34m*\u001B[0m \u001B[0;36m100\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m/\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Volatility (Ann.) [%]'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;32mor\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mnan\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;31m# noqa: E501\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 150\u001B[0m \u001B[0;31m# Our Sortino mismatches `empyrical.sortino_ratio()` because they use arithmetic mean return\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 151\u001B[0m \u001B[0;32mwith\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0merrstate\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mdivide\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;34m'ignore'\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 152\u001B[0;31m \u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Sortino Ratio'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0mannualized_return\u001B[0m \u001B[0;34m-\u001B[0m \u001B[0mrisk_free_rate\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m/\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0msqrt\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmean\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mday_returns\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mclip\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m-\u001B[0m\u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0minf\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;36m0\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m**\u001B[0m\u001B[0;36m2\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m*\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0msqrt\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mannual_trading_days\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;31m# noqa: E501\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 153\u001B[0m \u001B[0mmax_dd\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m-\u001B[0m\u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mnan_to_num\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mdd\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmax\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 154\u001B[0m \u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Calmar Ratio'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mannualized_return\u001B[0m \u001B[0;34m/\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0;34m-\u001B[0m\u001B[0mmax_dd\u001B[0m \u001B[0;32mor\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mnan\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 155\u001B[0m \u001B[0ms\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m'Max. Drawdown [%]'\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mmax_dd\u001B[0m \u001B[0;34m*\u001B[0m \u001B[0;36m100\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n",
"\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/finance-G8vNaf2C-py3.13/lib/python3.13/site-packages/pandas/core/generic.py\u001B[0m in \u001B[0;36m?\u001B[0;34m(self, lower, upper, axis, inplace, **kwargs)\u001B[0m\n\u001B[1;32m 9071\u001B[0m \u001B[0;31m# so ignore\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9072\u001B[0m \u001B[0;31m# GH 19992\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9073\u001B[0m \u001B[0;31m# numpy doesn't drop a list-like bound containing NaN\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9074\u001B[0m \u001B[0misna_lower\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0misna\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mlower\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 9075\u001B[0;31m \u001B[0;32mif\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0mis_list_like\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mlower\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 9076\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0many\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0misna_lower\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9077\u001B[0m \u001B[0mlower\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;32mNone\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 9078\u001B[0m \u001B[0;32melif\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mall\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0misna_lower\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n",
"\u001B[0;31mKeyboardInterrupt\u001B[0m: "
]
}
],
"execution_count": 81
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}