Created
August 17, 2020 09:22
-
-
Save capm/8cdc6cb1e1a31e465307c042deec54b7 to your computer and use it in GitHub Desktop.
FX Spiders
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.668828Z", | |
"start_time": "2020-08-17T03:28:00.540830Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 1;\n", | |
" var nbb_unformatted_code = \"%load_ext nb_black\";\n", | |
" var nbb_formatted_code = \"%load_ext nb_black\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%load_ext nb_black" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.684830Z", | |
"start_time": "2020-08-17T03:28:00.670830Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 2;\n", | |
" var nbb_unformatted_code = \"import re\\nimport pandas as pd\";\n", | |
" var nbb_formatted_code = \"import re\\nimport pandas as pd\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import re\n", | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.764832Z", | |
"start_time": "2020-08-17T03:28:00.686831Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 3;\n", | |
" var nbb_unformatted_code = \"from selenium import webdriver\";\n", | |
" var nbb_formatted_code = \"from selenium import webdriver\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from selenium import webdriver" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.780830Z", | |
"start_time": "2020-08-17T03:28:00.767832Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 4;\n", | |
" var nbb_unformatted_code = \"str_date = pd.to_datetime(\\\"today\\\").strftime(\\\"%Y%m%d\\\")\";\n", | |
" var nbb_formatted_code = \"str_date = pd.to_datetime(\\\"today\\\").strftime(\\\"%Y%m%d\\\")\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"str_date = pd.to_datetime(\"today\").strftime(\"%Y%m%d\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.796835Z", | |
"start_time": "2020-08-17T03:28:00.781832Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 5;\n", | |
" var nbb_unformatted_code = \"str_time = pd.to_datetime(\\\"today\\\").strftime(\\\"%H%M\\\")\";\n", | |
" var nbb_formatted_code = \"str_time = pd.to_datetime(\\\"today\\\").strftime(\\\"%H%M\\\")\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"str_time = pd.to_datetime(\"today\").strftime(\"%H%M\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.811832Z", | |
"start_time": "2020-08-17T03:28:00.799830Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 6;\n", | |
" var nbb_unformatted_code = \"db_fx = dict()\\ndb_fx[str_date] = dict()\\ndb_fx[str_date][str_time] = dict()\";\n", | |
" var nbb_formatted_code = \"db_fx = dict()\\ndb_fx[str_date] = dict()\\ndb_fx[str_date][str_time] = dict()\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx = dict()\n", | |
"db_fx[str_date] = dict()\n", | |
"db_fx[str_date][str_time] = dict()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.827830Z", | |
"start_time": "2020-08-17T03:28:00.813833Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 7;\n", | |
" var nbb_unformatted_code = \"var_regex = r\\\"[1-9]\\\\d*\\\\.[1-9]\\\\d*\\\"\";\n", | |
" var nbb_formatted_code = \"var_regex = r\\\"[1-9]\\\\d*\\\\.[1-9]\\\\d*\\\"\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"var_regex = r\"[1-9]\\d*\\.[1-9]\\d*\"" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Environment variables" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.842830Z", | |
"start_time": "2020-08-17T03:28:00.831832Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 8;\n", | |
" var nbb_unformatted_code = \"var_headers = {\\n \\\"User-Agent\\\": \\\"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36\\\"\\n}\";\n", | |
" var nbb_formatted_code = \"var_headers = {\\n \\\"User-Agent\\\": \\\"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36\\\"\\n}\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"var_headers = {\n", | |
" \"User-Agent\": \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36\"\n", | |
"}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.857829Z", | |
"start_time": "2020-08-17T03:28:00.844831Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 9;\n", | |
" var nbb_unformatted_code = \"CHROMEDRIVER_PATH = \\\"driver/chromedriver.exe\\\"\";\n", | |
" var nbb_formatted_code = \"CHROMEDRIVER_PATH = \\\"driver/chromedriver.exe\\\"\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"CHROMEDRIVER_PATH = \"driver/chromedriver.exe\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:00.873830Z", | |
"start_time": "2020-08-17T03:28:00.859830Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 10;\n", | |
" var nbb_unformatted_code = \"chrome_options = webdriver.ChromeOptions()\\nchrome_options.headless = True\";\n", | |
" var nbb_formatted_code = \"chrome_options = webdriver.ChromeOptions()\\nchrome_options.headless = True\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"chrome_options = webdriver.ChromeOptions()\n", | |
"chrome_options.headless = True" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:03.945283Z", | |
"start_time": "2020-08-17T03:28:00.874831Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 11;\n", | |
" var nbb_unformatted_code = \"driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=chrome_options)\";\n", | |
" var nbb_formatted_code = \"driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=chrome_options)\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=chrome_options)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:03.960310Z", | |
"start_time": "2020-08-17T03:28:03.948284Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 12;\n", | |
" var nbb_unformatted_code = \"var_urls = dict(\\n CambioSeguro=\\\"https://cambioseguro.com/\\\",\\n CambistaInka=\\\"https://www.cambistainka.com/admin/obtenertipocambio.php\\\",\\n DecisionCapital=\\\"https://www.decision-capital.com/fx/\\\",\\n JetPeru=\\\"http://www.jetperu.com.pe/\\\",\\n Kambista=\\\"https://kambista.com/\\\",\\n Rextie=\\\"https://app.rextie.com/api/v1/fxrates/rate/?origin=home\\\",\\n WesternUnion=\\\"https://www.westernunionperu.pe/cambiodemoneda\\\",\\n)\";\n", | |
" var nbb_formatted_code = \"var_urls = dict(\\n CambioSeguro=\\\"https://cambioseguro.com/\\\",\\n CambistaInka=\\\"https://www.cambistainka.com/admin/obtenertipocambio.php\\\",\\n DecisionCapital=\\\"https://www.decision-capital.com/fx/\\\",\\n JetPeru=\\\"http://www.jetperu.com.pe/\\\",\\n Kambista=\\\"https://kambista.com/\\\",\\n Rextie=\\\"https://app.rextie.com/api/v1/fxrates/rate/?origin=home\\\",\\n WesternUnion=\\\"https://www.westernunionperu.pe/cambiodemoneda\\\",\\n)\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"var_urls = dict(\n", | |
" CambioSeguro=\"https://cambioseguro.com/\",\n", | |
" CambistaInka=\"https://www.cambistainka.com/admin/obtenertipocambio.php\",\n", | |
" DecisionCapital=\"https://www.decision-capital.com/fx/\",\n", | |
" JetPeru=\"http://www.jetperu.com.pe/\",\n", | |
" Kambista=\"https://kambista.com/\",\n", | |
" Rextie=\"https://app.rextie.com/api/v1/fxrates/rate/?origin=home\",\n", | |
" WesternUnion=\"https://www.westernunionperu.pe/cambiodemoneda\",\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Functions for brokers" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Cambio Seguro" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:03.992395Z", | |
"start_time": "2020-08-17T03:28:03.962281Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 13;\n", | |
" var nbb_unformatted_code = \"def get_fx_cambioseguro(str_broker, dict_head, str_regex):\\n # Libraries\\n import re\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract bid and ask\\n bid = soup.select(\\\".info-tasas\\\")[0].find_all(\\\"span\\\")[0].text.strip()\\n ask = soup.select(\\\".info-tasas\\\")[0].find_all(\\\"span\\\")[1].text.strip()\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": re.findall(str_regex, bid)[0],\\n \\\"ask\\\": re.findall(str_regex, ask)[0],\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_cambioseguro(str_broker, dict_head, str_regex):\\n # Libraries\\n import re\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract bid and ask\\n bid = soup.select(\\\".info-tasas\\\")[0].find_all(\\\"span\\\")[0].text.strip()\\n ask = soup.select(\\\".info-tasas\\\")[0].find_all(\\\"span\\\")[1].text.strip()\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": re.findall(str_regex, bid)[0],\\n \\\"ask\\\": re.findall(str_regex, ask)[0],\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_cambioseguro(str_broker, dict_head, str_regex):\n", | |
" # Libraries\n", | |
" import re\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" s.headers = dict_head\n", | |
" res = s.get(var_urls[str_broker])\n", | |
" if res.status_code != 200:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(res.text, \"html.parser\")\n", | |
" # Extract bid and ask\n", | |
" bid = soup.select(\".info-tasas\")[0].find_all(\"span\")[0].text.strip()\n", | |
" ask = soup.select(\".info-tasas\")[0].find_all(\"span\")[1].text.strip()\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": re.findall(str_regex, bid)[0],\n", | |
" \"ask\": re.findall(str_regex, ask)[0],\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:04.853097Z", | |
"start_time": "2020-08-17T03:28:03.993394Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 14;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(\\n get_fx_cambioseguro(\\\"CambioSeguro\\\", var_headers, var_regex)\\n)\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(\\n get_fx_cambioseguro(\\\"CambioSeguro\\\", var_headers, var_regex)\\n)\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(\n", | |
" get_fx_cambioseguro(\"CambioSeguro\", var_headers, var_regex)\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:04.868097Z", | |
"start_time": "2020-08-17T03:28:04.855067Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'}}}}" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 15;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Cambista Inka" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:40.094342Z", | |
"start_time": "2020-08-17T03:28:40.063337Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 18;\n", | |
" var nbb_unformatted_code = \"def get_fx_cambioseguro(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n f_dict_payload = {\\n \\\"cTipoOperacion\\\": \\\"01\\\",\\n \\\"nMontoDolares\\\": \\\"0\\\",\\n \\\"bEsInicial\\\": \\\"1\\\",\\n \\\"bEsTCPref\\\": \\\"0\\\",\\n }\\n res = s.post(var_urls[str_broker], data=f_dict_payload, headers=s.headers)\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Parse to JSON\\n f_dict_data = json.loads(str(soup))\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_dict_data[\\\"data\\\"][\\\"tipocambio\\\"][\\\"0\\\"][\\\"nTCCompra\\\"],\\n \\\"ask\\\": f_dict_data[\\\"data\\\"][\\\"tipocambio\\\"][\\\"0\\\"][\\\"nTCVenta\\\"],\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_cambioseguro(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n f_dict_payload = {\\n \\\"cTipoOperacion\\\": \\\"01\\\",\\n \\\"nMontoDolares\\\": \\\"0\\\",\\n \\\"bEsInicial\\\": \\\"1\\\",\\n \\\"bEsTCPref\\\": \\\"0\\\",\\n }\\n res = s.post(var_urls[str_broker], data=f_dict_payload, headers=s.headers)\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Parse to JSON\\n f_dict_data = json.loads(str(soup))\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_dict_data[\\\"data\\\"][\\\"tipocambio\\\"][\\\"0\\\"][\\\"nTCCompra\\\"],\\n \\\"ask\\\": f_dict_data[\\\"data\\\"][\\\"tipocambio\\\"][\\\"0\\\"][\\\"nTCVenta\\\"],\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_cambistainka(str_broker, dict_head):\n", | |
" # Libraries\n", | |
" import json\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" s.headers = dict_head\n", | |
" f_dict_payload = {\n", | |
" \"cTipoOperacion\": \"01\",\n", | |
" \"nMontoDolares\": \"0\",\n", | |
" \"bEsInicial\": \"1\",\n", | |
" \"bEsTCPref\": \"0\",\n", | |
" }\n", | |
" res = s.post(var_urls[str_broker], data=f_dict_payload, headers=s.headers)\n", | |
" if res.status_code != 200:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(res.text, \"html.parser\")\n", | |
" # Parse to JSON\n", | |
" f_dict_data = json.loads(str(soup))\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": f_dict_data[\"data\"][\"tipocambio\"][\"0\"][\"nTCCompra\"],\n", | |
" \"ask\": f_dict_data[\"data\"][\"tipocambio\"][\"0\"][\"nTCVenta\"],\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:46.295620Z", | |
"start_time": "2020-08-17T03:28:45.907826Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 19;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_cambioseguro(\\\"CambistaInka\\\", var_headers))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_cambioseguro(\\\"CambistaInka\\\", var_headers))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_cambistainka(\"CambistaInka\", var_headers))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:47.299319Z", | |
"start_time": "2020-08-17T03:28:47.282314Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'}}}}" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 20;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Decision Capital" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 134, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:30:00.295345Z", | |
"start_time": "2020-08-17T08:30:00.245345Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 134;\n", | |
" var nbb_unformatted_code = \"def get_fx_DCFX(str_broker, dict_head):\\n # Libraries\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n # If no connection then none\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse HTML\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract bid and ask\\n f_var_data = soup.findAll(\\n lambda tag: any([i.startswith(\\\"rate-\\\") for i in tag.attrs])\\n )\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_var_data[0].attrs[\\\"rate-buying\\\"],\\n \\\"ask\\\": f_var_data[0].attrs[\\\"rate-selling\\\"],\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_DCFX(str_broker, dict_head):\\n # Libraries\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n # If no connection then none\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse HTML\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract bid and ask\\n f_var_data = soup.findAll(\\n lambda tag: any([i.startswith(\\\"rate-\\\") for i in tag.attrs])\\n )\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_var_data[0].attrs[\\\"rate-buying\\\"],\\n \\\"ask\\\": f_var_data[0].attrs[\\\"rate-selling\\\"],\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_DCFX(str_broker, dict_head):\n", | |
" # Libraries\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" s.headers = dict_head\n", | |
" res = s.get(var_urls[str_broker])\n", | |
" # If no connection then none\n", | |
" if res.status_code != 200:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse HTML\n", | |
" soup = BeautifulSoup(res.text, \"html.parser\")\n", | |
" # Extract bid and ask\n", | |
" f_var_data = soup.findAll(\n", | |
" lambda tag: any([i.startswith(\"rate-\") for i in tag.attrs])\n", | |
" )\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": f_var_data[0].attrs[\"rate-buying\"],\n", | |
" \"ask\": f_var_data[0].attrs[\"rate-selling\"],\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:54.172796Z", | |
"start_time": "2020-08-17T03:28:52.522758Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 22;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_DCFX(\\\"DecisionCapital\\\", var_headers))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_DCFX(\\\"DecisionCapital\\\", var_headers))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_DCFX(\"DecisionCapital\", var_headers))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:54.316087Z", | |
"start_time": "2020-08-17T03:28:54.301986Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'},\n", | |
" 'DecisionCapital': {'bid': '3.55710', 'ask': '3.58710'}}}}" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 23;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### JetPeru" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:28:54.679121Z", | |
"start_time": "2020-08-17T03:28:54.657820Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 24;\n", | |
" var nbb_unformatted_code = \"def get_fx_jetperu(str_broker, sln_driver, str_regex):\\n # Libraries\\n import re\\n from selenium import webdriver\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n sln_driver.get(var_urls[str_broker])\\n # Parse html\\n soup = BeautifulSoup(sln_driver.page_source, \\\"html.parser\\\")\\n # Set a list with all website text\\n f_lst_text = soup.find_all(text=True)\\n # Get list with FX\\n f_str_fx = [t.parent.parent for t in f_lst_text if \\\"D\\u00f3lares (US$)\\\" in t][\\n 0\\n ].find_all(text=True)\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": [\\n re.findall(var_regex, x)[0] for x in f_str_fx if \\\"compra\\\" in x.lower()\\n ][0],\\n \\\"ask\\\": [\\n re.findall(var_regex, x)[0] for x in f_str_fx if \\\"venta\\\" in x.lower()\\n ][0],\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_jetperu(str_broker, sln_driver, str_regex):\\n # Libraries\\n import re\\n from selenium import webdriver\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n sln_driver.get(var_urls[str_broker])\\n # Parse html\\n soup = BeautifulSoup(sln_driver.page_source, \\\"html.parser\\\")\\n # Set a list with all website text\\n f_lst_text = soup.find_all(text=True)\\n # Get list with FX\\n f_str_fx = [t.parent.parent for t in f_lst_text if \\\"D\\u00f3lares (US$)\\\" in t][\\n 0\\n ].find_all(text=True)\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": [\\n re.findall(var_regex, x)[0] for x in f_str_fx if \\\"compra\\\" in x.lower()\\n ][0],\\n \\\"ask\\\": [\\n re.findall(var_regex, x)[0] for x in f_str_fx if \\\"venta\\\" in x.lower()\\n ][0],\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_jetperu(str_broker, sln_driver, str_regex):\n", | |
" # Libraries\n", | |
" import re\n", | |
" from selenium import webdriver\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" sln_driver.get(var_urls[str_broker])\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(sln_driver.page_source, \"html.parser\")\n", | |
" # Set a list with all website text\n", | |
" f_lst_text = soup.find_all(text=True)\n", | |
" # Get list with FX\n", | |
" f_str_fx = [t.parent.parent for t in f_lst_text if \"Dólares (US$)\" in t][\n", | |
" 0\n", | |
" ].find_all(text=True)\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": [\n", | |
" re.findall(var_regex, x)[0] for x in f_str_fx if \"compra\" in x.lower()\n", | |
" ][0],\n", | |
" \"ask\": [\n", | |
" re.findall(var_regex, x)[0] for x in f_str_fx if \"venta\" in x.lower()\n", | |
" ][0],\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:03.343953Z", | |
"start_time": "2020-08-17T03:28:55.106772Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 25;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_jetperu(\\\"JetPeru\\\", driver, var_regex))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_jetperu(\\\"JetPeru\\\", driver, var_regex))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_jetperu(\"JetPeru\", driver, var_regex))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:03.486953Z", | |
"start_time": "2020-08-17T03:29:03.471923Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'},\n", | |
" 'DecisionCapital': {'bid': '3.55710', 'ask': '3.58710'},\n", | |
" 'JetPeru': {'bid': '3.562', 'ask': '3.586'}}}}" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 26;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Kambista" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:03.645954Z", | |
"start_time": "2020-08-17T03:29:03.615925Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 27;\n", | |
" var nbb_unformatted_code = \"def get_fx_kambista(str_broker, dict_head):\\n # Libraries\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": soup.select(\\\"#valcompra\\\")[0].get_text(strip=True),\\n \\\"ask\\\": soup.select(\\\"#valventa\\\")[0].get_text(strip=True),\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_kambista(str_broker, dict_head):\\n # Libraries\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n if res.status_code != 200:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"html.parser\\\")\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": soup.select(\\\"#valcompra\\\")[0].get_text(strip=True),\\n \\\"ask\\\": soup.select(\\\"#valventa\\\")[0].get_text(strip=True),\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_kambista(str_broker, dict_head):\n", | |
" # Libraries\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" s.headers = dict_head\n", | |
" res = s.get(var_urls[str_broker])\n", | |
" if res.status_code != 200:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(res.text, \"html.parser\")\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": soup.select(\"#valcompra\")[0].get_text(strip=True),\n", | |
" \"ask\": soup.select(\"#valventa\")[0].get_text(strip=True),\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:05.220687Z", | |
"start_time": "2020-08-17T03:29:03.878925Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 28;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_kambista(\\\"Kambista\\\", var_headers))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_kambista(\\\"Kambista\\\", var_headers))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_kambista(\"Kambista\", var_headers))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:05.363602Z", | |
"start_time": "2020-08-17T03:29:05.349601Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'},\n", | |
" 'DecisionCapital': {'bid': '3.55710', 'ask': '3.58710'},\n", | |
" 'JetPeru': {'bid': '3.562', 'ask': '3.586'},\n", | |
" 'Kambista': {'bid': '3.55', 'ask': '3.588'}}}}" | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 29;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Rextie" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:05.522717Z", | |
"start_time": "2020-08-17T03:29:05.492719Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 30;\n", | |
" var nbb_unformatted_code = \"def get_fx_rextie(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Set payload\\n f_var_payload = {\\n \\\"source_currency\\\": \\\"USD\\\",\\n \\\"target_currency\\\": \\\"PEN\\\",\\n \\\"source_amount\\\": \\\"1000\\\",\\n }\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.post(var_urls[str_broker], data=f_var_payload)\\n if res.status_code != 200 and res.status_code != 201:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"lxml\\\")\\n # Convert to JSON\\n f_var_data = json.loads(soup.select(\\\"p\\\")[0].text)\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_var_data[\\\"fx_rate_buy\\\"],\\n \\\"ask\\\": f_var_data[\\\"fx_rate_sell\\\"],\\n }\\n }\";\n", | |
" var nbb_formatted_code = \"def get_fx_rextie(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Set payload\\n f_var_payload = {\\n \\\"source_currency\\\": \\\"USD\\\",\\n \\\"target_currency\\\": \\\"PEN\\\",\\n \\\"source_amount\\\": \\\"1000\\\",\\n }\\n # Get request\\n s = requests.Session()\\n s.headers = dict_head\\n res = s.post(var_urls[str_broker], data=f_var_payload)\\n if res.status_code != 200 and res.status_code != 201:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(res.text, \\\"lxml\\\")\\n # Convert to JSON\\n f_var_data = json.loads(soup.select(\\\"p\\\")[0].text)\\n # Extract FX rate\\n return {\\n str_broker: {\\n \\\"bid\\\": f_var_data[\\\"fx_rate_buy\\\"],\\n \\\"ask\\\": f_var_data[\\\"fx_rate_sell\\\"],\\n }\\n }\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_rextie(str_broker, dict_head):\n", | |
" # Libraries\n", | |
" import json\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Set payload\n", | |
" f_var_payload = {\n", | |
" \"source_currency\": \"USD\",\n", | |
" \"target_currency\": \"PEN\",\n", | |
" \"source_amount\": \"1000\",\n", | |
" }\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" s.headers = dict_head\n", | |
" res = s.post(var_urls[str_broker], data=f_var_payload)\n", | |
" if res.status_code != 200 and res.status_code != 201:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(res.text, \"lxml\")\n", | |
" # Convert to JSON\n", | |
" f_var_data = json.loads(soup.select(\"p\")[0].text)\n", | |
" # Extract FX rate\n", | |
" return {\n", | |
" str_broker: {\n", | |
" \"bid\": f_var_data[\"fx_rate_buy\"],\n", | |
" \"ask\": f_var_data[\"fx_rate_sell\"],\n", | |
" }\n", | |
" }" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:06.417797Z", | |
"start_time": "2020-08-17T03:29:05.760934Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 31;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_rextie(\\\"Rextie\\\", var_headers))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_rextie(\\\"Rextie\\\", var_headers))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_rextie(\"Rextie\", var_headers))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:06.556672Z", | |
"start_time": "2020-08-17T03:29:06.542666Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'},\n", | |
" 'DecisionCapital': {'bid': '3.55710', 'ask': '3.58710'},\n", | |
" 'JetPeru': {'bid': '3.562', 'ask': '3.586'},\n", | |
" 'Kambista': {'bid': '3.55', 'ask': '3.588'},\n", | |
" 'Rextie': {'bid': '3.5566', 'ask': '3.5860'}}}}" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 32;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### WesternUnion" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Probar con dict_head different than `{\"User-Agent\": \"Mozilla/5.0\"}`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 135, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:31:14.672697Z", | |
"start_time": "2020-08-17T08:31:14.633668Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 135;\n", | |
" var nbb_unformatted_code = \"def get_fx_WUFX(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n # s.headers = {\\\"User-Agent\\\": \\\"Mozilla/5.0\\\"}\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n # Parse HTML\\n soup = BeautifulSoup(res.text, \\\"lxml\\\")\\n # Get payload\\n f_var_payload = {\\n item[\\\"name\\\"]: item.get(\\\"value\\\", \\\"\\\") for item in soup.select(\\\"input[name]\\\")\\n }\\n\\n # Update payload\\n f_var_payload[\\\"monto\\\"] = 1000\\n f_var_payload[\\\"moneda\\\"] = 2\\n f_var_payload[\\\"tipo\\\"] = 1\\n del f_var_payload[\\\"SolesToDolares\\\"]\\n del f_var_payload[\\\"InpAmount1\\\"]\\n del f_var_payload[\\\"InpAmount2\\\"]\\n del f_var_payload[\\\"captcha\\\"]\\n\\n # Post request\\n req = s.post(\\n \\\"https://www.westernunionperu.pe/cambiodemoneda/Operation/PostTipoCambio\\\",\\n data=f_var_payload,\\n )\\n if req.status_code != 200 and req.status_code != 201:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(req.text, \\\"lxml\\\")\\n # Convert to JSON\\n f_var_data = json.loads(soup.select(\\\"p\\\")[0].text)\\n # Extract FX rate\\n return {str_broker: {\\\"bid\\\": f_var_data[\\\"DT_Compra\\\"], \\\"ask\\\": f_var_data[\\\"DT_Venta\\\"]}}\";\n", | |
" var nbb_formatted_code = \"def get_fx_WUFX(str_broker, dict_head):\\n # Libraries\\n import json\\n import requests\\n from bs4 import BeautifulSoup\\n\\n # Get request\\n s = requests.Session()\\n # s.headers = {\\\"User-Agent\\\": \\\"Mozilla/5.0\\\"}\\n s.headers = dict_head\\n res = s.get(var_urls[str_broker])\\n # Parse HTML\\n soup = BeautifulSoup(res.text, \\\"lxml\\\")\\n # Get payload\\n f_var_payload = {\\n item[\\\"name\\\"]: item.get(\\\"value\\\", \\\"\\\") for item in soup.select(\\\"input[name]\\\")\\n }\\n\\n # Update payload\\n f_var_payload[\\\"monto\\\"] = 1000\\n f_var_payload[\\\"moneda\\\"] = 2\\n f_var_payload[\\\"tipo\\\"] = 1\\n del f_var_payload[\\\"SolesToDolares\\\"]\\n del f_var_payload[\\\"InpAmount1\\\"]\\n del f_var_payload[\\\"InpAmount2\\\"]\\n del f_var_payload[\\\"captcha\\\"]\\n\\n # Post request\\n req = s.post(\\n \\\"https://www.westernunionperu.pe/cambiodemoneda/Operation/PostTipoCambio\\\",\\n data=f_var_payload,\\n )\\n if req.status_code != 200 and req.status_code != 201:\\n return dict(broker=str_broker, bid=None, ask=None)\\n # Parse html\\n soup = BeautifulSoup(req.text, \\\"lxml\\\")\\n # Convert to JSON\\n f_var_data = json.loads(soup.select(\\\"p\\\")[0].text)\\n # Extract FX rate\\n return {str_broker: {\\\"bid\\\": f_var_data[\\\"DT_Compra\\\"], \\\"ask\\\": f_var_data[\\\"DT_Venta\\\"]}}\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"def get_fx_WUFX(str_broker, dict_head):\n", | |
" # Libraries\n", | |
" import json\n", | |
" import requests\n", | |
" from bs4 import BeautifulSoup\n", | |
"\n", | |
" # Get request\n", | |
" s = requests.Session()\n", | |
" # s.headers = {\"User-Agent\": \"Mozilla/5.0\"}\n", | |
" s.headers = dict_head\n", | |
" res = s.get(var_urls[str_broker])\n", | |
" # Parse HTML\n", | |
" soup = BeautifulSoup(res.text, \"lxml\")\n", | |
" # Get payload\n", | |
" f_var_payload = {\n", | |
" item[\"name\"]: item.get(\"value\", \"\") for item in soup.select(\"input[name]\")\n", | |
" }\n", | |
"\n", | |
" # Update payload\n", | |
" f_var_payload[\"monto\"] = 1000\n", | |
" f_var_payload[\"moneda\"] = 2\n", | |
" f_var_payload[\"tipo\"] = 1\n", | |
" del f_var_payload[\"SolesToDolares\"]\n", | |
" del f_var_payload[\"InpAmount1\"]\n", | |
" del f_var_payload[\"InpAmount2\"]\n", | |
" del f_var_payload[\"captcha\"]\n", | |
"\n", | |
" # Post request\n", | |
" req = s.post(\n", | |
" \"https://www.westernunionperu.pe/cambiodemoneda/Operation/PostTipoCambio\",\n", | |
" data=f_var_payload,\n", | |
" )\n", | |
" if req.status_code != 200 and req.status_code != 201:\n", | |
" return dict(broker=str_broker, bid=None, ask=None)\n", | |
" # Parse html\n", | |
" soup = BeautifulSoup(req.text, \"lxml\")\n", | |
" # Convert to JSON\n", | |
" f_var_data = json.loads(soup.select(\"p\")[0].text)\n", | |
" # Extract FX rate\n", | |
" return {str_broker: {\"bid\": f_var_data[\"DT_Compra\"], \"ask\": f_var_data[\"DT_Venta\"]}}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:07.947019Z", | |
"start_time": "2020-08-17T03:29:06.968846Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 34;\n", | |
" var nbb_unformatted_code = \"db_fx[str_date][str_time].update(get_fx_WUFX(\\\"WesternUnion\\\", var_headers))\";\n", | |
" var nbb_formatted_code = \"db_fx[str_date][str_time].update(get_fx_WUFX(\\\"WesternUnion\\\", var_headers))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx[str_date][str_time].update(get_fx_WUFX(\"WesternUnion\", var_headers))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:08.086827Z", | |
"start_time": "2020-08-17T03:29:08.073231Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'20200816': {'2228': {'CambioSeguro': {'bid': '3.5600', 'ask': '3.5880'},\n", | |
" 'CambistaInka': {'bid': '3.5650', 'ask': '3.5850'},\n", | |
" 'DecisionCapital': {'bid': '3.55710', 'ask': '3.58710'},\n", | |
" 'JetPeru': {'bid': '3.562', 'ask': '3.586'},\n", | |
" 'Kambista': {'bid': '3.55', 'ask': '3.588'},\n", | |
" 'Rextie': {'bid': '3.5566', 'ask': '3.5860'},\n", | |
" 'WesternUnion': {'bid': 3.563, 'ask': 3.588}}}}" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 35;\n", | |
" var nbb_unformatted_code = \"db_fx\";\n", | |
" var nbb_formatted_code = \"db_fx\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"db_fx" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:26.324621Z", | |
"start_time": "2020-08-17T03:29:26.314981Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 36;\n", | |
" var nbb_unformatted_code = \"import json\";\n", | |
" var nbb_formatted_code = \"import json\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import json" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:26.775880Z", | |
"start_time": "2020-08-17T03:29:26.762908Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{\n", | |
" \"20200816\": {\n", | |
" \"2228\": {\n", | |
" \"CambioSeguro\": {\n", | |
" \"bid\": \"3.5600\",\n", | |
" \"ask\": \"3.5880\"\n", | |
" },\n", | |
" \"CambistaInka\": {\n", | |
" \"bid\": \"3.5650\",\n", | |
" \"ask\": \"3.5850\"\n", | |
" },\n", | |
" \"DecisionCapital\": {\n", | |
" \"bid\": \"3.55710\",\n", | |
" \"ask\": \"3.58710\"\n", | |
" },\n", | |
" \"JetPeru\": {\n", | |
" \"bid\": \"3.562\",\n", | |
" \"ask\": \"3.586\"\n", | |
" },\n", | |
" \"Kambista\": {\n", | |
" \"bid\": \"3.55\",\n", | |
" \"ask\": \"3.588\"\n", | |
" },\n", | |
" \"Rextie\": {\n", | |
" \"bid\": \"3.5566\",\n", | |
" \"ask\": \"3.5860\"\n", | |
" },\n", | |
" \"WesternUnion\": {\n", | |
" \"bid\": 3.563,\n", | |
" \"ask\": 3.588\n", | |
" }\n", | |
" }\n", | |
" }\n", | |
"}\n" | |
] | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 37;\n", | |
" var nbb_unformatted_code = \"print(json.dumps(db_fx, indent=4))\";\n", | |
" var nbb_formatted_code = \"print(json.dumps(db_fx, indent=4))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(json.dumps(db_fx, indent=4))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:31.914752Z", | |
"start_time": "2020-08-17T03:29:31.905750Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 38;\n", | |
" var nbb_unformatted_code = \"import pandas as pd\";\n", | |
" var nbb_formatted_code = \"import pandas as pd\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:32.483480Z", | |
"start_time": "2020-08-17T03:29:32.355226Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 39;\n", | |
" var nbb_unformatted_code = \"import plotly.express as px\";\n", | |
" var nbb_formatted_code = \"import plotly.express as px\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import plotly.express as px" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 136, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:37:35.519982Z", | |
"start_time": "2020-08-17T08:37:35.487967Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>CambioSeguro</th>\n", | |
" <th>CambistaInka</th>\n", | |
" <th>DecisionCapital</th>\n", | |
" <th>JetPeru</th>\n", | |
" <th>Kambista</th>\n", | |
" <th>Rextie</th>\n", | |
" <th>WesternUnion</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>bid</th>\n", | |
" <td>3.5600</td>\n", | |
" <td>3.5650</td>\n", | |
" <td>3.55710</td>\n", | |
" <td>3.562</td>\n", | |
" <td>3.55</td>\n", | |
" <td>3.5566</td>\n", | |
" <td>3.563</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ask</th>\n", | |
" <td>3.5880</td>\n", | |
" <td>3.5850</td>\n", | |
" <td>3.58710</td>\n", | |
" <td>3.586</td>\n", | |
" <td>3.588</td>\n", | |
" <td>3.5860</td>\n", | |
" <td>3.588</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" CambioSeguro CambistaInka DecisionCapital JetPeru Kambista Rextie \\\n", | |
"bid 3.5600 3.5650 3.55710 3.562 3.55 3.5566 \n", | |
"ask 3.5880 3.5850 3.58710 3.586 3.588 3.5860 \n", | |
"\n", | |
" WesternUnion \n", | |
"bid 3.563 \n", | |
"ask 3.588 " | |
] | |
}, | |
"execution_count": 136, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 136;\n", | |
" var nbb_unformatted_code = \"tmp_df = pd.DataFrame(db_fx[str_date][str_time])\\ntmp_df\";\n", | |
" var nbb_formatted_code = \"tmp_df = pd.DataFrame(db_fx[str_date][str_time])\\ntmp_df\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df = pd.DataFrame(db_fx[str_date][str_time])\n", | |
"tmp_df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:44:03.034219Z", | |
"start_time": "2020-08-17T03:44:03.018194Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 62;\n", | |
" var nbb_unformatted_code = \"tmp_df.loc[\\\"spread\\\"] = tmp_df.loc[\\\"ask\\\"].astype(float) - tmp_df.loc[\\\"bid\\\"].astype(float)\";\n", | |
" var nbb_formatted_code = \"tmp_df.loc[\\\"spread\\\"] = tmp_df.loc[\\\"ask\\\"].astype(float) - tmp_df.loc[\\\"bid\\\"].astype(float)\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df.loc[\"spread\"] = tmp_df.loc[\"ask\"].astype(float) - tmp_df.loc[\"bid\"].astype(float)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 111, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T04:46:08.559776Z", | |
"start_time": "2020-08-17T04:46:08.535774Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>CambioSeguro</th>\n", | |
" <th>CambistaInka</th>\n", | |
" <th>DecisionCapital</th>\n", | |
" <th>JetPeru</th>\n", | |
" <th>Kambista</th>\n", | |
" <th>Rextie</th>\n", | |
" <th>WesternUnion</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>bid</th>\n", | |
" <td>3.5600</td>\n", | |
" <td>3.5650</td>\n", | |
" <td>3.55710</td>\n", | |
" <td>3.562</td>\n", | |
" <td>3.55</td>\n", | |
" <td>3.5566</td>\n", | |
" <td>3.563</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ask</th>\n", | |
" <td>3.5880</td>\n", | |
" <td>3.5850</td>\n", | |
" <td>3.58710</td>\n", | |
" <td>3.586</td>\n", | |
" <td>3.588</td>\n", | |
" <td>3.5860</td>\n", | |
" <td>3.588</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>spread</th>\n", | |
" <td>0.028</td>\n", | |
" <td>0.02</td>\n", | |
" <td>0.03</td>\n", | |
" <td>0.024</td>\n", | |
" <td>0.038</td>\n", | |
" <td>0.0294</td>\n", | |
" <td>0.025</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" CambioSeguro CambistaInka DecisionCapital JetPeru Kambista Rextie \\\n", | |
"bid 3.5600 3.5650 3.55710 3.562 3.55 3.5566 \n", | |
"ask 3.5880 3.5850 3.58710 3.586 3.588 3.5860 \n", | |
"spread 0.028 0.02 0.03 0.024 0.038 0.0294 \n", | |
"\n", | |
" WesternUnion \n", | |
"bid 3.563 \n", | |
"ask 3.588 \n", | |
"spread 0.025 " | |
] | |
}, | |
"execution_count": 111, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 111;\n", | |
" var nbb_unformatted_code = \"tmp_df\";\n", | |
" var nbb_formatted_code = \"tmp_df\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 120, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:26.760712Z", | |
"start_time": "2020-08-17T05:03:26.752722Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 120;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw = tmp_df.stack().reset_index()\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw = tmp_df.stack().reset_index()\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw = tmp_df.stack().reset_index()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 121, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:27.602208Z", | |
"start_time": "2020-08-17T05:03:27.583199Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 121;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw.columns = [\\\"quote\\\", \\\"broker\\\", \\\"rate\\\"]\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw.columns = [\\\"quote\\\", \\\"broker\\\", \\\"rate\\\"]\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw.columns = [\"quote\", \"broker\", \"rate\"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 122, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:28.327048Z", | |
"start_time": "2020-08-17T05:03:28.311075Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"quote object\n", | |
"broker object\n", | |
"rate object\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 122, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 122;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw.dtypes\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw.dtypes\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 123, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:32.063701Z", | |
"start_time": "2020-08-17T05:03:32.055702Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 123;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw[\\\"rate\\\"] = pd.to_numeric(tmp_df_raw[\\\"rate\\\"])\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw[\\\"rate\\\"] = pd.to_numeric(tmp_df_raw[\\\"rate\\\"])\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw[\"rate\"] = pd.to_numeric(tmp_df_raw[\"rate\"])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 124, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:32.931756Z", | |
"start_time": "2020-08-17T05:03:32.918760Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"quote object\n", | |
"broker object\n", | |
"rate float64\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 124, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 124;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw.dtypes\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw.dtypes\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 125, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:03:36.360162Z", | |
"start_time": "2020-08-17T05:03:36.335146Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>quote</th>\n", | |
" <th>broker</th>\n", | |
" <th>rate</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>bid</td>\n", | |
" <td>CambioSeguro</td>\n", | |
" <td>3.5600</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>bid</td>\n", | |
" <td>CambistaInka</td>\n", | |
" <td>3.5650</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>bid</td>\n", | |
" <td>DecisionCapital</td>\n", | |
" <td>3.5571</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>bid</td>\n", | |
" <td>JetPeru</td>\n", | |
" <td>3.5620</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>bid</td>\n", | |
" <td>Kambista</td>\n", | |
" <td>3.5500</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>bid</td>\n", | |
" <td>Rextie</td>\n", | |
" <td>3.5566</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>bid</td>\n", | |
" <td>WesternUnion</td>\n", | |
" <td>3.5630</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>ask</td>\n", | |
" <td>CambioSeguro</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>ask</td>\n", | |
" <td>CambistaInka</td>\n", | |
" <td>3.5850</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>ask</td>\n", | |
" <td>DecisionCapital</td>\n", | |
" <td>3.5871</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>ask</td>\n", | |
" <td>JetPeru</td>\n", | |
" <td>3.5860</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>ask</td>\n", | |
" <td>Kambista</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>ask</td>\n", | |
" <td>Rextie</td>\n", | |
" <td>3.5860</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>ask</td>\n", | |
" <td>WesternUnion</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>spread</td>\n", | |
" <td>CambioSeguro</td>\n", | |
" <td>0.0280</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>spread</td>\n", | |
" <td>CambistaInka</td>\n", | |
" <td>0.0200</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>spread</td>\n", | |
" <td>DecisionCapital</td>\n", | |
" <td>0.0300</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>spread</td>\n", | |
" <td>JetPeru</td>\n", | |
" <td>0.0240</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>spread</td>\n", | |
" <td>Kambista</td>\n", | |
" <td>0.0380</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>spread</td>\n", | |
" <td>Rextie</td>\n", | |
" <td>0.0294</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>spread</td>\n", | |
" <td>WesternUnion</td>\n", | |
" <td>0.0250</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" quote broker rate\n", | |
"0 bid CambioSeguro 3.5600\n", | |
"1 bid CambistaInka 3.5650\n", | |
"2 bid DecisionCapital 3.5571\n", | |
"3 bid JetPeru 3.5620\n", | |
"4 bid Kambista 3.5500\n", | |
"5 bid Rextie 3.5566\n", | |
"6 bid WesternUnion 3.5630\n", | |
"7 ask CambioSeguro 3.5880\n", | |
"8 ask CambistaInka 3.5850\n", | |
"9 ask DecisionCapital 3.5871\n", | |
"10 ask JetPeru 3.5860\n", | |
"11 ask Kambista 3.5880\n", | |
"12 ask Rextie 3.5860\n", | |
"13 ask WesternUnion 3.5880\n", | |
"14 spread CambioSeguro 0.0280\n", | |
"15 spread CambistaInka 0.0200\n", | |
"16 spread DecisionCapital 0.0300\n", | |
"17 spread JetPeru 0.0240\n", | |
"18 spread Kambista 0.0380\n", | |
"19 spread Rextie 0.0294\n", | |
"20 spread WesternUnion 0.0250" | |
] | |
}, | |
"execution_count": 125, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 125;\n", | |
" var nbb_unformatted_code = \"tmp_df_raw\";\n", | |
" var nbb_formatted_code = \"tmp_df_raw\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_raw" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 126, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:04:04.095263Z", | |
"start_time": "2020-08-17T05:04:04.073262Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 126;\n", | |
" var nbb_unformatted_code = \"tmp_df_px = tmp_df_raw[\\n (tmp_df_raw[\\\"quote\\\"] == \\\"bid\\\") | (tmp_df_raw[\\\"quote\\\"] == \\\"ask\\\")\\n]\\n# tmp_df_px.columns = [\\\"quote\\\", \\\"broker\\\", \\\"rate\\\"]\";\n", | |
" var nbb_formatted_code = \"tmp_df_px = tmp_df_raw[(tmp_df_raw[\\\"quote\\\"] == \\\"bid\\\") | (tmp_df_raw[\\\"quote\\\"] == \\\"ask\\\")]\\n# tmp_df_px.columns = [\\\"quote\\\", \\\"broker\\\", \\\"rate\\\"]\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_px = tmp_df_raw[(tmp_df_raw[\"quote\"] == \"bid\") | (tmp_df_raw[\"quote\"] == \"ask\")]\n", | |
"# tmp_df_px.columns = [\"quote\", \"broker\", \"rate\"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 127, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:04:05.214360Z", | |
"start_time": "2020-08-17T05:04:05.191358Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"quote object\n", | |
"broker object\n", | |
"rate float64\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 127, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 127;\n", | |
" var nbb_unformatted_code = \"tmp_df_px.dtypes\";\n", | |
" var nbb_formatted_code = \"tmp_df_px.dtypes\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_px.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 128, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:04:15.015124Z", | |
"start_time": "2020-08-17T05:04:15.000124Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>quote</th>\n", | |
" <th>broker</th>\n", | |
" <th>rate</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>bid</td>\n", | |
" <td>CambioSeguro</td>\n", | |
" <td>3.5600</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>bid</td>\n", | |
" <td>CambistaInka</td>\n", | |
" <td>3.5650</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>bid</td>\n", | |
" <td>DecisionCapital</td>\n", | |
" <td>3.5571</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>bid</td>\n", | |
" <td>JetPeru</td>\n", | |
" <td>3.5620</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>bid</td>\n", | |
" <td>Kambista</td>\n", | |
" <td>3.5500</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>bid</td>\n", | |
" <td>Rextie</td>\n", | |
" <td>3.5566</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>bid</td>\n", | |
" <td>WesternUnion</td>\n", | |
" <td>3.5630</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>ask</td>\n", | |
" <td>CambioSeguro</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>ask</td>\n", | |
" <td>CambistaInka</td>\n", | |
" <td>3.5850</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>ask</td>\n", | |
" <td>DecisionCapital</td>\n", | |
" <td>3.5871</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>ask</td>\n", | |
" <td>JetPeru</td>\n", | |
" <td>3.5860</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>ask</td>\n", | |
" <td>Kambista</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>ask</td>\n", | |
" <td>Rextie</td>\n", | |
" <td>3.5860</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>ask</td>\n", | |
" <td>WesternUnion</td>\n", | |
" <td>3.5880</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" quote broker rate\n", | |
"0 bid CambioSeguro 3.5600\n", | |
"1 bid CambistaInka 3.5650\n", | |
"2 bid DecisionCapital 3.5571\n", | |
"3 bid JetPeru 3.5620\n", | |
"4 bid Kambista 3.5500\n", | |
"5 bid Rextie 3.5566\n", | |
"6 bid WesternUnion 3.5630\n", | |
"7 ask CambioSeguro 3.5880\n", | |
"8 ask CambistaInka 3.5850\n", | |
"9 ask DecisionCapital 3.5871\n", | |
"10 ask JetPeru 3.5860\n", | |
"11 ask Kambista 3.5880\n", | |
"12 ask Rextie 3.5860\n", | |
"13 ask WesternUnion 3.5880" | |
] | |
}, | |
"execution_count": 128, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 128;\n", | |
" var nbb_unformatted_code = \"tmp_df_px\";\n", | |
" var nbb_formatted_code = \"tmp_df_px\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"tmp_df_px" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 133, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T05:27:40.271515Z", | |
"start_time": "2020-08-17T05:27:40.200521Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.plotly.v1+json": { | |
"config": { | |
"plotlyServerURL": "https://plot.ly" | |
}, | |
"data": [ | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "CambioSeguro", | |
"marker": { | |
"color": "#636efa" | |
}, | |
"name": "CambioSeguro", | |
"notched": false, | |
"offsetgroup": "CambioSeguro", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"CambioSeguro", | |
"CambioSeguro" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.56, | |
3.588 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "CambistaInka", | |
"marker": { | |
"color": "#EF553B" | |
}, | |
"name": "CambistaInka", | |
"notched": false, | |
"offsetgroup": "CambistaInka", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"CambistaInka", | |
"CambistaInka" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.565, | |
3.585 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "DecisionCapital", | |
"marker": { | |
"color": "#00cc96" | |
}, | |
"name": "DecisionCapital", | |
"notched": false, | |
"offsetgroup": "DecisionCapital", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"DecisionCapital", | |
"DecisionCapital" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.5571, | |
3.5871 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "JetPeru", | |
"marker": { | |
"color": "#ab63fa" | |
}, | |
"name": "JetPeru", | |
"notched": false, | |
"offsetgroup": "JetPeru", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"JetPeru", | |
"JetPeru" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.562, | |
3.5860000000000003 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "Kambista", | |
"marker": { | |
"color": "#FFA15A" | |
}, | |
"name": "Kambista", | |
"notched": false, | |
"offsetgroup": "Kambista", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"Kambista", | |
"Kambista" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.55, | |
3.588 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "Rextie", | |
"marker": { | |
"color": "#19d3f3" | |
}, | |
"name": "Rextie", | |
"notched": false, | |
"offsetgroup": "Rextie", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"Rextie", | |
"Rextie" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.5566, | |
3.586 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
}, | |
{ | |
"alignmentgroup": "True", | |
"hovertemplate": "broker=%{x}<br>rate=%{y}<extra></extra>", | |
"legendgroup": "WesternUnion", | |
"marker": { | |
"color": "#FF6692" | |
}, | |
"name": "WesternUnion", | |
"notched": false, | |
"offsetgroup": "WesternUnion", | |
"orientation": "v", | |
"showlegend": true, | |
"type": "box", | |
"x": [ | |
"WesternUnion", | |
"WesternUnion" | |
], | |
"x0": " ", | |
"xaxis": "x", | |
"y": [ | |
3.563, | |
3.588 | |
], | |
"y0": " ", | |
"yaxis": "y" | |
} | |
], | |
"layout": { | |
"boxmode": "overlay", | |
"legend": { | |
"title": { | |
"text": "broker" | |
}, | |
"tracegroupgap": 0 | |
}, | |
"margin": { | |
"t": 60 | |
}, | |
"template": { | |
"data": { | |
"bar": [ | |
{ | |
"error_x": { | |
"color": "#2a3f5f" | |
}, | |
"error_y": { | |
"color": "#2a3f5f" | |
}, | |
"marker": { | |
"line": { | |
"color": "#E5ECF6", | |
"width": 0.5 | |
} | |
}, | |
"type": "bar" | |
} | |
], | |
"barpolar": [ | |
{ | |
"marker": { | |
"line": { | |
"color": "#E5ECF6", | |
"width": 0.5 | |
} | |
}, | |
"type": "barpolar" | |
} | |
], | |
"carpet": [ | |
{ | |
"aaxis": { | |
"endlinecolor": "#2a3f5f", | |
"gridcolor": "white", | |
"linecolor": "white", | |
"minorgridcolor": "white", | |
"startlinecolor": "#2a3f5f" | |
}, | |
"baxis": { | |
"endlinecolor": "#2a3f5f", | |
"gridcolor": "white", | |
"linecolor": "white", | |
"minorgridcolor": "white", | |
"startlinecolor": "#2a3f5f" | |
}, | |
"type": "carpet" | |
} | |
], | |
"choropleth": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "choropleth" | |
} | |
], | |
"contour": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "contour" | |
} | |
], | |
"contourcarpet": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "contourcarpet" | |
} | |
], | |
"heatmap": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "heatmap" | |
} | |
], | |
"heatmapgl": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "heatmapgl" | |
} | |
], | |
"histogram": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "histogram" | |
} | |
], | |
"histogram2d": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "histogram2d" | |
} | |
], | |
"histogram2dcontour": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "histogram2dcontour" | |
} | |
], | |
"mesh3d": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "mesh3d" | |
} | |
], | |
"parcoords": [ | |
{ | |
"line": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "parcoords" | |
} | |
], | |
"pie": [ | |
{ | |
"automargin": true, | |
"type": "pie" | |
} | |
], | |
"scatter": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatter" | |
} | |
], | |
"scatter3d": [ | |
{ | |
"line": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatter3d" | |
} | |
], | |
"scattercarpet": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattercarpet" | |
} | |
], | |
"scattergeo": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattergeo" | |
} | |
], | |
"scattergl": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattergl" | |
} | |
], | |
"scattermapbox": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattermapbox" | |
} | |
], | |
"scatterpolar": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterpolar" | |
} | |
], | |
"scatterpolargl": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterpolargl" | |
} | |
], | |
"scatterternary": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterternary" | |
} | |
], | |
"surface": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "surface" | |
} | |
], | |
"table": [ | |
{ | |
"cells": { | |
"fill": { | |
"color": "#EBF0F8" | |
}, | |
"line": { | |
"color": "white" | |
} | |
}, | |
"header": { | |
"fill": { | |
"color": "#C8D4E3" | |
}, | |
"line": { | |
"color": "white" | |
} | |
}, | |
"type": "table" | |
} | |
] | |
}, | |
"layout": { | |
"annotationdefaults": { | |
"arrowcolor": "#2a3f5f", | |
"arrowhead": 0, | |
"arrowwidth": 1 | |
}, | |
"coloraxis": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"colorscale": { | |
"diverging": [ | |
[ | |
0, | |
"#8e0152" | |
], | |
[ | |
0.1, | |
"#c51b7d" | |
], | |
[ | |
0.2, | |
"#de77ae" | |
], | |
[ | |
0.3, | |
"#f1b6da" | |
], | |
[ | |
0.4, | |
"#fde0ef" | |
], | |
[ | |
0.5, | |
"#f7f7f7" | |
], | |
[ | |
0.6, | |
"#e6f5d0" | |
], | |
[ | |
0.7, | |
"#b8e186" | |
], | |
[ | |
0.8, | |
"#7fbc41" | |
], | |
[ | |
0.9, | |
"#4d9221" | |
], | |
[ | |
1, | |
"#276419" | |
] | |
], | |
"sequential": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"sequentialminus": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
] | |
}, | |
"colorway": [ | |
"#636efa", | |
"#EF553B", | |
"#00cc96", | |
"#ab63fa", | |
"#FFA15A", | |
"#19d3f3", | |
"#FF6692", | |
"#B6E880", | |
"#FF97FF", | |
"#FECB52" | |
], | |
"font": { | |
"color": "#2a3f5f" | |
}, | |
"geo": { | |
"bgcolor": "white", | |
"lakecolor": "white", | |
"landcolor": "#E5ECF6", | |
"showlakes": true, | |
"showland": true, | |
"subunitcolor": "white" | |
}, | |
"hoverlabel": { | |
"align": "left" | |
}, | |
"hovermode": "closest", | |
"mapbox": { | |
"style": "light" | |
}, | |
"paper_bgcolor": "white", | |
"plot_bgcolor": "#E5ECF6", | |
"polar": { | |
"angularaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"bgcolor": "#E5ECF6", | |
"radialaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
} | |
}, | |
"scene": { | |
"xaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
}, | |
"yaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
}, | |
"zaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
} | |
}, | |
"shapedefaults": { | |
"line": { | |
"color": "#2a3f5f" | |
} | |
}, | |
"ternary": { | |
"aaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"baxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"bgcolor": "#E5ECF6", | |
"caxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
} | |
}, | |
"title": { | |
"x": 0.05 | |
}, | |
"xaxis": { | |
"automargin": true, | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "", | |
"title": { | |
"standoff": 15 | |
}, | |
"zerolinecolor": "white", | |
"zerolinewidth": 2 | |
}, | |
"yaxis": { | |
"automargin": true, | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "", | |
"title": { | |
"standoff": 15 | |
}, | |
"zerolinecolor": "white", | |
"zerolinewidth": 2 | |
} | |
} | |
}, | |
"xaxis": { | |
"anchor": "y", | |
"categoryarray": [ | |
"CambioSeguro", | |
"CambistaInka", | |
"DecisionCapital", | |
"JetPeru", | |
"Kambista", | |
"Rextie", | |
"WesternUnion" | |
], | |
"categoryorder": "array", | |
"domain": [ | |
0, | |
1 | |
], | |
"title": { | |
"text": "broker" | |
} | |
}, | |
"yaxis": { | |
"anchor": "x", | |
"domain": [ | |
0, | |
1 | |
], | |
"title": { | |
"text": "rate" | |
} | |
} | |
} | |
}, | |
"text/html": [ | |
"<div>\n", | |
" \n", | |
" \n", | |
" <div id=\"9ee72caa-437d-4140-9e58-c056e6e800de\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n", | |
" <script type=\"text/javascript\">\n", | |
" require([\"plotly\"], function(Plotly) {\n", | |
" window.PLOTLYENV=window.PLOTLYENV || {};\n", | |
" \n", | |
" if (document.getElementById(\"9ee72caa-437d-4140-9e58-c056e6e800de\")) {\n", | |
" Plotly.newPlot(\n", | |
" '9ee72caa-437d-4140-9e58-c056e6e800de',\n", | |
" [{\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"CambioSeguro\", \"marker\": {\"color\": \"#636efa\"}, \"name\": \"CambioSeguro\", \"notched\": false, \"offsetgroup\": \"CambioSeguro\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"CambioSeguro\", \"CambioSeguro\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.56, 3.588], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"CambistaInka\", \"marker\": {\"color\": \"#EF553B\"}, \"name\": \"CambistaInka\", \"notched\": false, \"offsetgroup\": \"CambistaInka\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"CambistaInka\", \"CambistaInka\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.565, 3.585], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"DecisionCapital\", \"marker\": {\"color\": \"#00cc96\"}, \"name\": \"DecisionCapital\", \"notched\": false, \"offsetgroup\": \"DecisionCapital\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"DecisionCapital\", \"DecisionCapital\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.5571, 3.5871], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"JetPeru\", \"marker\": {\"color\": \"#ab63fa\"}, \"name\": \"JetPeru\", \"notched\": false, \"offsetgroup\": \"JetPeru\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"JetPeru\", \"JetPeru\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.562, 3.5860000000000003], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"Kambista\", \"marker\": {\"color\": \"#FFA15A\"}, \"name\": \"Kambista\", \"notched\": false, \"offsetgroup\": \"Kambista\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"Kambista\", \"Kambista\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.55, 3.588], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"Rextie\", \"marker\": {\"color\": \"#19d3f3\"}, \"name\": \"Rextie\", \"notched\": false, \"offsetgroup\": \"Rextie\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"Rextie\", \"Rextie\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.5566, 3.586], \"y0\": \" \", \"yaxis\": \"y\"}, {\"alignmentgroup\": \"True\", \"hovertemplate\": \"broker=%{x}<br>rate=%{y}<extra></extra>\", \"legendgroup\": \"WesternUnion\", \"marker\": {\"color\": \"#FF6692\"}, \"name\": \"WesternUnion\", \"notched\": false, \"offsetgroup\": \"WesternUnion\", \"orientation\": \"v\", \"showlegend\": true, \"type\": \"box\", \"x\": [\"WesternUnion\", \"WesternUnion\"], \"x0\": \" \", \"xaxis\": \"x\", \"y\": [3.563, 3.588], \"y0\": \" \", \"yaxis\": \"y\"}],\n", | |
" {\"boxmode\": \"overlay\", \"legend\": {\"title\": {\"text\": \"broker\"}, \"tracegroupgap\": 0}, \"margin\": {\"t\": 60}, \"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"xaxis\": {\"anchor\": \"y\", \"categoryarray\": [\"CambioSeguro\", \"CambistaInka\", \"DecisionCapital\", \"JetPeru\", \"Kambista\", \"Rextie\", \"WesternUnion\"], \"categoryorder\": \"array\", \"domain\": [0.0, 1.0], \"title\": {\"text\": \"broker\"}}, \"yaxis\": {\"anchor\": \"x\", \"domain\": [0.0, 1.0], \"title\": {\"text\": \"rate\"}}},\n", | |
" {\"responsive\": true}\n", | |
" ).then(function(){\n", | |
" \n", | |
"var gd = document.getElementById('9ee72caa-437d-4140-9e58-c056e6e800de');\n", | |
"var x = new MutationObserver(function (mutations, observer) {{\n", | |
" var display = window.getComputedStyle(gd).display;\n", | |
" if (!display || display === 'none') {{\n", | |
" console.log([gd, 'removed!']);\n", | |
" Plotly.purge(gd);\n", | |
" observer.disconnect();\n", | |
" }}\n", | |
"}});\n", | |
"\n", | |
"// Listen for the removal of the full notebook cells\n", | |
"var notebookContainer = gd.closest('#notebook-container');\n", | |
"if (notebookContainer) {{\n", | |
" x.observe(notebookContainer, {childList: true});\n", | |
"}}\n", | |
"\n", | |
"// Listen for the clearing of the current output cell\n", | |
"var outputEl = gd.closest('.output');\n", | |
"if (outputEl) {{\n", | |
" x.observe(outputEl, {childList: true});\n", | |
"}}\n", | |
"\n", | |
" })\n", | |
" };\n", | |
" });\n", | |
" </script>\n", | |
" </div>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 133;\n", | |
" var nbb_unformatted_code = \"fig = px.box(tmp_df_px, x=\\\"broker\\\", y=\\\"rate\\\", color=\\\"broker\\\")\\nfig.show()\";\n", | |
" var nbb_formatted_code = \"fig = px.box(tmp_df_px, x=\\\"broker\\\", y=\\\"rate\\\", color=\\\"broker\\\")\\nfig.show()\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = px.box(tmp_df_px, x=\"broker\", y=\"rate\", color=\"broker\")\n", | |
"fig.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T03:29:48.528323Z", | |
"start_time": "2020-08-17T03:29:48.514304Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 45;\n", | |
" var nbb_unformatted_code = \"import plotly.graph_objects as go\";\n", | |
" var nbb_formatted_code = \"import plotly.graph_objects as go\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import plotly.graph_objects as go" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 137, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:42:34.553882Z", | |
"start_time": "2020-08-17T08:42:34.520854Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 137;\n", | |
" var nbb_unformatted_code = \"fig2 = go.Figure()\";\n", | |
" var nbb_formatted_code = \"fig2 = go.Figure()\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig2 = go.Figure()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 138, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:42:35.596350Z", | |
"start_time": "2020-08-17T08:42:35.576339Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 138;\n", | |
" var nbb_unformatted_code = \"for item in tmp_df_px[\\\"broker\\\"].unique():\\n fig2.add_trace(go.Box(y=tmp_df_px[tmp_df_px[\\\"broker\\\"] == item][\\\"rate\\\"], name=item))\";\n", | |
" var nbb_formatted_code = \"for item in tmp_df_px[\\\"broker\\\"].unique():\\n fig2.add_trace(go.Box(y=tmp_df_px[tmp_df_px[\\\"broker\\\"] == item][\\\"rate\\\"], name=item))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"for item in tmp_df_px[\"broker\"].unique():\n", | |
" fig2.add_trace(go.Box(y=tmp_df_px[tmp_df_px[\"broker\"] == item][\"rate\"], name=item))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 139, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T08:42:37.637435Z", | |
"start_time": "2020-08-17T08:42:37.624413Z" | |
}, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.plotly.v1+json": { | |
"config": { | |
"plotlyServerURL": "https://plot.ly" | |
}, | |
"data": [ | |
{ | |
"name": "CambioSeguro", | |
"type": "box", | |
"y": [ | |
3.56, | |
3.588 | |
] | |
}, | |
{ | |
"name": "CambistaInka", | |
"type": "box", | |
"y": [ | |
3.565, | |
3.585 | |
] | |
}, | |
{ | |
"name": "DecisionCapital", | |
"type": "box", | |
"y": [ | |
3.5571, | |
3.5871 | |
] | |
}, | |
{ | |
"name": "JetPeru", | |
"type": "box", | |
"y": [ | |
3.562, | |
3.5860000000000003 | |
] | |
}, | |
{ | |
"name": "Kambista", | |
"type": "box", | |
"y": [ | |
3.55, | |
3.588 | |
] | |
}, | |
{ | |
"name": "Rextie", | |
"type": "box", | |
"y": [ | |
3.5566, | |
3.586 | |
] | |
}, | |
{ | |
"name": "WesternUnion", | |
"type": "box", | |
"y": [ | |
3.563, | |
3.588 | |
] | |
} | |
], | |
"layout": { | |
"template": { | |
"data": { | |
"bar": [ | |
{ | |
"error_x": { | |
"color": "#2a3f5f" | |
}, | |
"error_y": { | |
"color": "#2a3f5f" | |
}, | |
"marker": { | |
"line": { | |
"color": "#E5ECF6", | |
"width": 0.5 | |
} | |
}, | |
"type": "bar" | |
} | |
], | |
"barpolar": [ | |
{ | |
"marker": { | |
"line": { | |
"color": "#E5ECF6", | |
"width": 0.5 | |
} | |
}, | |
"type": "barpolar" | |
} | |
], | |
"carpet": [ | |
{ | |
"aaxis": { | |
"endlinecolor": "#2a3f5f", | |
"gridcolor": "white", | |
"linecolor": "white", | |
"minorgridcolor": "white", | |
"startlinecolor": "#2a3f5f" | |
}, | |
"baxis": { | |
"endlinecolor": "#2a3f5f", | |
"gridcolor": "white", | |
"linecolor": "white", | |
"minorgridcolor": "white", | |
"startlinecolor": "#2a3f5f" | |
}, | |
"type": "carpet" | |
} | |
], | |
"choropleth": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "choropleth" | |
} | |
], | |
"contour": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "contour" | |
} | |
], | |
"contourcarpet": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "contourcarpet" | |
} | |
], | |
"heatmap": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "heatmap" | |
} | |
], | |
"heatmapgl": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "heatmapgl" | |
} | |
], | |
"histogram": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "histogram" | |
} | |
], | |
"histogram2d": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "histogram2d" | |
} | |
], | |
"histogram2dcontour": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "histogram2dcontour" | |
} | |
], | |
"mesh3d": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"type": "mesh3d" | |
} | |
], | |
"parcoords": [ | |
{ | |
"line": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "parcoords" | |
} | |
], | |
"pie": [ | |
{ | |
"automargin": true, | |
"type": "pie" | |
} | |
], | |
"scatter": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatter" | |
} | |
], | |
"scatter3d": [ | |
{ | |
"line": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatter3d" | |
} | |
], | |
"scattercarpet": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattercarpet" | |
} | |
], | |
"scattergeo": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattergeo" | |
} | |
], | |
"scattergl": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattergl" | |
} | |
], | |
"scattermapbox": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scattermapbox" | |
} | |
], | |
"scatterpolar": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterpolar" | |
} | |
], | |
"scatterpolargl": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterpolargl" | |
} | |
], | |
"scatterternary": [ | |
{ | |
"marker": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"type": "scatterternary" | |
} | |
], | |
"surface": [ | |
{ | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
}, | |
"colorscale": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"type": "surface" | |
} | |
], | |
"table": [ | |
{ | |
"cells": { | |
"fill": { | |
"color": "#EBF0F8" | |
}, | |
"line": { | |
"color": "white" | |
} | |
}, | |
"header": { | |
"fill": { | |
"color": "#C8D4E3" | |
}, | |
"line": { | |
"color": "white" | |
} | |
}, | |
"type": "table" | |
} | |
] | |
}, | |
"layout": { | |
"annotationdefaults": { | |
"arrowcolor": "#2a3f5f", | |
"arrowhead": 0, | |
"arrowwidth": 1 | |
}, | |
"coloraxis": { | |
"colorbar": { | |
"outlinewidth": 0, | |
"ticks": "" | |
} | |
}, | |
"colorscale": { | |
"diverging": [ | |
[ | |
0, | |
"#8e0152" | |
], | |
[ | |
0.1, | |
"#c51b7d" | |
], | |
[ | |
0.2, | |
"#de77ae" | |
], | |
[ | |
0.3, | |
"#f1b6da" | |
], | |
[ | |
0.4, | |
"#fde0ef" | |
], | |
[ | |
0.5, | |
"#f7f7f7" | |
], | |
[ | |
0.6, | |
"#e6f5d0" | |
], | |
[ | |
0.7, | |
"#b8e186" | |
], | |
[ | |
0.8, | |
"#7fbc41" | |
], | |
[ | |
0.9, | |
"#4d9221" | |
], | |
[ | |
1, | |
"#276419" | |
] | |
], | |
"sequential": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
], | |
"sequentialminus": [ | |
[ | |
0, | |
"#0d0887" | |
], | |
[ | |
0.1111111111111111, | |
"#46039f" | |
], | |
[ | |
0.2222222222222222, | |
"#7201a8" | |
], | |
[ | |
0.3333333333333333, | |
"#9c179e" | |
], | |
[ | |
0.4444444444444444, | |
"#bd3786" | |
], | |
[ | |
0.5555555555555556, | |
"#d8576b" | |
], | |
[ | |
0.6666666666666666, | |
"#ed7953" | |
], | |
[ | |
0.7777777777777778, | |
"#fb9f3a" | |
], | |
[ | |
0.8888888888888888, | |
"#fdca26" | |
], | |
[ | |
1, | |
"#f0f921" | |
] | |
] | |
}, | |
"colorway": [ | |
"#636efa", | |
"#EF553B", | |
"#00cc96", | |
"#ab63fa", | |
"#FFA15A", | |
"#19d3f3", | |
"#FF6692", | |
"#B6E880", | |
"#FF97FF", | |
"#FECB52" | |
], | |
"font": { | |
"color": "#2a3f5f" | |
}, | |
"geo": { | |
"bgcolor": "white", | |
"lakecolor": "white", | |
"landcolor": "#E5ECF6", | |
"showlakes": true, | |
"showland": true, | |
"subunitcolor": "white" | |
}, | |
"hoverlabel": { | |
"align": "left" | |
}, | |
"hovermode": "closest", | |
"mapbox": { | |
"style": "light" | |
}, | |
"paper_bgcolor": "white", | |
"plot_bgcolor": "#E5ECF6", | |
"polar": { | |
"angularaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"bgcolor": "#E5ECF6", | |
"radialaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
} | |
}, | |
"scene": { | |
"xaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
}, | |
"yaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
}, | |
"zaxis": { | |
"backgroundcolor": "#E5ECF6", | |
"gridcolor": "white", | |
"gridwidth": 2, | |
"linecolor": "white", | |
"showbackground": true, | |
"ticks": "", | |
"zerolinecolor": "white" | |
} | |
}, | |
"shapedefaults": { | |
"line": { | |
"color": "#2a3f5f" | |
} | |
}, | |
"ternary": { | |
"aaxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"baxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
}, | |
"bgcolor": "#E5ECF6", | |
"caxis": { | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "" | |
} | |
}, | |
"title": { | |
"x": 0.05 | |
}, | |
"xaxis": { | |
"automargin": true, | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "", | |
"title": { | |
"standoff": 15 | |
}, | |
"zerolinecolor": "white", | |
"zerolinewidth": 2 | |
}, | |
"yaxis": { | |
"automargin": true, | |
"gridcolor": "white", | |
"linecolor": "white", | |
"ticks": "", | |
"title": { | |
"standoff": 15 | |
}, | |
"zerolinecolor": "white", | |
"zerolinewidth": 2 | |
} | |
} | |
} | |
} | |
}, | |
"text/html": [ | |
"<div>\n", | |
" \n", | |
" \n", | |
" <div id=\"d1a0ba9c-15b3-4e02-aaf9-690fd1f907ef\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n", | |
" <script type=\"text/javascript\">\n", | |
" require([\"plotly\"], function(Plotly) {\n", | |
" window.PLOTLYENV=window.PLOTLYENV || {};\n", | |
" \n", | |
" if (document.getElementById(\"d1a0ba9c-15b3-4e02-aaf9-690fd1f907ef\")) {\n", | |
" Plotly.newPlot(\n", | |
" 'd1a0ba9c-15b3-4e02-aaf9-690fd1f907ef',\n", | |
" [{\"name\": \"CambioSeguro\", \"type\": \"box\", \"y\": [3.56, 3.588]}, {\"name\": \"CambistaInka\", \"type\": \"box\", \"y\": [3.565, 3.585]}, {\"name\": \"DecisionCapital\", \"type\": \"box\", \"y\": [3.5571, 3.5871]}, {\"name\": \"JetPeru\", \"type\": \"box\", \"y\": [3.562, 3.5860000000000003]}, {\"name\": \"Kambista\", \"type\": \"box\", \"y\": [3.55, 3.588]}, {\"name\": \"Rextie\", \"type\": \"box\", \"y\": [3.5566, 3.586]}, {\"name\": \"WesternUnion\", \"type\": \"box\", \"y\": [3.563, 3.588]}],\n", | |
" {\"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}},\n", | |
" {\"responsive\": true}\n", | |
" ).then(function(){\n", | |
" \n", | |
"var gd = document.getElementById('d1a0ba9c-15b3-4e02-aaf9-690fd1f907ef');\n", | |
"var x = new MutationObserver(function (mutations, observer) {{\n", | |
" var display = window.getComputedStyle(gd).display;\n", | |
" if (!display || display === 'none') {{\n", | |
" console.log([gd, 'removed!']);\n", | |
" Plotly.purge(gd);\n", | |
" observer.disconnect();\n", | |
" }}\n", | |
"}});\n", | |
"\n", | |
"// Listen for the removal of the full notebook cells\n", | |
"var notebookContainer = gd.closest('#notebook-container');\n", | |
"if (notebookContainer) {{\n", | |
" x.observe(notebookContainer, {childList: true});\n", | |
"}}\n", | |
"\n", | |
"// Listen for the clearing of the current output cell\n", | |
"var outputEl = gd.closest('.output');\n", | |
"if (outputEl) {{\n", | |
" x.observe(outputEl, {childList: true});\n", | |
"}}\n", | |
"\n", | |
" })\n", | |
" };\n", | |
" });\n", | |
" </script>\n", | |
" </div>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 139;\n", | |
" var nbb_unformatted_code = \"fig2.show()\";\n", | |
" var nbb_formatted_code = \"fig2.show()\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig2.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 147, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2020-08-17T09:09:10.192445Z", | |
"start_time": "2020-08-17T09:09:10.174426Z" | |
} | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Best Bid-Ask Spread:0.020000000000000018\n", | |
"Best Bid:3.565\n", | |
"Best Ask:3.585\n" | |
] | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
" setTimeout(function() {\n", | |
" var nbb_cell_id = 147;\n", | |
" var nbb_unformatted_code = \"print(\\n \\\"Best Bid-Ask Spread:\\\"\\n + str(min(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"spread\\\"][\\\"rate\\\"]))\\n)\\nprint(\\\"Best Bid:\\\" + str(max(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"bid\\\"][\\\"rate\\\"])))\\nprint(\\\"Best Ask:\\\" + str(min(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"ask\\\"][\\\"rate\\\"])))\";\n", | |
" var nbb_formatted_code = \"print(\\n \\\"Best Bid-Ask Spread:\\\"\\n + str(min(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"spread\\\"][\\\"rate\\\"]))\\n)\\nprint(\\\"Best Bid:\\\" + str(max(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"bid\\\"][\\\"rate\\\"])))\\nprint(\\\"Best Ask:\\\" + str(min(tmp_df_raw[tmp_df_raw[\\\"quote\\\"] == \\\"ask\\\"][\\\"rate\\\"])))\";\n", | |
" var nbb_cells = Jupyter.notebook.get_cells();\n", | |
" for (var i = 0; i < nbb_cells.length; ++i) {\n", | |
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n", | |
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n", | |
" nbb_cells[i].set_text(nbb_formatted_code);\n", | |
" }\n", | |
" break;\n", | |
" }\n", | |
" }\n", | |
" }, 500);\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\n", | |
" \"Best Bid-Ask Spread:\"\n", | |
" + str(min(tmp_df_raw[tmp_df_raw[\"quote\"] == \"spread\"][\"rate\"]))\n", | |
")\n", | |
"print(\"Best Bid:\" + str(max(tmp_df_raw[tmp_df_raw[\"quote\"] == \"bid\"][\"rate\"])))\n", | |
"print(\"Best Ask:\" + str(min(tmp_df_raw[tmp_df_raw[\"quote\"] == \"ask\"][\"rate\"])))" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.8.5" | |
}, | |
"toc": { | |
"base_numbering": 1, | |
"nav_menu": {}, | |
"number_sections": true, | |
"sideBar": true, | |
"skip_h1_title": false, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
}, | |
"varInspector": { | |
"cols": { | |
"lenName": 16, | |
"lenType": 16, | |
"lenVar": 40 | |
}, | |
"kernels_config": { | |
"python": { | |
"delete_cmd_postfix": "", | |
"delete_cmd_prefix": "del ", | |
"library": "var_list.py", | |
"varRefreshCmd": "print(var_dic_list())" | |
}, | |
"r": { | |
"delete_cmd_postfix": ") ", | |
"delete_cmd_prefix": "rm(", | |
"library": "var_list.r", | |
"varRefreshCmd": "cat(var_dic_list()) " | |
} | |
}, | |
"types_to_exclude": [ | |
"module", | |
"function", | |
"builtin_function_or_method", | |
"instance", | |
"_Feature" | |
], | |
"window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment