크라우드 소싱 비트 코인 가격 예측 알고리즘을 구축하는 방법

비트 코인 가격이 상승할지 하락 할지를 가장 잘 예측하는 것은 무엇입니까? 적어도 하루 전에 사전 을 예측할 수있는 알고리즘이 있다면 어떨까요? 이것이 AlgoHive 프로젝트에서 우리가 구축하고있는 것이며 단계별로 공유 할 것입니다.

이 프로젝트는 29 % 긍정적 인 수익을내는 비트 코인 예측 알고리즘을 만든 방법에 대한 초기 게시물로 시작되었습니다.

이로써보다 강력한 알고리즘을 개선하고 만드는 최선의 방법에 대한 많은 대화가 시작되었습니다. 이제 우리는 투자자, 기계 학습 전문가, 데이터 과학자, 심지어 따라하고 더 많은 것을 배우고 싶어하는 초보자로 구성된 번성하는 커뮤니티를 보유하고 있습니다.

우리가 작업중인 첫 번째 프로젝트는 수익을 극대화하려는 의도로 주어진 날짜에 매수 / 매도 신호를 제공하는 비트 코인 예측 알고리즘을 구축하는 방법입니다. 데이터 과학자 커뮤니티 회원 중 한 명인 CodingNomads의 졸업생 인 Laura Vargas가 노력을 주도하고 있으며 GitHub에서이 BTC 신호 봇의 오픈 소스 버전을 만들고 있습니다.

다음은이 코드 저장소를 기반으로 한 로드맵입니다.

비트 코인 신호 API 로드맵

다음은 로드맵을 간략하게 보여줍니다.

내부 기능

첫 번째 단계는 프로젝트에 사용할 도구를 결정하는 것이 었습니다. 이 프로젝트는 오픈 소스 프로젝트이므로 Python 프로그래밍 언어와 원활하게 작동하는 대부분의 도구 중에서 선택할 수있는 훌륭한 무료 도구가 부족하지 않았습니다.

우리의 기술 스택은 기본 Python 프로그래밍 언어와 잘 작동하는 오픈 소스 기술을 기반으로합니다.

Pandas : Python 프로그래밍 언어를위한 고성능의 사용하기 쉬운 데이터 구조 및 데이터 분석 도구를 제공하는 오픈 소스 BSD 라이선스 라이브러리 :

Django : 빠른 개발과 깔끔하고 실용적인 디자인을 장려하는 고수준 Python 웹 프레임 워크입니다. 숙련 된 개발자가 구축 한이 앱은 웹 개발의 번거 로움을 상당 부분 처리하므로 바퀴를 다시 만들 필요없이 앱 작성에 집중할 수 있습니다. 무료이며 오픈 소스입니다.

PyTrends : Google 트렌드에서 보고서 다운로드를 자동화하기위한 간단한 인터페이스를 제공합니다. 주요 기능은 더 높은 속도 제한을 활성화하기 위해 스크립트가 사용자를 대신하여 Google에 로그인하도록 허용하는 것입니다.

Tableau Public : 차트의 데이터 시각화는 현재 Tableau Public을 활용하고 있습니다. 무료로 데이터를 시각화하고 공유 할 수 있습니다.

Jupyter 노트북 : 라이브 코드, 방정식, 시각화 및 설명 텍스트가 포함 된 문서를 만들고 공유 할 수있는 오픈 소스 웹 애플리케이션입니다. 용도에는 데이터 정리 및 변환, 수치 시뮬레이션, 통계 모델링, 데이터 시각화, 기계 학습 등이 포함됩니다.

더 자세히 볼 수있는 다른 구성 요소가 많이 있습니다. 전체 사양은 Github 저장소의 요구 사항 문서를 참조하세요.

v1 릴리스를 만든 방법

로드맵에 설명 된대로 설정 단계를 살펴 보겠습니다.

비트 코인에 대한 과거 거래 데이터 가져 오기
비트 코인 (BTC)에 대한 과거 데이터를 얻는 방법에는 여러 가지가 있습니다. 원래 실험에서 저는 암호화 교환 데이터를 수동으로 다운로드했습니다. v1에서는 Nomics API에서 BTC 가격 데이터를 가져 와서 프로세스를 자동화하고 있습니다. 이것은 매우 빠르고 속도 제한이 없으며 완전히 무료로 사용할 수있는 REST 및 WebSocket JSON API입니다! 다음은 구현의 일부입니다.

Google 트렌드 데이터 가져 오기
Google 트렌드 데이터의 경우 원래 Google 트렌드 사이트에서 .csv를 수동으로 다운로드했습니다. 여기 v1에서는 비공식 Google Trends API 인 PyTrends를 사용하여 자동화하고 있습니다. PyTrends는 맞춤 매개 변수를 사용하여 Google 트렌드를 스크랩하는 Python 라이브러리입니다.

데이터베이스로 데이터 가져 오기
이 프로젝트는 원래 데이터베이스로 PostgreSQL을 사용했지만 자체 포함 된 고 신뢰성 내장형, 모든 기능을 갖춘 공개 도메인 인 SQLite로 변경되었습니다. SQL 데이터베이스 엔진. SQLite는 세계에서 가장 많이 사용되는 데이터베이스 엔진이기도합니다. 이제 계산이 Python에서 처리되므로 더 이상 PostgreSQL을 사용할 필요가 없습니다. 즉, 데이터베이스 서버를 실행하는 대신 SQLite 파일을 사용할 수 있습니다.

기사에서 식별 된 매개 변수를 기반으로 매수 / 매도 식별
제 원본 기사는 Google 트렌드 키워드 비율과 BTC : USD 가격 변동의 조합을 기반으로 비트 코인 매수 / 매도 신호를 제공합니다. . 이것은 PyTrends API의 더 많은 데이터로 추가 백 테스트 될 것입니다.

목표는 비트 코인 가격을 가장 잘 예측하는 비율과 가격 델타를 찾는 것입니다. 물론 과거의 성과가 반드시 미래의 성과를 예측하는 것은 아니지만 여러 방법을 테스트하는 것이 통찰력이 될 것입니다. v1에서는 단순히 고정 비율과 가격 델타를 테스트하고 나중에 더 동적 변수로 변환합니다.

Django를 사용하여 API 생성
Django는 앞에서 언급했듯이 프런트 엔드 웹 개발을 처리합니다. 이 서비스는 현재 Apache httpd 서비스에서 실행되는 기본 JSON API를 제공하는 데 사용됩니다.

API 문서 작성 및 게시

v1의 마지막 주요 목표 중 하나는 API 문서를 작성한 다음 GitHub 저장소에 게시하는 것입니다. 이것은 BTC 매수 / 매도 신호를 얻기 위해 API에 연결하는 방법에 대한 자세한 지침을 제공합니다. 이 API는 자신의 거래 알고리즘 또는 투자 공식에 통합 할 수있는 비트 코인 신호 봇 역할을합니다. 대부분의 기본 사항이 게시되어 있지만 개선 사항 및 새로운 기능에 따라 정기적으로 업데이트됩니다.

시각화를 통한 데이터 이해

알고리즘에서 일어나는 대부분의 일은 코드에 묻혀 있지만 이러한 요소와 데이터 소스의 대부분은 시각화 할 수 있습니다. 예를 들어 다음은 원래 공식을 기반으로 한 Google 트렌드 비율 , 기간 종가 투자 가치 의 그래프입니다. v2 :

이가 개선됨에 따라 비트 코인 가격 및 다른 데이터 소스의 신호와 양의 상관 관계 또는 음의 상관 관계를 더 잘 보여주기를 바랍니다. 첫 번째 실제 MVP 인 비트 코인 가격 변동으로 이익을 얻을 거래 신호 봇 을 얻기 위해해야 ​​할 일이 여전히 많습니다.

다음 단계 및 향후 기능

갈 길이 멀지 만 이제 v2에 대한 작업을 시작하고 있으며 오픈 소스 이후 프로젝트에 관심이있는 모든 사람을 초대합니다. 좋은 소식은 기여하기 위해 반드시 코더가 될 필요는 없다는 것입니다. 우리는 또한 더 현명한 가격 예측에 사용할 수있는 다른 아이디어와 데이터 소스 목록을 작성하기 시작했습니다. 이 첫 번째 반복에서는 주로 Google 트렌드의 키워드 색인 생성 점수를 사용하지만 다음과 같이 통합 할 수있는 몇 가지 다른 소스가 있습니다.

우리는 비트 코인 가격 상승이나 하락을 예측할 수있는 가장 좋은 단일 예측 변수는 없지만 대신 “황금 비율”의 조합을 알 수 있습니다. 그렇기 때문에 데이터 소스를 확장하고 머신 러닝을 사용하여 데이터의 예측 패턴을 백 테스트하고 노출하는 데 적극적으로 노력하고 있습니다.

참여 방법

로드맵을 진행하면서 진행 상황과 통찰력을 계속 공유 할 것입니다. 목표는 수익성을 극대화하기 위해 주어진 시간에 비트 코인의 매수 / 매도 / 보유를 권장하는 API 신호 또는 봇을 최종적으로 출시하는 것입니다. 여기에는 몇 가지 사용 사례가 있으며 나중에이 모델을 사용하여 고급 암호 화폐 예측 신호 및 인덱스를 개발할 수 있습니다.

관심이 있으시면해야 할 일이 엄청나게 많으시 며 도움을 드릴 수 있습니다. 다음은 달을 향한 장대 한 모험에 참여하고 우리와 함께 할 수있는 몇 가지 방법입니다 🌕 :

그동안이 가치가 있다고 생각되는 사람과 프로젝트를 공유해 주시기 바랍니다. 진행 상황에 대한 최신 업데이트를 얻으려면 여기 Medium에서 저를 따르십시오. 단계별로 함께 구축하는 방법을 공유합니다. 🚀

어떤 의견이든 환영합니다!