コインチェックからBinance に送金

 

結局流動性の問題でBTCで送金しました。GAS代は2500円くらいかかっている計算です。

 

コインチェック送金手数料
2021-01-13取引所
トークン数値抽出JPYレート円換算Binance
BTC0.0005 BTC0.00055,024,1042512
ETH0.005 ETH0.005384,0341920
取引制限通貨ペアETC0.01 ETC0.013,57736
取引制限通貨ペアLSK0.1 LSK0.124525
取引制限通貨ペアFCT0.1 FCT0.114815無し
XRP0.15 XRP0.159014
XEM0.5 XEM0.5137
LTC0.001 LTC0.00116,25716
BCH0.001 BCH0.00144,14744
MONA0.001 MONA0.0011300無し
XLM0.01 XLM0.01320
QTUM0.01 QTUM0.019099
BAT63.0 BAT63.01288064
IOST1.0 IOST1.033
ENJ30.0 ENJ30.02868580
OMG5.0 OMG5.07003500
PLT72.0 PLT72.0392808

 

AnyDesk android アンドロイド ユーザー補助 設定メモ

 

2022-11-08(TU)再現性が無いな

何故操作できないのかは不明だけど、何度もオンオフしていると操作できるようになった。

人マークをひたすらクリックしました。

 

2022-11-06(SU)追加設定、コツ

以下の設定は、Anydeskに接続済み、画面共有済みの状態で行うと機能した。

つまり、画面だけ見える状態、操作できない状態のまま、

以下のユーザー補助の設定をしたらどうさした。

——–以前までの設定ーーーーー

毎回ユーザー補助が無効になっているので設定をメモ。

設定 →

追加設定 →

ユーザー補助 →

ダウンロードしたアプリ →

AnyDesk Control Service AD1 →

一度オフにして再度オンにする。

2022 確定申告の為。仮想通貨保有残高合計計算スクリプトを作りました。

取りあえず確定申告で必要と思うので。

各取引所など保有場所の通貨ごと合計を出力するGASプロジェクト。

事前処理として各取引所はSheetごとに記録しておきます。

取りあえずなので何の検証もしていない状態ですが、やっつけで作りました。

テストプログラム、テストデータを使ってとりあえず動いているのではないかな?

このまま修正なく正確に計算してくれることを祈る。

 

2022-11-07(MO)各取引所の残高を一覧で見えるように修正。とりあえず

取りあえず突合に必要なため機能追加。

 



// ver 0.1_20221020
function onOpen() {
  var ui = SpreadsheetApp.getUi();           
  var menu = ui.createMenu('追加したメニュー');  
  menu.addItem('計算実行', 'myFunction');   
  menu.addToUi();                            
}

function myFunction() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  sheet_ar = [];
  if (sheets.length > 0){
    for(sheet of sheets){
      if(sheet.getName()=="計算結果"){
      }else{
          data = get_sheet_data_merge(sheet.getName());
          for(var i=0;i<data.length;i++){
            sheet_ar.push(data[i]);
          }

      }
    }
    //連想配列化,各シートの情報を取得しています
    var keys = ["取引所説明","記録時間","仮想通貨","残高","コメント"];
    object = convertRowToObject(keys,sheet_ar)
    
    
    //通貨一覧作成,各シートのトークンリストを纏めて重複をなくす
    var token_array = [];
    for(var i=0;i<object.length;i++){
      if(token_array.includes(object[i]['仮想通貨'])){
      }else{
        token_array.push(object[i]['仮想通貨']);
      }
    }
    //合計計算    
    var token_renso={};
    var token_detail_renso={};
    for(var i=0;i<token_array.length;i++){
      token_renso[token_array[i]]=0;
      token_detail_renso[token_array[i]]="";
    }
    for(var i=0;i<token_array.length;i++){
      for(var j=0;j<object.length;j++){
        if(token_array[i] == object[j]['仮想通貨']){
          token_renso[token_array[i]] = token_renso[token_array[i]] *1 + object[j]['残高'];
          token_detail_renso[token_array[i]] = token_detail_renso[token_array[i]] + "{" + object[j]['取引所説明']+":"+object[j]['残高']+"}";
        }
      }
    }
    //Logger.log(token_detail_renso);
    //縦配列化、detailの情報も追加
    const d1 = dayjs.dayjs();
    var tate_ar = [["実行時刻",d1.format('YYYY-MM-DD HH:mm:ss'),"detail"]];
    //const array = [Object.keys(token_renso),Object.values(token_renso)];
    for(var key in token_renso){
      var tmp_ar = [key,token_renso[key],token_detail_renso[key]];
      tate_ar.push(tmp_ar);
    }

    //書き出し
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("計算結果");
    sheet.clearContents();
      //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
      var range = sheet.getRange(1,1,tate_ar.length,3);
      range.setValues(tate_ar);

    //書き出したデータのソート
    var data = sheet.getRange(2, 1, tate_ar.length, tate_ar[0].length + 1);
    data.sort({column: 1, ascending: true});

    //会社と取得日付を出力
    //取引所説明、記録時間を纏めてリスト化します。
    var company_getymd_array = [];
    for(var i=0;i<object.length;i++){
      //Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd HH:mm:ss")
      //Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd HH:mm:ss")
      if(company_getymd_array.includes(object[i]['取引所説明']+";;;"+Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd"))){
      }else{
        company_getymd_array.push(object[i]['取引所説明']+";;;"+Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd"));
      }
    }
    
    var tate_ar = [["取引所説明","取得時間"]];
    for(var i=0;i<company_getymd_array.length;i++){
      company_getymd_array_explode = company_getymd_array[i].split(";;;");
      tate_ar.push(company_getymd_array_explode);
    }
   
    var range = sheet.getRange(1,5,tate_ar.length,2);
   // range.setNumberFormat("yyyy/mm/dd日 dddd");
    range.setValues(tate_ar);
  }
}

function convertRowToObject(keys,values) {
  return values.map(function(row) {
    var object = {};
    row.map(function(column, index) {
      object[keys[index]] = column;
    });
    return object;
  });
}

function get_sheet_data_merge(sheet_name,sheet_ar){
  //sheet_ar = [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name);
  //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
  //列数はEで決め打ち
  range = sheet.getRange(2,1,sheet.getLastRow(),5);
  var data = range.getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][1]==""){
      data.splice(i);
    }
  }
  return data;
}



 

2022年10月20日 機能追加スクリプト変更

 

メニューに追加と、一応取引所毎のデータ取得日時を出すようにしました。

要は突合で全データを取得したよと言うのが一覧で分かるように。

取得日付も一覧で分かった方が良いかと。



// ver 0.1_20221020
function onOpen() {
  var ui = SpreadsheetApp.getUi();           
  var menu = ui.createMenu('追加したメニュー');  
  menu.addItem('計算実行', 'myFunction');   
  menu.addToUi();                            
}

function myFunction() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  sheet_ar = [];
  if (sheets.length > 0){
    for(sheet of sheets){
      if(sheet.getName()=="計算結果"){
      }else{
          data = get_sheet_data_merge(sheet.getName());
          for(var i=0;i<data.length;i++){
            sheet_ar.push(data[i]);
          }

      }
    }
    //連想配列化,各シートの情報を取得しています
    var keys = ["取引所説明","記録時間","仮想通貨","残高","コメント"];
    object = convertRowToObject(keys,sheet_ar)
    
    
    //通貨一覧作成,各シートのトークンリストを纏めて重複をなくす
    var token_array = [];
    for(var i=0;i<object.length;i++){
      if(token_array.includes(object[i]['仮想通貨'])){
      }else{
        token_array.push(object[i]['仮想通貨']);
      }
    }
    //合計計算    
    var token_renso={};
    for(var i=0;i<token_array.length;i++){
      token_renso[token_array[i]]=0;
    }
    for(var i=0;i<token_array.length;i++){
      for(var j=0;j<object.length;j++){
        if(token_array[i] == object[j]['仮想通貨']){
          token_renso[token_array[i]] = token_renso[token_array[i]] *1 + object[j]['残高'];
        }
      }
    }
    //縦配列化
    const d1 = dayjs.dayjs();
    var tate_ar = [["実行時刻",d1.format('YYYY-MM-DD HH:mm:ss')]];
    //const array = [Object.keys(token_renso),Object.values(token_renso)];
    for(var key in token_renso){
      var tmp_ar = [key,token_renso[key]];
      tate_ar.push(tmp_ar);
    }
    //書き出し
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("計算結果");
    sheet.clearContents();
      //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
      var range = sheet.getRange(1,1,tate_ar.length,2);
      range.setValues(tate_ar);

    //会社と取得日付を出力
    //取引所説明、記録時間を纏めてリスト化します。
    var company_getymd_array = [];
    for(var i=0;i<object.length;i++){
      //Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd HH:mm:ss")
      //Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd HH:mm:ss")
      if(company_getymd_array.includes(object[i]['取引所説明']+";;;"+Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd"))){
      }else{
        company_getymd_array.push(object[i]['取引所説明']+";;;"+Utilities.formatDate(object[i]['記録時間'], "JST", "yyyy/MM/dd"));
      }
    }
    
    var tate_ar = [["取引所説明","取得時間"]];
    for(var i=0;i<company_getymd_array.length;i++){
      company_getymd_array_explode = company_getymd_array[i].split(";;;");
      tate_ar.push(company_getymd_array_explode);
    }
   
    var range = sheet.getRange(1,4,tate_ar.length,2);
   // range.setNumberFormat("yyyy/mm/dd日 dddd");
    range.setValues(tate_ar);
  }
}

function convertRowToObject(keys,values) {
  return values.map(function(row) {
    var object = {};
    row.map(function(column, index) {
      object[keys[index]] = column;
    });
    return object;
  });
}

function get_sheet_data_merge(sheet_name,sheet_ar){
  //sheet_ar = [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name);
  //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
  //列数はEで決め打ち
  range = sheet.getRange(2,1,sheet.getLastRow(),5);
  var data = range.getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][1]==""){
      data.splice(i);
    }
  }
  return data;
}



 

2022年10月17日

計算方法は以下。ソースのままだけど要はそれぞれの場所ごとに合計して出力しています。

 


function myFunction() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  sheet_ar = [];
  if (sheets.length > 0){
    for(sheet of sheets){
      if(sheet.getName()=="計算結果"){
      }else{
          data = get_sheet_data_merge(sheet.getName());
          for(var i=0;i<data.length;i++){
            sheet_ar.push(data[i]);
          }

      }
    }
    //連想配列化
    var keys = ["取引所説明","記録時間","仮想通貨","残高","コメント"];
    object = convertRowToObject(keys,sheet_ar)
    //通貨一覧作成
    var token_array = [];
    for(var i=0;i<object.length;i++){
      if(token_array.includes(object[i]['仮想通貨'])){
      }else{
        token_array.push(object[i]['仮想通貨']);
      }
    }
    //合計計算    
    var token_renso={};
    for(var i=0;i<token_array.length;i++){
      token_renso[token_array[i]]=0;
    }
    for(var i=0;i<token_array.length;i++){
      for(var j=0;j<object.length;j++){
        if(token_array[i] == object[j]['仮想通貨']){
          token_renso[token_array[i]] = token_renso[token_array[i]] *1 + object[j]['残高'];
        }
      }
    }
    //縦配列化
    const d1 = dayjs.dayjs();
    var tate_ar = [["実行時刻",d1.format('YYYY-MM-DD HH:mm:ss')]];
    //const array = [Object.keys(token_renso),Object.values(token_renso)];
    for(var key in token_renso){
      var tmp_ar = [key,token_renso[key]];
      tate_ar.push(tmp_ar);
    }
    //書き出し
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("計算結果");
      //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
      const range = sheet.getRange(1,1,tate_ar.length,2);
      range.setValues(tate_ar);
  }
}

function convertRowToObject(keys,values) {
  return values.map(function(row) {
    var object = {};
    row.map(function(column, index) {
      object[keys[index]] = column;
    });
    return object;
  });
}

function get_sheet_data_merge(sheet_name,sheet_ar){
  //sheet_ar = [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name);
  //Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
  //列数はEで決め打ち
  range = sheet.getRange(2,1,sheet.getLastRow(),5);
  var data = range.getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][1]==""){
      data.splice(i);
    }
  }
  return data;
}