splunk/ 5. 주가예측

Algo rhythm·2022년 7월 13일
0

splunk

목록 보기
13/24

주가 예측

출처 : https://cafe.naver.com/splunker?iframe_url_utf8=%2FArticleRead.nhn%253Fclubid%3D26625693%2526articleid%3D443

시계열 데이터 예측 by predict

index="kospi"  earliest=-180d
| eval k_code = code
| rex field=code "^(?<code>\d+).KS"
| lookup kospi_200 code OUTPUT name 
| where name = "SAMSUNG ELEC"
| sort _time
| table _time, Close
| predict Close


종가 기준 예측 가격을 확인


2020-10-01 ~ 2020-12-31 까지의 기록을 바탕으로 2021-01-04까지의 예측값을 보여줌

시계열 데이터 예측 by Machine Learning Toolkit

index="kospi" code="005930.KS" | sort _time

실습 시점이 한참 나중이라 원본 코드의 일부를 수정

종가 기준

holdback : 모든 데이터를 통한 학습이 아닌 전체 데이터의 일부만을 가지고 학습을 실행. 여기선 100개 좀 안되는 데이터 중 1/4 정도를 학습 데이터로 사용함.

Kalman Filter 결과

  • R2(결정계수) : 얼마나 관계가 있는지를 -> 높을수록 좋음
  • Root Mean Squared Error (RMSE) :
    -> 평균제곱근차, 예측값과 실제값의 차이를 평균으로 나타냄
    -> 낮을수록 높은 예측

실험 기록


실험을 반복하면서 좋은 분석 방식을 가져오자


좋은 실험 방식을 채택하고 결과를 저장


내가 저장한 실험모델이 등록된 것을 확인 가능


"검색에서 열기"를 클릭하면 검색창에 해당 모델의 작동 입력코드가 나오지만 보완 필요

index="kospi" earliest=-180d code="005930.KS" 
| sort _time 
| predict "Close" as prediction algorithm=LLT holdback=25 future_timespan=30 upper95=upper95 lower95=lower95 
| `forecastviz(30, 25, "Close", 95)`

Add the result of prediction by machine learning to dashboard


machin learning toolkit에서 쓰던 문구 그대로 stock app 에서 사용하면 에러가 난다

index="kospi" earliest=-180d code="005930.KS" 
| sort _time
| table _time , Close
| predict "Close" as prediction algorithm=LLT holdback=25 future_timespan=30 upper95=upper95 lower95=lower95 
| `forecastviz(30, 25, "Close", 95)`

수정된 코드


나의 자산 대시보드에 추가하고 holdback 영역 편집(보기 좋게 하기 위해)

검색 명령어를 수정한 코드

index="kospi" earliest=-180d 
| eval k_code = code
| rex field=code "^(?<code>\d+).KS"
| lookup kospi_200 code OUTPUT name 
| where name = "$stock_code$"
| sort _time
| table _time, Close
| predict "Close" as prediction algorithm=LLT future_timespan=5 upper95=upper95 lower95=lower95 
| `forecastviz(5, 0, "Close", 95)`

주가 예측 차트에 드릴다운 속성 추가

<row>
      <panel  depends="$stock_code$" id="panelRefresh">
      <html>
        <div><button id="reset_tokens" class="btn btn-primary">HIDE</button></div>
      </html>
  </panel>
  </row>

코드 추가


hide 버튼 추가됨

javascript를 추가하여 hide 버튼이 동작하도록 만들기

vi /opt/splunk/etc/apps/stock/appserver/static/reset_tokens.js

파일 편집

// 필요한 스플렁크 자바스크립트를 import  한다. 
require([ 'jquery', 'splunkjs/mvc/simplexml/eventhandler' ], 
       // 호출되는 함수 
        function( $, EventHandler) {
                // 원하는 소스를 추가한다. 
                // reset_tokens  라는  ID를 찾아서(새로 만든 버튼) 클릭 이벤트를 추가한다. 
                $('#reset_tokens').on("click",function()
                { 
                     // stock_code 토큰을 리셋해준다. 
                     EventHandler.unsetToken("stock_code");
        });
});

가이드에 따라 진행하더라도 캐시때문에 안될 경우가 있다. "http://[mysplunkIP]:8000/ko-KR/_bump" 해당 주소로 이동하여 Bump Version 을 올린 후 시도해 보면 되기도 한다.
단, 모든 가이드를 충실히 이행했을 때만, 이것도 안되면 리눅스를 껐다 켜보자

profile
배운 건 써 먹자

0개의 댓글