Adım Adım Excel’de Kripto Para Portföyü Oluşturma

Adım Adım Excel’de Kripto Para Portföyü Oluşturma

Son güncelleme: Ağustos 21, 2020

Kripto para portföyü, eğer takip ettiğiniz farklı sayıda kripto para varsa önemli bir araçtır.

Ben tüm kripto para al-sat işlemlerimi dünyanın en büyük ve aktif kripto para borsası Binance üzerinde yapıyorum. Binance hesabınız yoksa buradan kendinize hesap açıp kripto para alıp satabilirsiniz.

Piyasada çok fazla sayıda kripto para takip tool ve aracı bulabilirsiniz. Hatta mobil uygulamalar da mevcut. Ben size bugün Excel üzerinde kendi otomatik kripto para portföyünüzü nasıl oluşturacağınızı göstereceğim.

Her yerden takibi kolay olsun diye Google Drive kullanacağım. O yüzden buradaki kodlar Microsoft Excel’de çalışmayabilir. Belki MS Excel için de ayrı bir rehber yazarım.

Hazırsanız başlıyoruz!

Adım 1: Kurları otomatik çeken kodu yazalım

Şimdi öncelikle güncel kurları otomatik olarak çekebileceğim bir kod yazmam lazım. Google Drive’ın Script Editor’ü sayesinde bu hazırladığım kodu çalıştırabileceğim.

Şimdi öncelikle ne yapmak istediğimizi, neyi hedeflediğimizi belirleyim.

Hazırlayacağımız kod şunu yapacak: her 15 dakikada bir coinmarketcap.com api’si üzerinden belirlediğim koinlerin güncel bilgilerini çekecek. Gün sonunda da gerekirse bana genel bir bilgilendirme yapacak.

Bu işlevi yapan kodu aşağıda bulabilirsiniz;

var queryString = Math.random();
var ss = SpreadsheetApp.getActiveSpreadsheet();

// ======
// !!!
// ÖNEMLİ: Excel'de 'Kur' adında bir sekme oluşturun.  Verilerin yazılacağı yer burası olacak.
// !!!
// ======
var ssRates = ss.getSheetByName('Kur');

// ====== Para birimini belirleyin =======
// USD kullanacaksanız dokunmayın. Türk Lirası da seçebilirsiniz.
// Muhtemel para birimleri: 
  // "aud", "brl", "cad", "chf", "clp", "cny", "czk", "dkk", "eur", "gbp", "hkd", "huf", 
  // "idr", "ils", "inr", "jpy", "krw", "mxn", "myr", "nok", "nzd", "php", "pkr", "pln", 
  // "rub", "sek", "sgd", "thb", "try", "twd", "usd", "zar"
// ======================================
var targetCurrency = 'try'

// Tüm CoinMarketCap verilerini alıyoruz.
if (typeof targetCurrency == 'undefined' || targetCurrency == '') {targetCurrency = 'usd'};
var coins = getCoins();

function getData() {

  // ===== İzlenecek Koinler ======
  // İzlemek istediğiniz koinleri girin: Her satıra 1 tane, tek tırnak işareti, virgülle ayrılmış şekilde.
  // 'symbol' değerini kullanın: https://api.coinmarketcap.com/v1/ticker/?limit=0
  // ===========================
  var myCoins = [
    'XLM',
    'BTC',
    'BCH',
    'ETH',
    'XRB',
    'XMR',
  ]

  // Başlıkları oluşturuyoruz. Ne yaptığınızı bilmiyorsanız buraya dokunmayın.
  // İstemediğiniz veri varsa gizle seçeneği ile kapatın.
  // DOKUNMAYIN
  ssRates.getRange('A1').setValue("ID");
  ssRates.getRange('B1').setValue("Koin");
  ssRates.getRange('C1').setValue("Sembol");
  ssRates.getRange('D1').setValue("Sıra");
  ssRates.getRange('E1').setValue("Fiyat USD");
  ssRates.getRange('F1').setValue("Fiyat BTC");
  ssRates.getRange('G1').setValue("24S Hacim USD");
  ssRates.getRange('H1').setValue("Pazar Payı USD");
  ssRates.getRange('I1').setValue("Uygun Arz");
  ssRates.getRange('J1').setValue("Toplam Arz");
  ssRates.getRange('K1').setValue("Maksimum Arz");
  ssRates.getRange('L1').setValue("Değişim Oranı 1S");
  ssRates.getRange('M1').setValue("Değişim Oranı 24S ");
  ssRates.getRange('N1').setValue("Değişim Oranı 7G");
  ssRates.getRange('O1').setValue("Son Güncelleme");
  // USD harici para birimi seçildiyse ekstra sütun ekliyoruz.
  if (typeof targetCurrency !== 'usd') {
    ssRates.getRange('P1').setValue("Fiyat " + targetCurrency.toUpperCase());
    ssRates.getRange('Q1').setValue("24S Hacim " + targetCurrency.toUpperCase());
    ssRates.getRange('R1').setValue("Pazar Payı " + targetCurrency.toUpperCase());
  };


  // Yeni bir obje oluşturuyoruz.
  // Her objenin anahtarı koinin sembolü olacak.
  var myCoinsObj = {};
  var myCoinsCount = myCoins.length;
  for (var i = 0; i < myCoinsCount; i++) {
    var n = 0;
    while (coins[n]['symbol'] !== myCoins[i]) {
      n++;
    }
    
    myCoinsObj[coins[n]['symbol']] = coins[n];
        
    ssRates.getRange('A'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['id']);
    ssRates.getRange('B'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['name']);
    ssRates.getRange('C'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['symbol']);
    ssRates.getRange('D'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['rank']);
    ssRates.getRange('E'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['price_usd']);
    ssRates.getRange('F'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['price_btc']);
    ssRates.getRange('G'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['24h_volume_usd']);
    ssRates.getRange('H'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['market_cap_usd']);
    ssRates.getRange('I'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['available_supply']);
    ssRates.getRange('J'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['total_supply']);
    ssRates.getRange('K'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['max_supply']);
    ssRates.getRange('L'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['percent_change_1h']);
    ssRates.getRange('M'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['percent_change_24h']);
    ssRates.getRange('N'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['percent_change_7d']);
    ssRates.getRange('O'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['last_updated']);
    if (typeof targetCurrency !== 'usd') {
      ssRates.getRange('P'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['price_' + targetCurrency]);
      ssRates.getRange('Q'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['24h_volume_' + targetCurrency]);
      ssRates.getRange('R'+(i+2).toString()).setValue(myCoinsObj[myCoins[i]]['market_cap_' + targetCurrency]);
    };
  }

}
  
  //
  // AŞAĞIDAKI KISIMLARA DOKUNMAYIN
  // SİHRİN GERÇEKLEŞTİĞİ YER BURASI
  //

function getCoins() {

  var url = 'https://api.coinmarketcap.com/v1/ticker/?convert=' + targetCurrency + '&limit=0?';
  var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  var json = response.getContentText();
  var data = JSON.parse(json);
  
  return data;
}

function getEthBalance(ethApiKey,ethAddress) {

  var obj = JSON.parse (UrlFetchApp.fetch("https://api.etherscan.io/api?module=account&action=balance&address="+ethAddress+"&tag=latest&apikey="+ethApiKey));
  var data = (obj.result);
  
  return data * Math.pow(10,-18);
}

function getVtcBalance(vtcAddress) {

  var obj = UrlFetchApp.fetch("http://explorer.vertcoin.info/ext/getbalance/"+vtcAddress);     
  
  return obj;
}


function getRate(currencyId) {

  if (typeof targetCurrency !== 'undefined') {conversionRate = 'usd'};

  var url = 'https://api.coinmarketcap.com/v1/ticker/' + currencyId + '/?convert=' + targetCurrency;
  var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  var json = response.getContentText();
  var data = JSON.parse(json);
  var obj = parseFloat(data[0]['price_' + targetCurrency]);

  return obj;
}

function getWebRate(currencyId) {
  //Örnek çıktı: 
  // '=IMPORTXML("https://coinmarketcap.com/currencies/zeeyx?3908288283","//span[@id=\'quote_price\']")';   
  
  var coinScrape1 = '=IMPORTXML("https://coinmarketcap.com/currencies/';
  var coinScrape2 = '","//span[@id=\'quote_price\']")';
  
  return coinScrape1 + currencyId + '?' + queryString + coinScrape2;
}

Adım 2: Google Drive’da Excel tablomuzu oluşturuyoruz

Kodumuz hazır olduğuna göre Excel’imizi oluşturabiliriz.

Yapmanız gerekenler adım adım şu şekilde:

  • Google Drive‘a gidin. (Gmail hesabınız olduğunu varsayıyorum)
  • New butonuna tıklayıp, Google Sheets seçeneğini seçin.

  • Yeni oluşturduğunuz Excel tablosuna bir ad verin. Örneğin; Kripto Para Portföyüm gibi.
Kripto para portföyü
Kripto para portföyü
  • Mevcut sekmeyi “Kur” ile adlandırın. Burası önemli. Tam olarak büyük harfle başlayacak şekilde “Kur” yazmalısınız.

  • Tools menüsünden Script Editor‘ü seçin.

  • Açılan script editöründe herşeyi silin ve yukarı adım 1’de hazırladığımız kodu yapıştırın.

  • ctrl+s ile scriptimizi kaydedelim. İstediğiniz herhangi bir adı verebilirsiniz.

  • Edit‘e tıklayıp “Current Project Triggers” seçelim.

  • Çıkan ekranda “Add new trigger” seçip yeni bir trigger ekleyelim. Trigger’ın amacı kurları ne aralıklar çekeceğimizi belirlemek.

  • Çıkan ekranda getData, Time-driven, Minutesi timer ve Every 15 minutes seçelim. Burası size kalmış ne kadar aralıklarla kurların güncellenmesini istiyorsanız, ona göre değiştirebilirsiniz.

  • Save diyip kapatalım.
  • Bu adımda sizden erişim onayı isteyecektir. Google bu kodu tanımadığı için güvenmediğini söyleyecektir. Ama bu adımı Advance seçeneğini seçerek geçebilirsiniz.

  • Çıkan ekranda Allow ya da İzin ver butonuna tıklayın.

  • Artık kodumuz çalıştırılmaya hazır. Şimdi Run-Run Function-getData diyelim.

  • Bu komutu çalıştırdığınızda Excel dökümanınızdaki Kur sekmesine kur bilgilerinin geldiğini göreceksiniz.

  • Kur bilgisini çekmek istediğiniz kripto paraların listesini kod içerisinde aşağıdaki satırda düzenleyebilirsiniz. Hangi koinin bilgisini almak istiyorsanız onu yazabilirsiniz.

  • Şimdi biraz formatla oynayalım. USD yazan tüm alanları USD formatına getirelim. Tek yapmanız gereken ilgili alanları seçip $ işaretine tıklamanız. Böylece aşağıda görmüş olduğunuz gibi dolar işareti belirecektir. Bu işlemi şu alanlar için yapın: Fiyat USD24S Hacim USDPazar Payı USD.

 

  • Benzer şekilde Türk Lirası olarak belirlediğimiz alanların da formatını düzeltelim. Fiyat TRY, 24S Hacim TRY ve Pazar Payı TRY alanlarını seçip Turkish Lira seçeneğini seçelim.

İşte hepsi bu! Kur bilgilerini başarıyla çektik. Artık her 15 dakikada bir kod arka planda çalışıp kur bilgilerini çekiyor olacak.

Şimdi sıra portföyünüzü oluşturmaya geldi!

Adım 3: Kripto para portföyü oluşturma

Kur bilgilerini otomatik olarak çekmeye başladığımıza göre şimdi gelin portföyümüzü oluşturalım.

Sırayla aşağıdaki adımları takip edin.

  • Öncelikle + butonuna basarak “Portföyüm” adında yeni bir sekme oluşturalım.

 

  • Yeni excel sekmesinde aşağıdaki gibi Bakiye başlıklı bir tablo oluşturuyoruz. Bu tabloya özetle çeşitli borsalarda ya da soğuk cüzdan dediğimiz cüzdanlarda tuttuğumuz mevcut kripto para bakiyelerimizi giriyoruz.

 

  • Bu tablonun altında “Değer” adını verdiğimiz ikinci bir tablo oluşturuyoruz. Bu tablo bizim mevcut bakiyemizin güncel kurlar üzerinden değerini verecek.

 

Ve işte bu kadar! Hepsi bu! Artık her 15 dakikada bir güncellenecek ve mevcut bakiyelerinizin güncel değerini verecektir. Siz tabii bu excel’in üzerinde kendi ihtiyacınıza göre oynayıp değişiklikler yapabilirsiniz. Kolay gelsin!

10 responses to “Adım Adım Excel’de Kripto Para Portföyü Oluşturma

ali

TypeError: undefined öğesinden “symbol” özelliği okunamıyor. (satır: 74, dosya: “Kod”)
böyle bir hata veriyor yeni koin eklediğim zaman. neden olabilir?

Evrim Dönmezgel

Bu hatayı ben de aldım. Bazı koinleri bulamıyor gibi.

ali

sub ekliyorum problem yok. ama arn ekliyorum bulamıyor heralde

Evrim Dönmezgel

Evet, bazı koinleri bulamıyor.

ilker sakiner

adım 3 de verdiğin görseller de sanıyorum bir hata var, excel görüntüsü olmadı gerekiyor sanıyorum. bir kontrol edebilir misiniz?

Evrim Dönmezgel

Tam anlamadım, aldığınız hata nedir?

Haluk

Merhaba , öncelikle elinize sağlık, mükemmel bir çalışma olmuş. Bakiye ve değer tablolarını oluşturamadım, farklı görseller var sanırım, kontrol edebilir misiniz.

ramazan

TypeError: undefined öğesinden “symbol” özelliği okunamıyor. (satır: 63, dosya: “Kod”)Kapat

hatası verdi hocam nasıl düzeltirim

ibrahim taçkın

selamlar bende TypeError: undefined öğesinden “symbol” özelliği okunamıyor. (satır: 63, dosya: “Kod”) hatası aldım çözüm için yardım rica ederiz. tşklr

Hakan Taşkın

SyntaxError: Unexpected token < in JSON at position 0 (satır: 111, dosya: "Kod")Kapat

hatası alıyorum bende

Bir Cevap Yazın