Google Sheetsを通じて、ブローカー「TinkoffInvestments」でポートフォリオのステータスを追跡します

確かに多くの人がトランザクションを追跡し、GoogleSheetsまたはExcelでポートフォリオのステータスを監視しています。以前は、購入または販売した各機器に関する情報を手動で入力する必要があり、これは私の時間のかなりの部分を占めていました。次に、このプロセスを自動化したいと思い、このアイデアを実装する方法を探し始めました。ユーザー記事



を見つけましたErhoSen..。それから、Tinkoff Investmentsブローカーが、個別の投資アカウント(IIS)を持つブローカーアカウントと対話するためのAPIをクライアントに提供していることを学びました。その助けを借りて、株式のリスト、通貨ペアの取得、ティッカーによる証券の価格の確認、アカウントトランザクションのリストの表示、ポートフォリオに関する情報の取得などを行うことができます。ただし、スクリプトの既存の機能が不足していたため、そこに関数を追加してスクリプトを追加することにしました。



トークンの取得



APIの作業は、トークンを介して行われます。トークンを取得するプロセスは、GitHubのドキュメントで説明されていますそれを取得するには、次のものが必要です。



  1. TinkoffのWebサイトにアクセスして、アカウントにログインします。
  2. 「コードによる取引の確認」機能が無効になっていることを確認してください。
  3. ページを下にスクロールしてOpenAPIのアイテムトークンを表示し、[トークンの取引]をクリックします。
  4. トークンをコピーして保存します。表示されるのは1回だけですが、発行できるトークンの数に制限はありません。


トークンを受け取ったら、テーブルでの作業を開始できます。リンクたどって、記録を保管する表をコピーします。



トークンを設定シートのセルB1に貼り付けます。



重要!トークンを挿入した後は、「設定」シートを削除したり名前を変更したりしないでください。現在のドルレートがセルB3に表示されている場合-おめでとうございます、すべての準備が整いました。



スクリプトの主な機能



  • getPrice()-ティッカーによって機器の現在の値を取得します
  • getTrades(ticker)-特定の商品のすべてのトランザクションのリストを取得します。括弧内に、操作のリストを表示する機器のティッカーを指定する必要があります
  • getAllTrades() — .
  • getPortfolio() —
  • getCurrencies() —
  • getTradesIIS (ticker) — (). ,
  • getAllTradesIIS() — ().
  • getIISPort() —
  • getCurrenciesIIS() —
  • getUSDval() — ( )


必要なデータを受け取ったら、取得した値をコピーして、他のシートまたはExcel-eを含む別のテーブルで作業を続けることができます。





getPortfolio関数がポートフォリオを取得するためにどのように機能するかの例



手動データ更新



デフォルトでは、Googleはカスタムスクリプトを更新するツールを提供していないため、サードパーティのソリューションを使用する必要がありました。クリックしてデータを更新できるようにするには、括弧内の関数を使用するときに、現在の日付と時刻を記録するセル$ Z $ 1を設定する必要があります。これは、後で手動更新に使用されます。以下に、データの更新を担当するコードを示します。



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


まず、TIサブメニュー([ヘルプ]タブの右側に表示されます)の[更新]ボタンをクリックする必要があります。

その後、警告ウィンドウが表示されます。







[続行]をクリックします。次に、別の警告ウィンドウが表示され、をクリックする必要があります場合は、表示される詳細設定やフィールドで、開くを選択し、「Tinkoff投資」ページ(危険な)への移動を







セルZ1の値を変更するためのスクリプトは、まず現在のテーブルにアクセスする必要があるため、これらのアクションを実行する必要がありますその中でのみ実行されるように。その後、リクエストに応じてテーブルのデータを更新する機会があります。 getPrice関数の手動更新の例( "AMD"; $ Z $ 1):







注意!このスクリプトの開発者は、Googleアカウント、ドライブ内のテーブルのリスト、またはトークンにアクセスできません。データの安全性が心配な場合は、私のスクリプトをコピーしてテーブルに貼り付けることができます。これを行うには、Googleシートに、スプレッドシートを開いて、トップメニューで、をクリックして[ツール]に続いて、スクリプトエディタ



これにより、Googleスクリプト環境が開きます。ウィンドウのデフォルトコードを消去し、リンクからコードをコピーしてウィンドウに貼り付けます。



その後、スクリプトを保存し、プロジェクトとスクリプト自体に任意の名前を付けます。次に、テーブルに戻り、「設定」シートを作成して、セルB1にOpenAPIトークンを貼り付けます。その後、テーブルで作業できます。



結論



感謝の気持ちを表したい ErhoSen彼の記事と私が変更したソースコードについて。



また、個人的な使用のために、テレグラムボットを作成しました。このボットは、アイデアが応答を見つけた場合にこのアイデアを思い起こさせる将来の計画を持っています。このボットは、Tinkoff Investmentsアプリケーションに入る時間を無駄にしたくない場合に便利です。このアプリケーションは、ラップトップに座ってサイトに常時ログインしたくない場合や、ポートフォリオのコンテンツの変更履歴を保存したい場合に便利です。



All Articles