오르비 AI-based trading bot Sindbad 수익률
게시글 주소: https://orbi.kr/00014196521
1. Overview
개요
2017. 11. 오르비는 무엇을 하는 회사인가라는 글을 통해, 지난 2016. 상반기부터 1년 반 가량의 연구 기간을 거쳐 우리가 인공지능 방법론을 이용하여 자동으로 자산 거래를 하는 기계를 만들었고, 코스피200 지수 선물에 대해 운용을 시작했음을 공개한 바 있다.
이 글에서는 가장 최근 검증된 알고리즘을 지속적으로 채택해 업그레이드하며 실제 현금 10억원을 2018. 4. 투입해 운용해온 계정의 최근 성과를 업데이트한다. 이하 이 계정은 Sindbad라 부르기로 한다.
이 계정에서는 코스피200 선물 근월물만을 거래하며 그 외 다른 어떤 자산도 거래하지 않는다.
After 1.5 years of research, we started AI-based trading in November 2017, increased the size of fund to one billion won (approximately one million dollars) in April 2018. We like to update the return and metrics of the account Sindbad which actively adopts the most recent research and models. Sindbad only trades the front-month future of KOSPI 200 index.
2. Profitability, PNL
최근 수익률
파란색 선 그래프는 실제 현금 잔고이고, 회색 선 그래프는 같은 날짜에 같은 금액을 KOSPI 200 인덱스 펀드에 투자했을 경우 잔고이다. 수직방향으로 올라간 하늘색 막대 그래프는 Sindbad의 일별 거래량이다. 주황색으로 강조된 원은 선물 만기일이다. 이 그래프는 실제 현금을 운용해온 실계좌의 거래 기록을 바탕으로 그린 것으로, 해당 계좌의 거래내역은 milliseconds 단위로 모두 제시할 수 있다.
Blue line: fiat balance, Gray line: KOSPI 200 as a benchmark, faint sky blue vertical histogram: daily trading volumes(in number of contracts). The last trading days of the future are emphasized with orange circles. The trading records can be presented in milliseconds resolution.
표시 기간 : 2018-04-05 ~ 2019-01-09
Trading period
거래일 : 184
Trading days
기간중 Sindbad 수익률 : 147.1%
Sindbad return
vs
동기간 KOSPI 200 수익률 : -14.7%
KOSPI 200 return as a benchmark
2018-04-05에 1,000,000,000 원으로 시작한 Sindbad의 현재 잔고는 2,470,758,190 원이다.
Sindbad, launched on April 5, 2018 with AUM 1,000,000,000 KRW, of which the balance now is:
같은 시기 인덱스 펀드에 1,000,000,000 원을 투자했다면 현재 잔고는 853,408,180 원이다.
Meanwhile, if you put the same money into the index fund, the balance now should be:
*인덱스 펀드의 운용 수수료를 0%라고 가정하였으므로, 실제 인덱스 펀드들의 잔고는 어떤 기간 동안에는 그보다 더 낮을 수 있다.
The balance of the index fund may actually be lower due to fees.
따라서 지수 대비 outperformance는 161.7%p이며,
We outperformed the benchmark by
이를 기하평균하면 거래일당 수익은 52.43bp이다.
which is geometric average return of, per trading day
(1 bp is equivalent to 0.01%p)
Outperformance를 연간화하면 269.6%p = 2.617^(250/184)-1 이다.
or annualized rate of outperformance of
*유효숫자를 제한하기 위한 반올림으로 인해 등식의 양변이 정확히 일치하지 않을 수 있다.
Numbers presented on both sides of equations may not always coincide due to rounding.
3. Sharpe Ratio
이것은 파생상품의 큰 레버리지를 이용해 일시적으로 얻은 큰 수익이 아닌가?
단순히 선물의 레버리지만으로 높은 수익을 기록한 것이라면 변동성 대비 무위험초과수익률로 계산되는 Sharpe Ratio 값이 오르지 않는다. 큰 손실을 볼 위험을 지는 대신 큰 이익을 가져가는 것(Sharpe Ratio가 유지됨)과 손실을 볼 위험을 제한하면서 큰 이익을 가져가는 것(큰 Sharpe Ratio를 가짐)은 본질적으로 매우 다르며, 위험을 제한하며 수익을 높여서 Sharpe Ratio를 높이는 것이 실질적으로 모든 투자의 목표라고 할 수 있다. Sharpe Ratio는 무위험초과수익률 즉, 포트폴리오의 수익률에서 국채수익률을 뺀 값을 무위험초과수익률의 표준편차로 나누어 계산하는데, 이렇게 계산해 보면,
Sharpe Ratio, developed by Nobel laureate W. F. Sharpe, measures the average return against the risk(volatility) of the portfolio or fund. In case Sindbad just utilized the leverage or effective gearing of the derivatives to earn excessive profit, the Sharpe Ratio remained low due to high volatility. It is essentially different to just record extraordinary profit rate and to do so while limiting the risk of the portfolio. It is Capitalism 101 that you earn profit as a reward for risk. The higher the ratio, the more efficiently the portfolio utilizes the risk.
임의의 연속된 20거래일(약 1개월에 해당)에 대해
For any given 20 consecutive trading days (~one month)
Sindbad의 Annualized Sharpe Ratio를 계산하면 3.1086
The Annualized Sharpe Ratio of Sindbad is:
= (9.71% - 0.144%) / (10.88%) * sqrt(250/20) 이다.
이 값은 backtesting결과 혹은 추정값이 아니라 실제 거래 기록에 따라 연산된 값이며 거래수수료에 따른 손실도 모두 반영되어 있다.
This value is calculated by real trading records and trading fees are already excluded from the return.
그리고 우리 포트폴리오는 선물만을 거래할 뿐 옵션과 같은 형태의 파생상품이 없으므로 fat tails로 인한 특이 kurtosis/skewness로 인해 Sharpe Ratio가 과대평가될 위험도 없다.
There is little risk of overvaluation of the ratio due to fat tails, because the account does not trade options or other exotic delivatives, but only futures.
상기 표시된 Sharpe Ratio가 어느 정도인지에 대해서는 다음 자료들을 참조해 보라.
You may compare the Sharpe Ratio above to the following documents or papers:
* The Dow Jones Credit Suisse Hedge Fund Indexes Performance data for Oct 2011
* The Statistics of Sharpe Ratios
* Generalized Sharpe Ratios and Portfolio Performance Evaluation
Annualized Sharpe Ratio of Sindbad
calculated as:
{ (average return) - (risk free rate) } / (standard deviation of the excess return)
times
square root of ( 250 / trading days )
where
Tdays : trading days (any given consecutive sessions)
임의의 연속된 n거래일
CumAvg : the average of cumulative profit rates of the session
해당 기간 중 누적 수익률
RiskfrRt : risk free rates, calculated as geometric average of 3 year Korean treasury bond rate.
해당 기간 동안의 무위험수익률, 국채 3년물로 계산
Stdev : the standard deviation of the profit rates
수익률의 표준편차 (변동성)
SharpeR : the Sharpe ratio of the trading days
해당 거래일 동안의 Sharpe Ratio
AnnSR : annualized Sharpe ratio, which is the Sharpe ratio multiplied by the square root of (250 / trading days)
연간화한 Sharpe Ratio, 250/거래일 의 제곱근을 곱함으로써 계산
4. Turnover Ratio and Maximum Drawdown
회전율과 최대낙폭
대상 기간 : 2018-04-05 ~ 2019-01-09
Trading period
거래일 : 184
Trading days
명목금액 기준 자본회전율 : 271% per day
(equivalent to 67,750% per annum)
Turnover Ratio calculated by Notional Value or Exposure
Maximum Drawdown (MDD) of Sindbad : -20.2%
from 1,295.67M (June 14, 2018) to 1,033.72M (July 5, 2018) KRW
vs
동기간 KOSPI 200의 MDD : -20.5%
from 1,035.45M (April 30, 2018) to 823.09M (January 3, 2019) KRW
MDD of KOSPI 200 as a benchmark
5. Scalability
운용규모가 커지면 현재의 수익률을 유지할 수 없는 것이 아닌가?
거래방식 그리고 시장의 크기를 고려할 때, 이론적으로 운용규모(AUM: asset under management)가 2~3천억원 단위일 때까지는 유동성 부족이나 시장 마찰로 인한 거래 비용 증가가 거의 우려되지 않기 때문에, 운용 규모를 현재의 수십배 이상으로 늘려도 수익률은 훼손되지 않을 것으로 추정된다. 오히려 그 규모에서는 단기적인 시장의 움직임을 주도하면서 수익률이 더 오를 수 있을지도 모른다. 즉 운용규모에 따른 수익률 변화 방향에 대해서는 중립이다.
The market size and the transaction method considered, in theory the fund would not suffer additional transaction costs due to illiquidity or market friction unless the asset under management of Sindbad is less than 200~300 billion won (equivalent to $.2~.3B). Therefore it is speculated the profit rate, the Sharpe Ratio or whatever metrics would remain unchanged even though the size of the fund is increased dozens of times. The profit rate, preferably, might have increased in case the fund had been a thousand times bigger, which might have enabled the fund to lead the movement of the market in the time horizon of seconds or sometimes milliseconds. In conclusion, the relation between the AUM and the profit rate is, as for now, neutral.
만약 1조원 이상의 더 큰 규모로 운용을 한다면 현재의 Sharpe Ratio를 유지하면서 수익률의 변동성과 크기를 낮추는 방향으로 운용 전략을 어렵지 않게 조절할 수 있다.
Even though the AUM is more than 1T KRW, we may adjust the excess return and the volatility with ease preserving the current level of Sharpe Ratio.
운용 전 예측/계산되었던 비정상적으로 높은 수익률은 실제로도 유지되었다. 그런데 큰 운용규모에 대한 이런 예측도 실현될 수 있을지는 실제 그 돈을 넣고 운용을 해봐야 알 수 있다.
We realized the abnormal profit rate of the fund predicted and calculated before the operation. The speculation above on the large AUM, in the same manner, should gain confidence through the vintage.
6. Sustainability
이 수익률이 유지될 수 있나?
상식을 벗어나는 수준의 높은 수익률이기 때문에, 신뢰를 얻으려면 매우 긴 운용기록이 필요할 것이다. 그러나 운용 기간 동안 지수의 폭락을 포함해 시장상황은 큰 부침을 겪었음에도 불구하고, 수익률은 큰 변동 없이 안정된 수준을 유지하였다.
The rates and ratios are extraordinary outliers, which call for the vintage. That said, Sindbad remained resilient and gained profit with stability while the market suffered massive volatility, ^VIX hitting 36.10.
아래는 임의의 시점에 Sindbad에 자본을 투입했을 때, 그로부터 n거래일이 지난 후 기대 수익률을 정리한 표이다. 이를 통해 이익의 지속성, 안정성을 추정해 볼 수 있다.
Following tables summarize the average return in the time horizon of days and weeks.
임의의 시점으로부터 n일이 경과했을 때의 평균 수익률
The average return of any given n consecutive trading days
(처음 184거래일로부터 계산된 값)
calculated by the trading records of first 184 trading days
*AvgCumPrf: average cumulative return of n consecutive trading days. 해당 기간 동안의 누적 수익률. 예를 들어 임의의 20거래일(약 1개월) 동안 기대 수익률은 평균적으로 9.71%이었다는 의미이다.
*GeoAvg: geometric average return per trading day. 해당 거래일 동안 발생한 수익률의 기하평균. 예를 들어 20거래일의 GeoAvg가 0.46% 였다면, 일평균 0.46%의 수익을 기록했다는 의미다. 산술평균이 아니라 기하평균으로 계산한 것은 복리를 고려했기 때문임. 예를 들어 (1+0.46%)^20 ~ (1+9.71%)가 된다. (정확히 숫자가 맞지 않는 것은 반올림 때문) 매 거래일 평균 0.46%의 이익을 기록하면 복리로 20거래일 후에는 9.71%의 이익이 된다는 의미다.
계산 방법: 예를 들어 10거래일 후의 평균 수익률이 4.95%라고 할 때, 이 값은 다음과 같은 방식으로 계산된 것이다:
2018년 4월 5일로부터 10거래일 후인 2018년 4월 19일까지의 누적 수익률 8.09%
2018년 4월 6일로부터 10거래일 후인 2018년 4월 20일까지의 누적 수익률 5.79%
2018년 4월 7일로부터 10거래일 후인 2018년 4월 21일까지의 누적 수익률 3.34%
....
2018년 12월 19일로부터 10거래일 후인 2019년 1월 7일까지의 누적 수익률 13.35%
2018년 12월 20일로부터 10거래일 후인 2019년 1월 8일까지의 누적 수익률 9.52%
2018년 12월 21일로부터 10거래일 후인 2019년 1월 9일까지의 누적 수익률 12.14%
의 174세션 각각의 누적 수익률을 산술평균한 값이 4.95%라는 의미다.
참고로 거래일이 길어질수록 GeoAvg가 떨어지는 것은, Sindbad가 꾸준히 수익을 기록해 최근으로 올수록 자본이 늘어났지만 (10억원 ==> 24억원) exposure 총량은 비슷한 수준으로 유지하면서 effective gearing(~leverage)이 점차 떨어졌기 때문임.
7. Significance
혹시 이 모든 것이 다 우연이 아닌가?
선물은 방향성에 대한 예측으로서, 만약 예측의 정확도가 없다면, 이론적으로 50.00%의 승률을 기록하게 된다. (공)매도를 하면 지수가 떨어질 때 수익을 기록하고, 지수가 오를 때에는 손실을 보기 때문에, 지수가 오르거나 내려가는 것과 관련 없이, 선물 거래의 기대 승률은 50.00%이다. 예를 들어 원숭이로 하여금 "매수" 버튼과 "매도" 버튼을 마음대로 누르게 하면 이론적으로 50.00%의 승률을 기록하게 된다. (실제로는 거래 수수료 때문에 승률은 더 낮아짐) 50.00%로부터 어느 방향으로든지(0%로든지, 100%로든지) 더 멀어질수록 방향성 예측이 우연일 가능성은 낮아진다.
Sindbad가 운용되어 온 임의의 시점에 자본을 투하했다면, 그 자본이 시간이 경과함에 따라 이익을 기록하고 있을 확률은 아래와 같다.
임의의 시점으로부터 n일이 경과했을 때 이익을 기록하고 있을 확률
The probabilities of positive profit after any n consecutive trading days
(처음 184거래일로부터 계산된 값)
calculated by the trading records of first 184 trading days
승률에 대한 해석: 임의의 시점에 자본을 투하하고, 1거래일 후에 (+) 수익률을 기록함으로써 투하 자본보다 더 많은 자본을 보유하게 될 확률은 52.72%이다. 완전한 우연, 즉 control의 경우 50.00%의 수익률을 기록한다. 하루하루의 판단은 맞을 확률이 52.72%, 틀릴 확률이 47.28%이지만, 이러한 확률이 꾸준히 쌓이면서, 20거래일 이후에는 (+) 수익률, 즉 이익을 기록하고 있을 확률이 88.48%까지 올라간다. 만약 "매수", "매도"에 대한 판단이 완전한 우연이라면 20일 후에도 승률은 50.00%를 유지해야 할 것이다.
For any inquiries or questions regarding Sindbad, contact: cfo@move.is
------
* January 2020 Update
이 글 이후 저희가 기존 오르비를 운영하던 Move Inc.로부터 Sindbad를 운영하는 부문을 spin-off해서 SIndbad Inc.를 설립했고,
회사 설립 이후의 track record는 아래와 같습니다.
2018 v. 2019 비교를 해 보면, 2019에 와서 MDD(maximum drawdown)가 커져서 심장이 덜컥덜컥하는 상황이 몇개월에 한 번씩 있었고, volatility 커질 때 그걸 견디는 게 심리적으로 너무 힘들어서 Sharpe ratio와 return을 희생하더라도 volatility, drawdown를 줄이는 연구를 하는 데 한 해를 보냈습니다.
제가 오르비에 가끔 나타나면 Sindbad를 궁금해 하시고 (절반은 진짜 호기심인 것 같고, 절반은 빈정거림인 것 같고) 그 이후 update가 없냐는 질문을 많이 받아 이렇게 update를 남깁니다.
예전에 자주 track record를 update하고 이따금 오르비를 통해서도 우리가 하는 일을 알리고 했던 것은 꾸준히 그렇게 글을 쓰고 알리면 오르비를 통해서도 혹시나 의미있는 연을 찾을 수 있을까 기대해서였는데 그런 일은 없고 결과적으로는 감정 소모만 하게 되는 것 같아서 감정 소모까지는 상관이 없는데 그게 일에 지장을 주면 안 되니, 일에 집중하기 위해서 더 이상 업데이트도 하지 않고 사람들의 질문이나 빈정거림도 무시했습니다.
그런데 계속 대응을 안 하니 제가 또 병신이 되는 것 같아서, 애초에 Sindbad를 게시판을 통해 공개한 것을 지금 후회하듯이 이 update를 후회하게 될 것임을 알면서도 약물중독자가 약에 손대듯 이렇게 update를 남깁니다. 뒤집어 생각해 봐도 남이 돈 잘 벌고 있다는 얘기가 나한테 기분 좋을 이유가 없는데 + 지금 다시 봐도 이 수익률이 나도 늘 의심스러운데 나는 그때 왜 이런 글을 썼을까라는 생각도 듭니다.
지금 와서 곰곰 돌이켜보면 그때는 사람이 너무 고팠던 것 같습니다. 내가 가는 길이 맞는지도 몰랐었고 그래서 확신 - 까지는 아니어도 무언가 믿음을 줄 수 있는 말을 더 듣고 싶었고, 누군가 도움의 손이 있으면 더 빨리 성장할 수 있지 않을까 그런 생각도 있었던 것 같은데 지금은 사람이 고프지 않습니다. 우리가 번 돈은 그대로 잘 있으니 수익률도 사실이 맞고요. 그렇게 사라진 미련과 익명 플랫폼에 대한 냉소의 배합이 이 update를 남길 수 있게 한 힘이 되지 않았나 생각합니다.
------
* August 2020 Update
이제 prop 으로 100억원 이상을 운용하고 있고, 지난 약 3년간 모든 계좌의 CAGR은 70%를 초과했습니다. 단지 COVID-19로 인한 폭락장을 잘 버텨내는 것을 넘어서 폭락장의 변동성을 모두 현금으로 치환했습니다. 3월에 작동 개시한 계좌는 5개월 간 270%의 수익을 기록했습니다. 알고리즘은 계속 업데이트하고 있으며, 처음에는 시간이 지나고 AUM이 커지면 return도 wear out 될 거라 추측했는데 오히려 수익률은 계속 좋아지고 있습니다. 결국 이것이 Billion dollar business가 될 것이라는 믿음이 있습니다. Top tier 로펌들을 통해 compliance consulting 중입니다.
예전에는 우리가 outsider 라고 생각해서 좀 더 main stream 모양새를 갖추려면 무엇을 해야 할까 고민했는데 우리가 outsider 가 아니라 outlier 라는 것을 알게 되어 이제 그런 고민은 더 이상 하지 않습니다. 2020년의 그래프들은 기울기가 훨씬 가파르고 더 섹시하게 생겼는데 큰 틀에서 결국 다 비슷한 모양 (지수는 지지부진한데 신드바드 계좌는 계속 불어난다는) 이어서 더 이상 그래프 업데이트는 하지 않으려 합니다. 큰 변화가 있거나 중요한 국면을 지날 때에만 1년에 1~2번 정도 업데이트를 남기겠습니다.
------
* December 2020 Update
이제 prop 으로 200억원 이상을 운용하고 있습니다.
가장 최근에 개시한 account는 9개월 되었고, 그 기간 동안 수익률은 578% 입니다.
더 이상 수익률 업데이트는 없습니다.
0 XDK (+9,730)
-
5,100
-
10
-
10
-
50
-
10
-
1,000
-
10
-
100
-
1,000
-
그렇게 가치관이 다른 심찬우와 유대종도 굉장히 친한데 고작 빨강지지 파랑지지로...
-
내가 해봄
-
초딩5~중1 애들 가르쳐 보니까 애들 알거 다 알드라. 내가 너무 순수했누
-
저는 현역이에요 그리고 허수에요 하지만, 감히 말씀드리고 싶어요. 본인의 공부법을...
-
국어 어떤식으로 할까요 지금은 김승리쌤 올오카 듣는중입니다 그냥 승리쌤 커리만 쭉...
-
오늘 이사건으로 갑자기 달라보이네요 마음이 너무 무겁고 많은 생각이 드는 밤임 아...
-
아 배불러 0
이제잠못자
-
독재에서 뭐만 하면 민폐같아서 엄청 눈치보였는데 계속 심해지는듯 마인드 컨트롤을...
-
토익 환급 1
850점 이상이면 400%라고? 당장 하지
-
그냥 점집 가서 추천 받고 싶어
-
고대국어 이야기 3
경음도 격음도 이중모음도 없는 매우 심심한 언어 체계였을 것으로 추정됨. 일부...
-
맞팔 구 0
ㅈㄱㄴ
-
아빠한테 너무 미안하네 15
지금 상황에 나도 속 터져 죽겠고 무가치하고
-
백분위 1점차이로 에피못달아서화남
-
왜자꾸보이지 슬슬 자연선택 될 때가
-
사탐런 관련 질문있습니다. 생윤사문 선택하려하는데 개념기출 2주잡고 끝낼 수...
-
의자에 오랜 시간 동안 앉아서 컴퓨터를 하는 행동
-
가치관때믄에
-
사랑을 했다 2
잘했다
-
작수 수학 3등급 기출 3회독 했는데 n제랑 같이 기출 4회독 5회독 계속 해야하나요? 1
아니면 이제 n제만 하면 되나요? 기출은 100문제 있다면 회독할때마다 모르는...
-
듣다보면 너무 당연한 말임 이렇게 공부했는데도 예전엔 지1이 개꿀표본이었던 거임?...
-
운동해라 폰 그만하면된다 이딴건 안걸려본놈들이 헛소리 하는거고 정신적인 부분도...
-
뻥임
-
ㅈㄱㄴ
-
아주대 원강대 강원대 자교는 메디컬 과인가
-
선배한테 받은 저희 학교 기출이에요 !
-
77ㅑ!!!!!
-
수능 1틀하고 설경제 가니 엄청 주목받아서 유명세 얻고 인스타 팔로워 보니까...
-
언매 2틀 95인데 1컷보단 높겠죠 ?
-
지수로그 주요 문제와 지로함
-
내가 여태까지 그냥 쌩 암기하다가 고2 지구과학 말아먹음 근데 오지훈 선생님이랑...
-
너무많이놀았다
-
차단 4
한등불
-
난 병신이다 2
죽어야지 우히히
-
많관부
-
하 벌써 어색해 으갹으갹
-
이신혁 T 라이브 들을려고 하는데 언제쯤 하는 게 좋을까요 전 한 6월전후...
-
내일 할게 없네 1
친구가 없어서 할 게 없음
-
기체액체고체용액엔탈피 까지 해서 절반 정도 함
-
고2 모고 2
현 중3 고2 3모 풀다가 갑자기 궁금해졌는데 고2 3모랑 다른 6모,9모,11모랑 차이 많이 남?
-
잠들었다 일어나기 21
엉엉 울기
-
아 개수치플 10
왜 답장해즈세요 부끄럽게
-
덕코주세요 10
-
* 자세한 문의는 아래의 링크를 통해 연락 바랍니다....
-
오늘은 조용하네 3
나도 야식 대충 때리고 씻고 자야겠다
-
그새끼가나빴던게아닐까?
-
이뻐졌네
-
왜냐면 이 '자꾸'란 말은 '잡다'에서 왔거든요. '자주'와 비슷하게 생겨서...
-
1000달러 남겨놓고 1453에 다 팔았는데 개아깝네 ㅋㅋㅋㅌ