본문 바로가기

Google Suite

가상주식 투자 시스템 만들기 #6/7 (일단위 수익률 알람받기)

2020/07/17 - [Google Suite] - 가상주식 투자 시스템 만들기 #5 (개인별, 종목별 순위보여주기)

 

가상주식 투자 시스템 만들기 #5 (개인별, 종목별 순위보여주기)

2020/07/16 - [Google Suite] - 가상주식 투자 시스템 만들기 #4 (주식종목별 수익률 계산하기) 가상주식 투자 시스템 만들기 #4 (주식종목별 수익률 계산하기) 2020/07/01 - [Google Suite] - 가상주식 투자 시스..

rpa-bot.tistory.com

지난글까지는 회원들로 부터 추천받은 수식들에 대한 수익률를 계산하는 내용이었고 이번글은 수익률에 대해서 회원들과 공유하는 내용을 정리한 글입니다.

 

4주간의 수익률 대회긴하지만 참여한사람들의 흥미와 재미를 이끌어내기 위해서 일일 단위로 한국장 마감한 후와 (오후 4-5시사이) 미국장 마감한 후 (오전 7-8시사이)  수익률에 대해서 요약하여 공유를 하였습니다.

 

일일 2회 공유 되는 내용은 회원들이 추천해준 주식들에 대한 평균 수익률과 수익률에 대해서 비교를 위한 주요 주식 지표들과 해당 날짜별 개인별, 종목별 수익률 순위 Top5, 일별 순위 상승 하락 Top 5에 대한 지표들을 공유하였습니다.

매일 회원들과 공유 되는 수익률정보

동호회 운영은 카카톡을 이용해서 되고 있지만 카카오톡 단체방에는 다른 메신저와는 달리 자동으로 BOT 이 메세지를 전달할수 있는 API 가 없는 관계로 Slack 개인메신져로 자동으로 알람을 받고 해당 메세지를 복사하여 카톡방으로 전달해주었습니다.

 

요약 페이지 정보는 '지표'시트에서 주식 수익률계산할 때와 동일하게 GoogleFinance 함수를 이용하여 필요 값들을 가져왔습니다. 금, 오일, 미국채권 가격들은 미국의 대표 ETF 가격정보를 가져왔고, 국내 및 다우 나스닥 주식도 해당 심벌을 이용하면 가져 올수 있습니다. 

 

원달라 환율시세와 비트 코인시세도 GoogleFinace 함수에서 주식 정보와 동일하게 심벌를 이용하여  값을 가져올수 있습니다.

 

GoogleFinace 를 이용하여 환율 정보 및 대표지표 값 가져오기

개인별, 종목별 수익률 Top 5 는 기존에 만들어진 '개일별수익률' 시트와 '주식수익률순위' 시트에서 상위 5개 항목을 가져왔고 순위 상승, 하락 Top 5는 '개인별수익률' 시트에서 Pivot 차트를 이용하여 순위변동순위값의 내림차순, 오름차순 정렬을 이용하여 '순위상승', '순위하락' 시트를 만들어 주었습니다.

 

순위 상승 하락 Top5 표시를 위한 피벗테이블

 

해당 자료들의 취합을 쉽게 해주시기 위해서 '요약' 시트를 만들어서 메신저로 전달한 정보들을 모아 주었으며 '알람시트' A행1열에 메신저로 전달시 좀더 편하게 처리하기 위해 CONCATENATE 함수를 이용하여 '요약'시트에 여러행으로 되어 있는 정보들을 모아서 넣어주었습니다.

메신저로 알람을 보내기위해 행열에 관련 정보 모아주기

모아진 정보는 GAS 의 트리거를 이용하여 오전 6-7시 사이, 오후 4-5시사이에 개인 Slack 메신저로 '알람시트' A행 1열값을 자동으로 보내게 만들었습니다.

특정 시간에 자동 실행 트리거 설정

SendAllInfo 를 6시-7시 사이에 실행하는데 SendAllInfo 함수는 '알람시트' 의 A행1열값을 받아서와  Slack 메신저로 보내는 역활을 수행합니다.

function SendAllInfo()
{
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("알람시트");
  Logger.log(numRows);
  var curInfo =sheet.getRange(1, 1).getValue();
  
  SendMessage(curInfo);
  
}

function SendMessage(Message) {

  var url=  "*********************************************************";
  
  var payload = {
     "channel" : "@******", // <-- optional parameter, use if you want to override default channel
     "username" : "성투연 주식봇", // <-- optional parameter, use if you want to override default "robot" name 
     "text" : Message, // <-- required parameter
     "icon_emoji": ":robot_face:", // <-- optional parameter, use if you want to override default icon, 
  }  
  sendToSlack_(url,payload)
}

function sendToSlack_(url,payload) {

   var options =  {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(payload)
  };
  return UrlFetchApp.fetch(url, options)
}

 

참고 GAS 를 이용하여 구글 시트에서 특정 시간에 Slack 메신져로 메세지 전달 받기 

2020/06/02 - [Google Suite] - 주식 봇 만들기 #2/2 주식 정보 알람 받기

 

주식 봇 만들기 #2/2 주식 정보 알람 받기

2020/06/01 - [Google Suite] - 주식 봇 만들기 #1 주식정보가져오기 주식 정보를 알아보는 법을 알았으니 매매 타이밍과 장시작 시점과 장 종료 되는 시점에 알람을 보내는 방법을 알아보겠습니다. 주식

rpa-bot.tistory.com

2020/07/24 - [Google Suite] - 가상주식 투자 시스템 만들기 #7/7 (일단위 수익률 백업, 순위초기화하기)