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