우리는 미래가 아닌 현재에 살고 있고, 미래로 갈 수 없다. 그러나 반복적인 과거는 미래에도 충분히 일어날 수 있다. 가장 쉬운 예로, 오늘 해가 동쪽에서 떴다면 내일도 동쪽에 뜰 확률이 매우 높다. 반대로 어려운 예로는 시장이란 ‘동물’의 움직임을 패턴을 찾는 것 이다. 이러한 문제에 대한 정확한 답을 찾는 것은 거의 불가능에 가깝다. 다행히도 현재 우리는 패턴를 예전보다 빠르게 찾을 수 있는 강력한 툴을 가지고 있다. 바로 인공지능이다. 금융에 인공지능을 사용하려는 시도는 많으나, 아직까지는 실제 트레이딩에 사용 하는게 아니라, execution, VAR, option value, delta hedging 등 트레이딩 데스크를 서포트 하는 것으로 사용하는데 끝난다. AI ETF도 있지만 실제 시장보다 높은 수익률을 올리지 않는다. 물론 평가지표에서는 높게 나올 수 있지만, 예초부터 잘못된 평가지표로 비교하면 당연히 비교적 더 안정적으로 느껴진다. 가령 QRFT 같은 경우 비교 대상을 S&P500으로 선정했다. 그러나 실제 보유 종목을 볼 때 nasdaq과 굉장히 유사하다. 그래서 옳은 비교지표는 nasdaq이 맞다. 비교지표를 nasdaq으로 놓게되면 안타깝게도 인공지능을 쓴다는 QRFT는 비교우위가 없다.
이처럼 옳은 ‘잣대’를 가지고 평가하는게 중요하다. 그래서 우리가 인공지능을 다룰 때 어떤 평가 요소를 가지고 인공지능이 학습을 하는가에 대해서 생각할 필요가 있다. 특히 투자라는 필드에서 인공지능을 쓸 때는 ‘과연 평가요소가 투자의 목적인 수익 추구와 일맥상통 하는가?’를 심각하게 고려해야 한다.
인공지능에서 평가요소는 크게 두가지로 나뉜다. Prediction의 MSE, RMSE, MAE, MAPE… 그리고 Classification의 정확도, 오차행렬, 정밀도, 재현율, F1-score, ROC-AUC… 주가의 범위를 나누고 예측 할 때는 Classification의 평가요소를 쓰지만, 보통은 Prediction의 MSE, RMSE, MAE, MAPE 쓰게 된다. 그런데 다시 한 번 생각해 보자 ‘과연 평가요소가 투자의 목적인 수익 추구와 일맥상통 하는가?’ 답은 ‘아니요’ 이다. 왜냐하면 투자에 있어 가장 기본적인 것은 포지션을 잡는 것 이다. 그것이 long일수도 있고 short일 수도 있고 volitility에 배팅을 하는 long/short stradle, delta hedging등 여러가지 방법이 있고 그에 따라서 인공지능이 각 배팅 방법에 학습 할 수 있도록 하거나 해당 배팅 방법을 선택 할 수록 해야 한다. 그러나 아카데믹 페이퍼를 보면 오로지 ‘최적화’에만 목적을 두고 있다. MSE, RMSE, MAE, MAPE… 기본적으로 모두 포지션을 고려하고 있지 않다. 오로지 absolute difference (difference squared) 으로만 평가한다. 가령 long position 모델을 개발하고 있고 인공지능 모델은 +5%를 예측 하였고 실제는 +10% 이상 올랐다. 그런데 예측한 값과 실제값이 차이가 있으니 평가지표는 잘못된 평가라고 단정하고 그에 맞게 학습한다. 반대로 인공지능 모델은 +5%를 예측 하였고 실제는 +4.5%가 올랐다. 평가지표를 보게 되면 차이가 적으니 옳바른 방향이라고 보고 이예 맞게 학습하게 된다. 너무나도 잘못된 방향이다. 다시 한번 상기 하자면, 투자의 최종적인 목표는 안정적으로 투자 수익 높이는 것 이다. 따라서, 포지션이 고려된 평가지표 대한 연구 논의가 필요 하다. 참고로 너무 학습 할 때 range를 주지 않으면 아래로 눕는 학습이 될 거 이다. 그러니 포지션을 잡을 수 있는 range를 먼저 define 하는게 중요하다.
잘못된 평가지표에 대한 극단적인 예를 보여주는 것은 바로 LSTM 모델들이다. 이들의 평가지표는 매우 좋게 나오지만 사실 time-lag 현상이 일어나 실제 시장에서 사용 불가능 하다. 가령 오늘 가격이 $1 이면 내일 가격도 $1 일 것 이다 라는 것으로 ‘예측 하여’ time-lag가 생긴다. 왜냐하면 상품 자체의 변동성의 크지 않기 때문에 평가지표가 좋게 나오는 것 이다. 반대로 변동폭이 큰 Hang Seng을 LSTM 모델에 적용하게 되면 경우에는 평가지표도 좋게 나오지 않는다. 그래서 금융 논문에서 time-lag가 발생하는지 손쉽게 알 수 있는 단순한 예측-실제 비교 그래프는 필수 이다. 따라서 인공지능을 쓰게 되면 얻을 수 있는 수익의 range를 제공 할 수 있다면 좋은 지표가 될 거 이다.
두번째 흔한 실수는 바로 미래 데이터(t+n where n >=1)를 사용하는 것 이다. 보통 실수로 전처리를 잘못하여 미래 데이터를 가져와서 사용하게 된다. 인공지능 모델을 쓰러다도 전처리가 잘못되면 당연히 실제 시장에서는 사용불가하다. ‘과도한’ 수익률이나 정확도를 나타낸다면 한번 쯤은 전처리 과정을 살펴 볼 필요가 있다. 가장 좋은 방법은 정량적으로 인공지능을 사용하여 나올수 있는 범위를 제시한다면 ‘과도한’ 이란 표현이 정량화 될 수 있다. 이렇게 범위를 제시 할 수 있다면 좋은 비교 지표가 될 것 이다.
세번째 흔한 실수는 포지션을 들어갈 수 있는 시간을 고려하지 않는 것 이다. 가령 금일 종가 대비 내일 종가 예측 할 수 있다고 가정하자. 그런데 조건이 있다. 금일 종가 이후에 예측이 나온다는 것 이다. 이렇게 되면 내일 장 시작되는 시간 부터 포지션 진입이 가능하다 (물론 금일 장후 / 내일 장전 시간외에서 운이 좋으면 전일 종가에 포지션을 들어갈 수 있다). 이처럼 종가 대비 종가를 예측하는 모델처럼 포지션 진입 가능 시점을 고려하지 않는 모델들은 실전에서 사용 불가 하다.
다음 흔한 실수는 두번째 미래 데이터를 쓰는 것에 속한다. 바로 normalization 전처리 과정에서 발생한다.다른 실수에 비해 모델링의 큰 역향을 없다. 흔한 실수라서 언급한다. 전처리 과정에서 price min-max range를 많이 사용한다. 잘못하면 이러한 normalization은 미래의 가격 range를 가져와서 써야 되기 때문에 엄밀히 말하면 잘못된 전처리가 된다.
fit_transform() 과 transform()을 잘못 적용해서 이다. train set에서는 fit_transform()을 test set에서는 transform() 써야 한다.
Price 보다 price change를 사용할 수도 있지만, 한국 시장 처럼 상한가(+30% 해당 가격), 하한가(-30% 해당 가격) 있는 시장에만 적용 가능 하다. 또한, 등폭이 크지 않는 종목에 사용 했을 시 모델 학습에 방해가 된다. 따라서 완벽한 normalization은 할 수 없다. 그러나, 정확하지는 않지만 합리적으로 처리 할 수 있는 방법이 있을 수는 있다. test-set 에서 train-set normalization의 range에 범위를 넘어 갔을 경우 0 이나 1로 처리를 해주는 것 이다.
이 처럼 각 문단에서 언급한 문제들을 해결하기 위해서 깊은 연구가 필요하다. 더 이상 실제 시장에서 적용 가능 하지 않은 '논문을 위한 논문'은 그만 써야 한다.