AI를 활용한 재밌는 것들을 개발합니다

2022년 10월 11일 화요일

방구석지니 퀀트 마켓타이밍 차트 기능 개발 완료


 구간별 투자되는 퀀트 포트폴리오 파일 정보와 마켓타이밍 매수/매도 조건이 주어졌을 때 백테스트가 되도록 하는 기능을 완성했다.

UI 내부에서는 R코드가 돌아가기 때문에 R코드를 함수화 시켜서 UI에 입력된 정보를 R함수의 인자로 던져주는 방식으로 개발했다. 

R코드는 무사히 실행이 잘 되었는데... 문제는 백테스트 결과를 보여주는 게 되지 않는다는 것. R코드 상으로는 ggplotly 로 차트 화면이 잘 나오지만 C# 내부에서 돌아간 코드의 ggplotly 는 외관상 아무런 반응이 일어나지 않는다. 예전에 C#의 panel을 이용해서 R코드의 차트를 보여줄 수 있었는데 테스트 한 바로는 plot 함수로 그린 차트는 C# panel에서 잘 보여지는데 ggplotly 는 보여지지 않았다. 이걸 해결하려고 이래저래 많이 구글링을 해봤는데 결국 R코드상에서 차트를 html 형태로 변환해서 파일로 만든 후 그 파일을 C#에서 크롬을 실행해 보여주는 방식을 하기로 했다. C# winform의 webBrowser를 사용해서 프로그램 UI에 바로 보여주려고 했는데 스크립트 에러가 나면서 보여지지 않았다. 할 수 없이 크롬을 따로 실행시켜 보여주는데 오히려 그게 더 편할 수 있겠다는 생각이 들었다. UI에서 차트를 보여주려고 했던 영역에는 분기별 투자 통계 등을 표시해주면 될 거 같다.

기념으로 실행 성공한 차트를 아래에 붙여본다.


작년 5월1일부터 분기 퀀트투자를 한 백테스트 결과다. 매수후보유 방식으로 분기별 리밸런싱을 했다면 현재 9%정도 수익인데... 마켓타이밍을 사용했다면 18%의 수익이다... 결과적으로 현재로서는 마켓타이밍을 적용했었다면 수익이 더 좋았을 거라는... 

백테스트 기능이 만들어지면 편하게 마켓타이밍의 효과를 더 검증할 수 있을 거 같다.

댓글 없음:

댓글 쓰기

가장 많이 본 글