Skip to content

Instantly share code, notes, and snippets.

@capm
Created August 17, 2020 09:22
Show Gist options
  • Save capm/8cdc6cb1e1a31e465307c042deec54b7 to your computer and use it in GitHub Desktop.
Save capm/8cdc6cb1e1a31e465307c042deec54b7 to your computer and use it in GitHub Desktop.
FX Spiders
Display the source blob
Display the rendered blob
Raw
{
"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