์๋ ํ์ธ์ Saturday์ ๋๋ค.
1ํ๊ณผ 2ํ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ผ๋๋ฐ, 3ํ์ด ๋ฆ์์ต๋๋ค.
์ ์ ํ์ด๊ธฐ์ ๊ฐ์ api๊ธ์ด๊ธฐ์, ํด๋ก๋์ค์ ์คํ์ ์ถฉ์ ํ ๋ค, ์ด ๊ธ์ ์ฐ๊ณ ์ถ์์ต๋๋ค :)
๋๋์ด ํด๋ก๋์ค์ ์คํ ์ถ๊ธ ์ ํ์ด ํ๋ ธ๋ค์. ๋ชจ๋ ๊ธฐ์์์ฃ ? ใ ใ
์ ๋ ๋ฐฉ๊ธ ์์๋๋ ์คํ์ ์ถฉ์ ํ์ต๋๋ค!! ์ด ๊ธ์ ์์ฑํ๊ณ ์ ์ ๋ณดํ ํ์๋ฅผ ํ ์คํธ ํด๋ณด๊ณ ์ถ๋ค์ :)
์ ๊ฐ ์ง๋๋ฒ์ ์์ฑํ์๋ api๊ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1ํ api ํจ์์ ์๋ฆฌ ์ค๋ช ,
2ํ api ํจ์๋ฅผ ํ์ฉํ์ฌ ๊ฑฐ๋์์ ์ฌ๋ฌ ๊ฐ์ํํ ๊ฐ๊ฒฉ ๋ฐ์์ค๊ธฐ
๊ทธ๋ฆฌ๊ณ ์ค๋์ ๊ฑฐ๋์์ ๊ฐ์ํํ๊ฐ๊ฒฉ์ ์ด์ฉํด์ ๋ด๊ฐ ํฌ์ํ ๊ฐ์ํํ์ ๊ฐ๊ฒฉ์ ์ด ๊ฒฐ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ด์ฉ์ ๋๋ค.
๋๋ถ์ด ์ ๊ฐ ์์ฑํ๋ api ์ฝ๋๋ค๋ ๊ณต๊ฐํ๊ณ google spreadsheet์์ ์ฌ์ฉํ ์ ์๋ google finance ํจ์๋ ๊ฐ๋จํ ๋ค๋ค๋ณผ๊น ํฉ๋๋ค.
์ด๊ฑธ ํ์ฉํ์๋ฉด, ์ฃผ์ ๊ฐ๊ฒฉ๋ ์ฃผ์์ฑ ์์ด ์ค์๊ฐ์ผ๋ก ๋ณผ ์ ์๋ spreadsheet๋ฅผ ์์ฑํ์ค ์ ์์ต๋๋ค.
์ ๊ทธ๋ผ ์ง๋๋ฒ์ ์์ฑํ๋ ์์ ํ๋ฉด์ ๋ณด์์ฃ .
์ฌ๊ธฐ์ ํ์ฌ ๊ฐ๊ฒฉ์ ์ ์ ์๊ณ ํ์ฌ๊ฐ๊ฒฉ์ ๋ฐ์ ๋ด๊ฐ ํ์ฌ ๊ฐ์ง ํํ ๊ฐฏ์๋ฅผ ์ ๋ ฅํด๋ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ SUMPRODUCT๋ ํจ์๋ฅผ ์ด์ฉํ์ฌ ํ์ฌ๊ฐ๊ฒฉ๊ณผ ๋ด๊ฐ ๊ฐ์ง ํํ๊ฐฏ์๋ฅผ ๊ณฑํด์ ์๋์ผ๋ก ๋ํ๋ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐธ ์ฝ์ฃ ? ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์ด์ก์ด ๋์ต๋๋ค.
๊ถ๊ธํ์ ๋ถ๋ค์ ์ง์ ๋ํด๋ณด์ ๋ ๋ฉ๋๋ค. ๋ ์ง์๋ TODAYํจ์๋ฅผ ์ฐ๋ฉด ์ค๋ ๋ ์ง๊ฐ ์๋์ผ๋ก ๋์ค๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ๊ฑฐ๋์์์ ๊ฐ์ง ์ฝ์ธ์๋ฅผ ๋์ ์ผ๋ก ๋ณด๊ณ ์ถ๋ค๋ฉด, ํน์ ๊ฐ๊ฒฉ์ ๋์ ์ผ๋ก ๋ณด๊ณ ์ถ๋ค๋ฉด ํด๋น ์ ๋ณด๋ฅผ
๋ ์ง๋ฅผ ๊ธฐ์ ํ๊ณ ์๋๋ก ์์ ๋๊ฐ์๋ฉด ๋๊ฒ ์ต๋๋ค.
์์๋๊ฐ์ค๋, ์ฃผ์ํ์ ์ผ ํ ์ ์ด ์์ต๋๋ค. I13 ๊ฐ์ ๊ฒฝ์ฐ์๋ SUMPRODUCT๋ผ๋ ํจ์๊ฐ ๊ฑธ๋ ค์์ต๋๋ค.
ctrl+c๋ก ๋ณต์ฌํ๊ณ ctrl+v๋ก ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ๋ฉด ํจ์๊น์ง ๊ฐ์ด ๋ณต์ฌ๊ฐ ๋์ด์ ์๋ชป๋ ๊ฐ์ด ๊ธฐ๋ก๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ๊ฐ๊ฒฉ์ ๊ณฑํด์ ํ๊ธฐ๋๋ฌธ์ ๊ธฐ๋ก์ด ๋ชฉ์ ์ด์๋ผ๋ฉด ๊ฐ๋ง ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๋ ๊ฒ์ด ๋ง์ต๋๋ค.
์ด๋ด ๋๋ ctrl+c๋ก ๋ณต์ฌ๋ฅผ ํด์ ctrl+shift+v๋ฅผ ๋๋ฌ์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ๋ฉด ํ์ฌ์ ๊ฐ๊ฒฉ๋ง ๋ณต์ฌํ ์ ์์ต๋๋ค.
์์ ์๋์ ์ฐจ์ด๊ฐ ๋ณด์ด์๋์? ๋ฐ์๋ ํจ์๊ฐ ์์ด ๊ฐ๋ง ๋ณต์ฌ๊ฐ ๋์์ต๋๋ค.
์ ๊ทธ๋ผ ์ ๊ฐ ์ฌ์ฉํ ํจ์๋ค์ ์ฒจ๋ถํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
// ๋ธ๋ญ์ฒด์ธํฌ์ ์๋ฐ์คํฌ๋ฆฝํธํจ์ ๊ณต์ ์ฉ ์์ค
// ์ ์์ : ์ค๋์ํ ์์ผ [email protected]
// ์์ ํ์ฌ ๊ฐ์ธ ์ฌ์ฉ์ ๊ฐ๋ฅํ๋ ๋ฌด๋จ ๋ฐฐํฌ ๊ธ์ง
// bithumb ๊ฐ์ํํ 1๊ฐ BTCํ์จ returnํจ์
function getBlockChain2KRWByBithumb(coin) {
if(coin==null)
{
coin = "BTC";
}
var url = "https://api.bithumb.com/public/ticker/"+coin;
var response = UrlFetchApp.fetch(url);
var test = response.getContentText();
var myjson = JSON.parse(test);
var KRW_value = myjson["data"]["closing_price"];
return parseFloat(KRW_value);
}
// bithumb ๊ฐ์ํํ ์ฌ๋ฌ๊ฐ BTCํ์จ๋ก returnํจ์
function getBlockChainArray2KRWByBithumb(arCoin)
{
var url = 'https://api.bithumb.com/public/ticker/ALL';
var response = UrlFetchApp.fetch(url);
var test = response.getContentText();
var myjson = JSON.parse(test);
var splitResult = arCoin.split(",");
var AllData="";
for(var i=0;i<splitResult.length;i++)
{
var strCoin = splitResult[i];
var Current = parseFloat(myjson['data'][strCoin]['closing_price']);
var Opening = parseFloat(myjson['data'][strCoin]['opening_price']);
var RateOfChange = (BTC_Current-BTC_Opening)/BTC_Opening;
var Result = RateOfChange+','+Opening+","+Current;
AllData = AllData+'/'+Result;
}
return AllData;
}
// poloniex ๊ฐ์ํํ 1๊ฐ BTCํ์จ returnํจ์
function getBlockChin2BTCByPoloniex(coin)
{
if(coin==null)
{
coin = 'ETH';
}
var api_host = 'https://poloniex.com/public?command=returnTicker';
var response = UrlFetchApp.fetch(api_host);
var test = response.getContentText();
var myjson = JSON.parse(test);
var strCoin = 'BTC_'+coin;
var BTC_value = myjson[strCoin]['last'];
return parseFloat(BTC_value);
}
// ๋ฌธ์์ด ๋ถ๋ฆฌํจ์ num๋ฒ์งธ ๋ฌธ์๋ฅผ ๊บผ๋ด์ค
function returnSplitValue(a,splitAlphabet,num)
{
var splitResult = a.split(splitAlphabet);
var result = 0;
for(var i=0;i<splitResult.length;i++)
{
if(i==num){
result = splitResult[i];
}
}
return parseFloat(result);
}
// poloniex ๊ฐ์ํํ ์ฌ๋ฌ๊ฐ BTCํ์จ๋ก returnํจ์
function getBlockChainArray2BTCByPoloniex(arCoin)
{
var api_host = 'https://poloniex.com/public?command=returnTicker';
var response = UrlFetchApp.fetch(api_host);
var test = response.getContentText();
var myjson = JSON.parse(test);
var splitResult = arCoin.split(",");
var AllData="";
for(var i=0;i<splitResult.length;i)
{
var strCoin = 'BTC_'+splitResult[i];
if(splitResult[i] == "BTC") strCoin = "USDT_BTC";
var BTC_Current = parseFloat(myjson[strCoin]['last']);
var BTC_RateOfChange = parseFloat(myjson[strCoin]['percentChange']);
var BTC_Result = BTC_RateOfChange+','+BTC_Current;
AllData = AllData+'/'+BTC_Result;
}
return AllData;
}
// bitrexx ๊ฐ์ํํ ์ฌ๋ฌ๊ฐ BTCํ์จ๋ก returnํจ์
function getBlockChainArray2BTCByBitrexx(arCoin)
{
var api_host = 'https://bittrex.com/api/v1.1/public/getmarketsummaries';
var response = UrlFetchApp.fetch(api_host);
var test = response.getContentText();
var myjson = JSON.parse(test);
var splitResult = arCoin.split(",");
var AllData="";
for(var i=0;i<splitResult.length;i)
{
var strCoin = 'BTC-'+splitResult[i];
if(splitResult[i] == "BTC") strCoin = "USDT-BTC";
for(var coinNum =0;coinNum<myjson['result'].length;coinNum++)
{
var marketname = myjson['result'][coinNum]['MarketName'];
if(marketname == strCoin)
{
var BTC_Current = myjson['result'][coinNum]['Last'];
var BTC_Opening = myjson['result'][coinNum]['PrevDay'];
var BTC_RateOfChange = (BTC_Current-BTC_Opening)/BTC_Opening;;
var BTC_Result = BTC_RateOfChange+','+BTC_Current;
AllData = AllData+'/'+BTC_Result;
break;
}
}
}
return AllData;
}
์ด์ ์ด ํจ์๋ค์ ์ด์ฉํ์ฌ ๋น์ธ, ํด๋ก๋์ค, ๋นํธ๋ ์ค ๊ฑฐ๋์์ ๊ฐ๊ฒฉ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ ธ์ค๋ ์ํธ๋ฅผ ๊ตฌ์ฑํ์ค ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด ๊ฑฐ๋์์ ๊ฐ์ง๊ณ ์๋ ์ดํฉ์ ๊ตฌํ๋ ์ํธ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. ์ดํฉ ๊ธ์ก์ ๊ฐ์ง๊ณ ์์ ๋ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ถ๊ฐ๋ก, ์ฆ๊ถ์ ํ์๋ ๋ถ๋ค์ด ์์ฉํ๊ธฐ์ข์ google finance ํจ์ ์ฌ์ฉ๋ฒ ๊ณต์ ํด๋๋ฆฝ๋๋ค.
GOOGLEFINANCE("USDKRW","price",B20) ๋ B20์ ์๋ ๋ ์ง์ ๋ฌ๋ฌํ์จ์ ๊ฐ์ง๊ณ ์ค๋ ํจ์์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ ๊ทธ๋๋ก ํ๋ฉด 2*2์์ญ์ ๊ฐ๊ฒฉ์ ๊ฐ์ง๊ณ ์ค๋๋ฐ ์ด ์ค์ 2,2์ ์์นํ ๊ฐ๊ฒฉ๋ง ๊ฐ์ ธ์ค๊ธฐ์ํด INDEXํจ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
์ง์ ์ค๋์ ํ์จ์ด ๋ถ๋ฌ์์ก์ต๋๋ค.
INDEXํจ์๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์ต๋๋ค.
์ ๊ทธ๋ผ ์ฃผ์๊ฐ์ ์๊ณ ์ถ์ผ์๋ค๋ฉด USDKRW์๋ฆฌ์ ํด๋น ์ฃผ์์ ์ฝ๋๋ช
์ ๋ฃ์ผ์๋ฉด ๋ฉ๋๋ค.
์ผ์ฑ์ ์์ ์ฝ๋๋ช
์ ๋ณต์ฌํด์ ๋ฃ์ผ์๋ฉด,
์ด๋ ๊ฒ ์ผ์ฑ์ ์์ ํ ๊ฐ๊ฒฉ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
์ฃผ์์ ํ์๋๋ถ๋ค์ ์ด๊ฑธ ํ์ฉํ์ ๋ ํฐ ๋์์ด ๋์๊ฒ ์ฃ ?
์ค๋์ ํฌ์คํ ์ ์ฌ๊ธฐ๊น์ง ์ ๋๋ค.
api๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ํํ ๊ฑฐ๋์์ ์ด ์์ก์ ๊ตฌํ๊ธฐ ์๋ฆฌ์ฆ๊ฐ ๋ชจ๋ ๋๋ฌ์ต๋๋ค.
๋์์ด ๋์์ด์ผ ํ ํ ๋ฐ ๊ฑฑ์ ์ด๋ค์ :)
๋ง์ฝ ์์ฑ๋ณธ์ ๋ณด๊ณ ์ถ์ผ์ ๋ถ๋ค์ https://steemit.com/google/@ineedthesleep/42jvhr
์ด ๊ฒ์๊ธ๋ก ๊ฐ์ ์ ์ฌ์ฉ๋ฒ ์ต๋ ๋ฐ ์์ฑ๋ณธ ํ์ผ์ ๊ฐ์ ธ๊ฐ์๋ฉด ๋ฉ๋๋ค.
์ฆ๊ฒจ๋ด์ฃผ์ ์คํฐ๋จธ๋ค ๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค.
์ฌ๋ฏธ์๊ฒ ๋ณด์ จ๋ค๋ฉด follow์ upvoting ๋ถํ๋๋ฆฝ๋๋ค.
์ข์ ์ฃผ๋ง ๋ณด๋ด์ธ์ ^^