| 들어가는 말 이번 포스팅에서는 암호 화폐에 대해 분석해 보겠습니다. 먼저, 50개의 변수를 확보하였습니다. | 배경 트레이딩 모델은 유연하고 다이내믹해야 예측률이 높습니다. 그리고 트레이딩 모델은 시계열 데이터이기 대문에 자기회귀성을 고려해야 합니다. 가장 중요한 것은 예축 모델의 변수 선택일 것입니다. Deribit 사이트에서 2019년 4월~ 5월 암호화폐 데이터를 수집하였습니다. 다음의 차트는 2019 년 4 월 1 일부터 4 월 15 일까지의 LOB 최고 입찰가입니다. 원시 데이터의 시간 간격이 일정하지 않아 타임스탬프 엔지니어링 메커니즘을 사용하여 일정한 시간으로 데이터를 수정하였습니다. 신경망을 위한 생성기를 구현하고 필요에 따라 평균, 합계 데이터를 1분 간격으로 집계하였습니다. 파이썬의 기술 분석 라이브러리를 참조하여 50개의 기술 지표를 각각 1) 매도 매수 2) 트렌드 3) 모멘텀 4) 변동성으로 분류하였습니다. | Feature Engineering (변수 생성)
● 타임스탬프 엔지니어링 수집한 데이터는 시간 간격이 일정하지 않은 문제가 있어 다음과 같은 두 가집 접근 방식을 시도하였습니다. · 방법 1 : 20밀리초 간격으로 샘플링 20밀리 초마다 데이터를 샘플링 하였습니다. 만약 샘플링 할 시간에 데이터가 없다면 마지막 행을 복사하였습니다. 각 데이터의 가격 차이를 계산하여 Y 변수를 생성하였습니다. 데이터는 Keras의 신경망 프레임워크에 공급할 수 있는 생성기 형태로 제공되었습니다. 그러나 타임 프레임이 너무 작았기 때문에 Y의 변화량은 0에 가까워 모델링에 문제가 있었습니다. · 방법 2 : 1분 간격으로 샘플링 1분마다 데이터를 샘플링 하였습니다. 2개 이상의 데이터가 존재하는 경우에는 합계나 평균값을 사용하였습니다. 데이터가 수백만 행에서 22,000행으로 줄어들어 Y 값을 예측하는 모델링에서 가격이 오를지 내릴지로 분류하는 것으로 변경하였습니다.
| 머신러닝 모델링 ● 1단계: 모델 테스트 · 로지스틱 회귀 분류 : 로지스틱 회귀를 적용하기 전에 다음의 사항을 확인해야 합니다. 1. 관측치가 독립적이어야 합니다. 그러나 시계열 자료는 그렇지 않습니다. 2. 변수가 서로 독립이어야 합니다. 그러나 몇몇 데이터가 같은 시간과 가격 변동으로부터 계산되었기 때문에 변수 간의 다중공선성이 존재합니다. 3. 변수가 선형 데이터 이어야 합니다. 데이터가 로지스틱 회귀분석의 가정을 충족시키지 못하므로 모델링이 잘되지 않을 것이라 예상하였습니다. 베이지안 최적화를 이용하여 파라미터 수정을 진행한 후, 로지스틱 회귀분석을 진행하였습니다. 로지스틱 회귀분석 점수 : 0.453 - 0.6496 결과에서 알 수 있듯이 모델링 결과가 좋지 않았습니다. 데이터의 비선형성을 처리할 수 있는 다른 모델을 이용해 보겠습니다. · 서포트 벡터 머신 분류 : SVM은 비선형, 비모수 분류 알고리즘이며 일반적으로 더 나은 성능을 보여줍니다. SVM의 장점 : 유연성 : 변수가 많아도 모델링이 가능합니다. 분포 : 모델링에 대한 가정이 필요하지 않습니다. 복잡한 모델의 성능 : 예측 성능이 좋습니다. SVM의 한계 : 적합한 커널 함수를 찾는데 시간이 많이 걸립니다. 각 데이터 간의 거리를 계산하는데 많은 시간이 필요합니다. 과적합이 될 위험이 크고 예측 데이터에 대한 설명이 어렵습니다. 베이지안 최적화를 이용하여 파라미터 수정을 진행한 후, SVM 모델링을 진행하였습니다. SVM 모델링 점수 : 0.513 - 0.639 SVM은 로지스틱 회귀분석 보다 예측력이 더 우수하지만 데이터가 증가하면 모델링에 걸리는 시간이 기하급수적으로 증가하는 단점이 있습니다. · 단기 메모리 신경망 : 시계열 데이터와 비선형 변수에 적합한 모델이 필요했습니다. 또한 데이터 처리 시간도 고려하여 RNN의 한 종류인 LSTM 신경망 모델링을 진행하기로 하였습니다. 과적합을 피하기 위해 표준값 0.2를 사용하는 레이어를 추가하였습니다. 그리고 l1 정규화로 가중치 행렬을 0으로 수렴하도록 하였습니다. 불규칙적인 가격의 변동이 예측 가능한 모델링을 만들려고 노력하였습니다. 모델링을 하면서 방향을 정확하게 예측하는 것에 중점을 두었습니다. 그래서 [매도, 보유, 매수]를 [1.0, 0.2, 1.0]으로 가중치를 부여하였습니다. 모델 튜닝을 하면서 데이터 세트가 충분히 크지 않아 정확도가 떨어지는 점을 발견하였습니다. 트레이닝과 테스트 세트에 반영하여 여러 번의 실행 후에 74%의 평균 정확도를 얻을 수 있었습니다. 정확도를 더 높이기 위한 노력이 필요합니다. | 후행 연구 추가적인 변수와 모델 매개변수를 개발하고 모델의 성능 정확도를 측정하는 방법을 개발해야 할 것입니다.
コメント