Tradingviewのウォッチリストに自動で銘柄を追加する方法

使用する道具は以下
・スプレッドシート
・ドキュメント
・GAS
・UWSC

まず、以下のサイトでUWSCをダウンロードします。

ダウンロードした後は、「すべて展開」をする(圧縮ファイルの状態でダウンロードされます)。

次に、tradingviewのショートカットを作成します。

※ブラウザの動作確認はChromeでしかしていないので、Chromeのブラウザをデフォルトにしてください。

ショートカットを作成したら右クリックをしてプロパティを開きます。
(作成したショートカットの上で右クリックすれば見つかります。)

プロパティの見つけ方

赤枠のショートカットキーの欄でCtrlとAltを押しながらHを押して右下にある適用をクリックして設定を完了してください。

ショートカットキーを作成

※このとき、ショートカットキーを入力したらTradingviewのチャート画面がいきなり表示されることを確認してください。



下のスプレッドシートを開いてファイルをコピーしてください。

ファイルのコピーを作成

このとき、コピーしたスプレッドシートのシートIDを使います。
次に、googleドキュメントを新規作成してください(このとき新規作成したドキュメントIDを使います)。

ドキュメントIDとシートIDはこの後使います。

スプレッドシートの方にウォッチリストに追加する銘柄のティッカーシンボルを入れておきましょう(アルファベットのみ対応しています。数字で入力する必要がある日本株は対応できていません。もし、おむすびの方で、欲しい方がいたら、別途作成します。おむすびのグルチャの方にご連絡ください「最適化チャンネル(FIRE最適化チャンネル)」という名前で配信中です)。


「google aps script」と検索して、新しいスクリプトファイルを開いたら、以下のコードをコピペしてください。

function myFunction() {
  //ドキュメントID
  const docId = '~~'; //~~にドキュメントIDを入力する
  var sheetId = '>>'; //>>にシートIDを入力する






//これより下は変更しない

  //ドキュメントを取得する
  const doc = DocumentApp.openById(docId);
  //ドキュメントの内容を取得する
  const body = doc.getBody();


  //シートオブジェクトの取得

  var sheetName = '変更しないシート'; //シート名を入力する
  //var sheetName2 = '変更しないシート2'; //シート名を入力する
  var sheetName3 = '変更しないシート3'; //シート名を入力する
  var sheetName0 = '銘柄入力'; //シート名を入力する
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName); //変更はしない
  //var sheet2 = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName2); //変更はしない
  var sheet3 = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName3); //変更はしない
  var sheet0 = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName0); //変更はしない

  //配列へシート全体を読み込む
  var startspel = sheet.getDataRange().getValues(); //変更はしない
  Logger.log(startspel[0]); //変更はしない

  //var startspel2 = sheet2.getDataRange().getValues(); //変更はしない
  //Logger.log(startspel2[0]); //変更はしない

  var startspel3 = sheet3.getDataRange().getValues(); //変更はしない
  Logger.log(startspel3[0]); //変更はしない

  var startspel0 = sheet0.getDataRange().getValues(); //変更はしない
  Logger.log(startspel0[0]); //変更はしない
  //ドキュメントの内容を削除する
  body.clear(); // 全消去




//ドキュメントへの書き込み開始 

  for (var i = 0; i < startspel.length; i++) {
    body.appendParagraph(''+startspel[i]);
  }




for (var j = 0; j < startspel0.length; j++){
  body.appendParagraph('KBD(VK_SHIFT,DOWN,1031)');
  body.appendParagraph('KBD(VK_T,CLICK,47)');
  body.appendParagraph('KBD(VK_SHIFT,UP,15)');
  body.appendParagraph('KBD(VK_BACK,CLICK,1172)');
  body.appendParagraph('KBD(VK_SHIFT,DOWN,657)');
//
text = ""+startspel0[j];
let splitText = text.split("");
  for (var i = 0; i < splitText.length; i++) {
    body.appendParagraph('KBD(VK_'+splitText[i]+',CLICK,469)');
  }
//

//

  for (var i = 0; i < startspel3.length; i++) {
    body.appendParagraph(''+startspel3[i]);
  }
//
}





  //ドキュメントの内容を削除する
  //body.clear(); // 全消去
  //ドキュメントにテキストを書き込む
  //body.appendParagraph('テキストを書き込む');
  //body.appendParagraph('テキストを書き込む2');
}










上記のコードの最初の3行目あたりにシートIDとドキュメントIDを入力する場所があるので、先ほどのIDをそれぞれ入力してください。

const docId = '~~'; //~~にドキュメントIDを入力する
  var sheetId = '>>'; //>>にシートIDを入力する


以上すべて完了したら、「実行」ボタンを押してください。
すると、ドキュメントIDを入力したドキュメントファイルにUWSCのコードが書き込まれています。

次に、そのドキュメントファイルをダウンロードします。txtファイルとしてダウンロードしてください。


ドキュメントダウンロード


ダウンロードしたファイルの拡張子を「.txt」から「.UWS」に変更してください。

これをUWSCを起動して、読み込みます。

読み込んだら、実行する前にChromeの新しいウィンドウを立ち上げて検索窓をクリックした直後にUWSCの実行ボタンをおしてください。

※自動入力が終了するまで、マウスやキーボードには一切触らないでください。誤作動してしまいます。

以降は、
スプレッドシートに銘柄を入力 
→ google aps script 実行 
→ ドキュメントダウンロード 
→ ダウンロードしたファイルの拡張子を「.UWS」に変更
→ UWSCに読み込む 
→ 実行する前にChromeの新しいウィンドウを立ち上げて検索窓をクリックした直後にUWSCの実行ボタンを押す。

という手順で自動入力できます。



ちょっとだけ便利になりました。(2023/2/12)
(ここからは購入してくださった方に向けて、ちょっと便利な方法をお伝えします。)

まず、以下のスプレッドシートを開いて、コピーを作成してください。

コピーを作成しましたら、拡張機能をクリックして

Apps Scriptを開きます。(今回は必ずこの手順でGASを起動させてください)

以下のコードをGASにコピペします。

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('ドキュメントに出力する', 'myFunction');

  // メニューを画面に追加する
  menu.addToUi();
}

function myFunction() {
  
  // UIを取得
  const ui = SpreadsheetApp.getUi();

    // ドキュメントのURLを入力させる
  const response = ui.prompt('ドキュメントのURLを入力してください', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response.getSelectedButton() == ui.Button.CANCEL) {
    return;
  }

  // 入力された文字(ドキュメントのURL)を取得する
  const docURL = response.getResponseText();
  // ドキュメントIDのみを取り出す
  const docId = docURL.replace("https://docs.google.com/document/d/","").replace("/edit","");
  //ドキュメントID
  //const docId = '~~'; //~~にドキュメントIDを入力する
  //var sheetId = '>>'; //>>にシートIDを入力する






//これより下は変更しない

  //ドキュメントを取得する
  const doc = DocumentApp.openById(docId);
  //ドキュメントの内容を取得する
  const body = doc.getBody();


  //シートオブジェクトの取得

  var sheetName = '変更しないシート'; //シート名を入力する
  //var sheetName2 = '変更しないシート2'; //シート名を入力する
  var sheetName3 = '変更しないシート3'; //シート名を入力する
  var sheetName0 = '銘柄入力'; //シート名を入力する
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); //変更はしない
  //var sheet2 = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName2); //変更はしない
  var sheet3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName3); //変更はしない
  var sheet0 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName0); //変更はしない

  //配列へシート全体を読み込む
  var startspel = sheet.getDataRange().getValues(); //変更はしない
  Logger.log(startspel[0]); //変更はしない

  //var startspel2 = sheet2.getDataRange().getValues(); //変更はしない
  //Logger.log(startspel2[0]); //変更はしない

  var startspel3 = sheet3.getDataRange().getValues(); //変更はしない
  Logger.log(startspel3[0]); //変更はしない

  var startspel0 = sheet0.getDataRange().getValues(); //変更はしない
  Logger.log(startspel0[0]); //変更はしない
  //ドキュメントの内容を削除する
  body.clear(); // 全消去




//ドキュメントへの書き込み開始 

  for (var i = 0; i < startspel.length; i++) {
    body.appendParagraph(''+startspel[i]);
  }




for (var j = 0; j < startspel0.length; j++){
  body.appendParagraph('KBD(VK_SHIFT,DOWN,1031)');
  body.appendParagraph('KBD(VK_T,CLICK,47)');
  body.appendParagraph('KBD(VK_SHIFT,UP,15)');
  body.appendParagraph('KBD(VK_BACK,CLICK,1172)');
  body.appendParagraph('KBD(VK_SHIFT,DOWN,657)');
//
text = ""+startspel0[j];
let splitText = text.split("");
  for (var i = 0; i < splitText.length; i++) {
    body.appendParagraph('KBD(VK_'+splitText[i]+',CLICK,469)');
  }
//

//

  for (var i = 0; i < startspel3.length; i++) {
    body.appendParagraph(''+startspel3[i]);
  }
//
}





  //ドキュメントの内容を削除する
  //body.clear(); // 全消去
  //ドキュメントにテキストを書き込む
  //body.appendParagraph('テキストを書き込む');
  //body.appendParagraph('テキストを書き込む2');
}


実行したら、スプレッドを開いてください。
以下のようにスクリプトを実行という項目が追加されています。

ドキュメントに出力するをクリックしてください。

下のような画面が出てきますので、ここに、出力先であるドキュメントのURLをコピペしてください。(今回はURL全体をそのままコピペしてください)

以上で完了です。URL先のドキュメントに出力されているはずです。
これにより、ドキュメントIDを探す手間を省くことができました。


この記事が気に入ったらサポートをしてみませんか?