저는 딥러닝에 대해 이곳 갤러분들보다 경험이나 지식이 부족한 아직 초보입니다.

비트코인 단타 거래를 위한 시스템을 만들어 본 경험을 얘기해보려 합니다.


업비트 거래소의 경우 수수료가 0.05% 입니다. 그래서 한 번 사고 팔면 수수료 0.1% 빠집니다.

보통 차트가 출렁일 때, 0.1%의 수수료 벽을 넘어 수익을 낼 수 있는 시점이 하루에 몇 번 발생합니다.

거래가 터지기 시작해서 차트가 순간 올라갈 때나 갑자기 매도가 터저 차트가 내려갈 때 바로 반응해서 단타 거래를 통해 수익을 내도록 시스템을 만들어 봤습니다.

이러한 단타 거래는 짧게는 과거 2~3분간의 거래 데이터의 흐름을 분석하거나 가장 길게는 과거 10~15분 사이 거래 기록을 가지고 트레이닝 합니다. 이보다 더 긴 과거의 데이타는 제 경험상 별 효과가 없었습니다.


PPO를 이용한 강화학습 트레이닝 과정에 대한 경험


1. 에이전트가 수수료의 벽을 넘어 수익을 낼 수 있는 단계까지 훈련하는 과정에서 어느정도 성과가(평균 500만 스텝) 보이더니 결국 포기를 했는지 거래를 안합니다.

매수 매도를 안하고 관망만 합니다.

딥러닝 알고리즘이 암호화폐 거래는 하지 말라고 말하는거 같습니다. 저는 차트 데이터만 넣었는데 세계 경제 흐름까지 보이나 봅니다.


2. 그래서 수수료를 없애고 트레이닝을 해봤습니다.

이넘이 수수료가 없으니 엄청난 수익을 냅니다. 다만 거래가 너무 많이 발생하여 수수료를 제하면 여전히 마이너스 입니다.

예를들어 0.025% 수익을 내는 거래를 한 시간에 수백건 합니다.


3. 그래서 수수료 계산을 정상적으로 한 후, 일정 시간 매수를 안하면 패널티를 줘 봤습니다.

어느정도 트레이닝 후(보통 500만 스텝 이 후) 수익을 내는 거래를 발생시킵니다.

저는 결국 성공한줄 알았습니다. "자신감 뿜뿜"

그런데!!! 정상적으로 작동하던 녀석이 매수 후 갑작스런 하락이 발생하면 패널티가 두려운건지 매도를 하지 않습니다.

손절한 타이밍을 놓칠때가 있는데 이 땐 수익이 -1% 넘어도 손절하지 않습니다. 이녀석한테는 -1% 손절 매도는 야구빠따로 쳐맞는 수준의 패널티 입니다.

이럴 때 마다 이녀석이 갑자기 장기 투자자가 되어버립니다.

"내 돈도 아니고, 패널티를 받으니 매도를 안한다~" 같습니다.

언젠가는 오를 것이다 라는 생각으로 기다리다가 결국 하루 뒤에 수익을 내며 매도를 하기도 하지만 문제는 그 하루 동안 수익을 낼 수 있는 많은 기회를 버리게 되어 오히려 손해가 더 크기도 하고 -1%을 넘어 -5%로 떨어져도 매도를 하지 않는게 문제입니다.

갑작스런 폭락은 사람뿐만 아니라 인공지능도 당황하게 만든다는걸 알게되었습니다.


정리하자면,

RL은 데이타도 중요하지만 리워드를 어떻게 줄지, 리워드에 대한 정책에 따라 어마어마한 차이가 있다는걸 알게되었습니다.

어떤 방식으로 어떤 시점에 보상을 줄지, 어떤 행동에 더 패널티를 줘야 할지에 따라 행동패턴이 달라집니다.

예를들어 순간적인 폭락에 대응해서 -0.5% 시점에 매도를 해 -2%까지 떨어지는걸 막아 결과적으로 옳은 행동을 했지만 -0.5% 수익을 냈으니 리워드는 마이너스로 받게 됩니다. 이런 단순한 보상정책은 훈련을 힘들게 하고 성능을 떨어뜨리게 만든다는걸 알게되었습니다.


[핵심정리]

강화학습으로 암화화폐 거래를 트레이닝 하면 정확하게 개발자가 의도한대로 움직인다. 다만 의도한대로만 움직일 뿐 어떤 마법같은건 기대하지 말자.

그래서~ 강화학습으로 암호화폐 단타거래 시스템을 만드는건 가능하다. 하지만 나는 보상정책에 대해 뭔가 번뜩이는 아이디어를 아직 못찾았다.



결국 사람이나 인공지능이나 다루기 힘든건 마찬가지 같습니다.