Realizamos un seguimiento del estado de nuestra cartera con el corredor "Tinkoff Investments" a través de Google Sheets

Seguramente muchos realizan un seguimiento de las transacciones y controlan el estado de su cartera en Google Sheets o Excel. Anteriormente, tenía que ingresar manualmente información sobre cada instrumento comprado o vendido y esto tomaba una parte significativa de mi tiempo. Luego quise automatizar este proceso y comencé a buscar formas de implementar esta idea.



Encontré un artículo de usuarioErhoSen... A partir de ahí, aprendí que el corredor de inversiones Tinkoff ofrece a sus clientes una API para interactuar con una cuenta de corretaje con una cuenta de inversión individual (IIS). Con su ayuda, puede obtener una lista de acciones, pares de divisas, averiguar el precio de un valor por ticker, ver una lista de transacciones de la cuenta, obtener información sobre su cartera, etc. Sin embargo, carecía de la funcionalidad existente del script y decidí agregarlo agregando mis funciones allí.



Conseguir una ficha



El trabajo de la API se realiza a través de un token. El proceso de obtención de un token se describe en la documentación de GitHub . Para conseguirlo necesitas:



  1. Vaya al sitio web de Tinkoff e inicie sesión en su cuenta.
  2. Asegúrese de que la función “Confirmación de ofertas por código” esté desactivada.
  3. Desplácese hacia abajo en la página hasta el token de artículo para OpenAPI y haga clic en "Token para comerciar"
  4. Copie y guarde el token. Se muestra solo una vez, pero puede emitir un número ilimitado de tokens.


Después de recibir el token, puede comenzar a trabajar con la tabla. Siga el enlace y copie la tabla en la que guardará los registros.



Pegue su token en la celda B1 en la hoja de Configuración.



¡Importante! Después de insertar el token, no elimine ni cambie el nombre de la hoja "Configuración". Si el tipo de cambio actual del dólar aparece en la celda B3, felicitaciones, todo está listo para funcionar.



Las principales funciones del script :



  • getPrice (): obtiene el valor actual del instrumento por el ticker
  • getTrades (ticker): obtenga una lista de todas las transacciones para un instrumento específico. Entre paréntesis, debe indicar el ticker del instrumento para el que desea ver la lista de operaciones
  • getAllTrades() — .
  • getPortfolio() —
  • getCurrencies() —
  • getTradesIIS (ticker) — (). ,
  • getAllTradesIIS() — ().
  • getIISPort() —
  • getCurrenciesIIS() —
  • getUSDval() — ( )


Después de recibir los datos necesarios, puede copiar los valores obtenidos y continuar trabajando con ellos en otras hojas o en otra tabla, incluido Excel-e.





Un ejemplo de cómo funciona la función getPortfolio para obtener una cartera



Actualización de datos manual



De forma predeterminada, Google no proporciona una herramienta para actualizar los scripts personalizados, por lo que tuve que usar una solución de terceros. Para poder actualizar los datos haciendo clic, cuando use funciones entre paréntesis, debe configurar la celda $ Z $ 1, que registra la fecha y hora actuales, que luego se usa para la actualización manual. A continuación presentaré un fragmento de código que se encarga de actualizar los datos.



function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var entries = [{
    name : "",
    functionName : "refresh"
  }]
  sheet.addMenu("TI", entries)
};

function refresh() {
  SpreadsheetApp.getActiveSpreadsheet().getRange('Z1').setValue(new Date().toTimeString());
}


Primero, debe hacer clic en el botón Actualizar en el submenú de TI (aparece a la derecha de la pestaña Ayuda).

Después de eso, aparecerá una ventana de advertencia:







Haga clic en Continuar . A continuación, aparecerá otra ventana de advertencia, donde deberá hacer clic en Configuración avanzada y en el campo que se abre, seleccione Ir a la página "Tinkoff Invest" (inseguro) :







Estas acciones deben realizarse porque el script para cambiar el valor de la celda Z1 primero debe acceder a la tabla actual para que se realice solo en él. Después de eso, tenemos la oportunidad de actualizar los datos en la tabla a pedido. Un ejemplo de una actualización manual de la función getPrice ("AMD"; $ Z $ 1):







¡ATENCIÓN!El desarrollador de este script no tendrá acceso a su cuenta de Google, la lista de tablas en Drive o el token. Si le preocupa la seguridad de sus datos, puede copiar mi script y pegarlo en su tabla. Para hacer esto, en Google Sheets, abra su hoja de cálculo y en el menú superior, haga clic en Herramientas y luego en el Editor de secuencias de comandos .



Esto abrirá el entorno de secuencias de comandos de Google. Borre el código predeterminado en la ventana, copie el código del enlace y péguelo en la ventana.



Después de eso, guarde el script, dando cualquier nombre al proyecto y al propio script. Luego regrese a la tabla, cree una hoja de "Configuración" y en la celda B1 pegue su token de OpenAPI. Después de eso, puedes trabajar con la mesa.



Conclusión



Quiero expresar mi gratitud ErhoSenpor su artículo y el código fuente, que fue modificado por mí.



También para uso personal, creé un bot de Telegram, con planes para el futuro para traer esta idea a la mente si la idea encuentra una respuesta. El bot es conveniente en los casos en que no desea perder tiempo ingresando a la aplicación Tinkoff Investments, que a menudo se sienta en una computadora portátil y no desea iniciar sesión constantemente en el sitio, o almacenar el historial de cambios en el contenido de la cartera.



All Articles