봇(Bot) 성능평가(2)
봇(Bot) 프로그램을 이용하든, 직접 거래를 하든 가장 중요한 것은 MDD(Max Drow Down) 이라고 이전 포스팅에서 언급을 했었습니다.
MDD 의 일반적인 수치값이 중요한게 아닌, 투자를 결정하기 사전에 과거에 발생했던 리스크의 크기를 인지하고 투자를 결정 하는 것과 막연히 수익에 대한 기대만을 갖고 투자를 결정하는 것과는 하늘과 땅 차이 이상이라고 강조합니다.
이번 글에서는 매매 전략을 자동으로 실행하는 과정에서 발생할 수 있는 오차 항목인 슬리피지(Slippage)에 대해서 알아봅니다.
슬리피지(Slippage)
슬리피지란 ? 자동 거래를 할때 체결을 원하는 가격에 주문을 내었을 경우, 원하는 하는 가격보다 불리하게 체결되어 발생하는 손실을 의미 합니다.
예를 들어 19,000원 체결을 가정한 성능 보고서가 실제는 19,100에 체결되었 다면 수량* 100 의 금액만큼 손실로 매매 전략 성능에 부정적으로 작용하게 됩니다.
사전에 이런 비용을 예상하여 슬리피지 비용을 포함하여 성능 결과를 계산하지만, 적용된 슬리피지 비용이 과소평가 되거나, 과대 평가되거나 어느 쪽이든 바람직 하지 않지만 일반적으로 과소평가 됩니다.
아래 그림은 빗썸거래소의 EOS,BTC,LTC 코인의 호가창 그림으로 자동으로 거래 주문이 발생할때 빨간 박스표시 가격중 하나에서 체결되었다고 가정 할 수 있습니다.
EOS 호가 14,780 원을 "최우선 매수호가", 14,800원을 "최우선 매도호가" 라고 부르며, 호가가격 차이를 "호가 단위"라고 부릅니다. EOS 의 경우 10원이 호가단위 입니다.
호가가격이 10원씩 차이를 두고 형성되지 않고, 14,780 에서 다음 호가 가격이 14,800 처럼 호가단위를 넘어서서 다음 호가가격이 형성되면 호가 공백이 발생했다고 표현하며, 호가 공백차이가 크거나 자주 발생하게 되면 매매전략의 실제 체결상황을 가정한 성능평가 결과에 심각한 오차를 발생하게 되어 매우 중요합니다.
아래는 코인원의 BTG 호가창으로 178,5000 호가 다음에 182,500 으로 호가 공백이 매우 큰 경우로, 성능결과는 수익이지만 실제 운용해보면 오히려 손실일 수 있습니다.
호가 공백은 유동성(거래량)이 적을수록 크며, 또한 원하는 만큼의 거래를 할 수 없어 사실상 시장 자체가 의미가 없습니다.
풍부한 유동성(거래량)은 자동매매로 거래함에 있어서 필수 조건이며, 특히나 슬리피지 비용을 현실적으로 측정할 수 있는 조건이기도 합니다.
천만 원으로 테스트 된 매매 전략 성능 결과를 보고, 2천만원 또는 5천만 원을 투입하여 수익을 배수로 얻을 수 있다는 "상상조차 하면 안되는" 판단이지만, 이를 충족시켜 주는 조건이 유동성(거래량) 입니다.
매매 전략을 프로그래밍하여 실제로 운용하면서 매매 전략의 논리 지속성을 추적하는 것만큼 이상 슬리피지 비용 발생 상황을 줄이거나 더 큰 자금을 투입해도 제한적으로 제어하는 기술적인(technical) 방법을 연구하는 게 또 하나의 과제일 정도로 매우 중요 합니다.
다음은(Next)...
이전 글에서 MDD(=리스크)가 매우 중요하다는 의미를 여러 번 언급한 것은 모든 결정을 하는 인간의 심리적인 측면에 있고, 이번 글에서 중요하다고 언급한 슬리피지(Slippage) 는 자동매매를 운용함에 현실적인 측면의 요소 입니다.
"이론과 실제가 다를 수 있는 가장 중요한 요소로 작용하는 것이 슬리피지(Slippage)입니다."
다음 글에서는 자동매매를 할 수 있는 전산 구성요소에 관해 일반적인 내용을 다루어 보겠습니다.
짱짱맨 호출에 출동했습니다!!