Kami melacak status portofolio kami dengan broker "Tinkoff Investments" melalui Google Sheets

Pasti banyak yang menyimpan pencatatan transaksi dan memantau status portofolionya di Google Sheets atau Excel. Di masa lalu, saya harus memasukkan informasi secara manual tentang setiap instrumen yang dibeli atau dijual, dan ini menyita sebagian besar waktu saya. Kemudian saya ingin mengotomatiskan proses ini dan saya mulai mencari cara untuk mengimplementasikan ide ini.



Saya menemukan artikel penggunaErhoSen... Dari situ, saya mengetahui bahwa broker Tinkoff Investments menawarkan API kepada kliennya untuk berinteraksi dengan akun broker dengan akun investasi individu (IIS). Dengan bantuannya, Anda bisa mendapatkan daftar saham, pasangan mata uang, mengetahui harga sekuritas dengan ticker, melihat daftar transaksi akun, mendapatkan informasi tentang portofolio Anda, dll. Namun, fungsionalitas skrip yang ada tidak cukup bagi saya dan saya memutuskan untuk menambahkannya dengan menambahkan fungsi saya di sana.



Mendapatkan token



Pekerjaan API dilakukan melalui token. Proses mendapatkan token dijelaskan dalam dokumentasi di GitHub . Untuk mendapatkannya Anda membutuhkan:



  1. Buka situs web Tinkoff dan masuk ke akun Anda.
  2. Pastikan bahwa fungsi "Konfirmasi transaksi dengan kode" dinonaktifkan.
  3. Gulir ke bawah halaman ke item token untuk OpenAPI dan klik "Token untuk perdagangan"
  4. Salin dan simpan token. Ini hanya ditampilkan sekali, tetapi Anda dapat mengeluarkan token dalam jumlah yang tidak terbatas.


Setelah menerima token, Anda dapat mulai bekerja dengan tabel. Ikuti tautan dan salin tabel tempat Anda akan menyimpan catatan.



Tempel token Anda ke sel B1 di lembar Pengaturan.



Penting! Setelah memasukkan token, jangan hapus atau ganti nama sheet "Pengaturan". Jika nilai tukar dolar saat ini muncul di sel B3 - selamat, semuanya sudah siap.



Fungsi utama skrip :



  • getPrice () - dapatkan nilai instrumen saat ini dengan ticker
  • getTrades (ticker) - dapatkan daftar semua transaksi untuk instrumen tertentu. Dalam tanda kurung, Anda harus menunjukkan ticker instrumen yang ingin Anda lihat daftar operasinya
  • getAllTrades() — .
  • getPortfolio() —
  • getCurrencies() —
  • getTradesIIS (ticker) — (). ,
  • getAllTradesIIS() — ().
  • getIISPort() —
  • getCurrenciesIIS() —
  • getUSDval() — ( )


Setelah menerima data yang diperlukan, Anda dapat menyalin nilai yang diperoleh dan melanjutkan mengerjakannya di lembar lain atau di tabel lain, termasuk Excel-e.





Contoh cara kerja fungsi getPortfolio untuk mendapatkan portofolio



Pembaruan data manual



Secara default, Google tidak menyediakan alat untuk memperbarui skrip ubahsuaian, jadi saya harus menggunakan solusi pihak ketiga. Agar dapat memperbarui data dengan mengklik, saat menggunakan fungsi dalam tanda kurung, Anda perlu menyetel sel $ Z $ 1, yang mencatat tanggal dan waktu saat ini, yang kemudian digunakan untuk pembaruan manual. Di bawah ini saya akan menyajikan sepotong kode yang bertanggung jawab untuk memperbarui data.



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());
}


Pertama, Anda perlu mengklik tombol Perbarui di submenu TI (muncul di sebelah kanan tab Bantuan).

Setelah itu akan muncul jendela peringatan:







Klik Continue . Selanjutnya, jendela peringatan lain akan muncul, di mana Anda perlu mengklik Pengaturan lanjutan dan di bidang yang terbuka, pilih Buka halaman "Tinkoff Invest" (tidak aman) :







Tindakan ini harus dilakukan karena skrip untuk mengubah nilai sel Z1 harus mengakses tabel saat ini terlebih dahulu sehingga hanya dilakukan di dalamnya. Setelah itu, kami memiliki kesempatan untuk memperbarui data di tabel atas permintaan. Contoh pembaruan manual untuk fungsi getPrice ("AMD"; $ Z $ 1):







PERHATIAN!Pengembang skrip ini tidak akan memiliki akses ke akun Google Anda, daftar tabel di Drive, atau token. Jika Anda khawatir tentang keamanan data Anda, Anda dapat menyalin skrip saya dan menempelkannya ke tabel Anda. Untuk melakukan ini, di Google Sheets, buka spreadsheet Anda dan di menu atas, klik Tools , lalu pada Script Editor .



Ini akan membuka lingkungan skrip google. Hapus kode default di jendela, salin kode dari tautan dan tempelkan ke jendela.



Setelah itu, simpan skrip, beri nama apa saja untuk proyek dan skrip itu sendiri. Kemudian kembali ke tabel, buat lembar "Pengaturan" dan di sel B1 tempel token OpenAPI Anda. Setelah itu Anda bisa mengerjakan tabel.



Kesimpulan



Saya ingin mengucapkan terima kasih ErhoSenuntuk artikelnya dan kode sumbernya, yang telah saya modifikasi.



Juga untuk penggunaan pribadi, saya membuat bot Telegram, dengan rencana masa depan untuk mengingat ide ini jika ide tersebut mendapat tanggapan. Bot ini nyaman digunakan jika Anda tidak ingin membuang waktu memasuki aplikasi Tinkoff Investments, yang sering duduk di depan laptop dan tidak ingin terus-menerus masuk ke situs, atau menyimpan riwayat perubahan dalam konten portofolio.



All Articles