26만 번 중 0건
레짐별 매매를 갈라 봤다. 하락장 진입 35건 합계 -76,763원, 횡보장 48건 +137,507원. 차단 규칙이 옳았다는 건 확인됐다. 그런데 표에 상승장 칸이 비어 있었다. 진입이 없는 게 아니라 판정 자체가 없었다.
ranging 166,392회
downtrend 95,793회 전체의 36.5%
uptrend 0회 BTC 24h +4% 구간에도 '횡보'상승 판정은 현재가가 EMA50 위, EMA50이 EMA200 위일 때 나온다. 뒷조건이 참이 된 적이 없었다.
EMA가 EMA가 아니었다
EMA 함수는 앞의 n개로 시드를 만들고 남은 값을 하나씩 평활한다. 그런데 4시간봉을 정확히 200개 받아 200기간 EMA에 넣고 있었다. 남은 값이 없으니 평활이 한 번도 돌지 않았고, 나온 숫자는 33일치 단순평균이었다.
현재가 98,456,000
EMA50 91,580,744
구 EMA200 92,149,045 평활 0회 = 200봉 전체 평균
신 EMA200 91,833,613 평활 200회 (봉 400개로 확장)
--------------------------------------------------
간격 ema50-ema200 -567,626 → -248,479 상승 판정 도달 가능더 나쁜 쪽은 반대편이었다. 하락 판정의 뒷조건은 EMA50이 EMA200 아래일 때인데, 축퇴된 평균이 계속 위에 있으니 거의 항상 참이었다. 하락장 차단이 필요 이상으로 자주 켜졌다. 업비트는 1콜 200개가 상한이라 페이징으로 400개를 받게 고쳤고, 레짐 로그에 봉 개수를 찍어 재발을 눈으로 잡게 했다.
고치려던 것을 못 고쳤다
병목이 하나 더 나왔다. 상승장 스캔 탈락의 95.3%가 저점근접 게이트였다. 24시간 저점 대비 3% 이내를 요구하는데 상승장에선 모두가 그 위에 있다. 차단분의 4시간 수익률이 +1.150%라 완화가 답으로 보였다.
3~5% -0.90% 상승장 -0.44 / 그 이전 -1.11 (양쪽 다 음수)
5~8% +1.52%
8%↑ -0.38%임계를 올리면 좋은 구간만 취할 수 없다. 3%를 8%로 올리면 가장 나쁜 3~5% 구간이 함께 들어온다. 기간을 갈라도 모양이 같아 노이즈는 아니지만, 단일 임계로는 답이 안 나온다. 레짐 조건부로 걸면 될 텐데 그 판정이 방금 고친 결함이었다.
두 번 다 계기판이었다
어제는 서킷브레이커가 재시작마다 고점을 잊었고, 오늘은 레짐 판정이 26만 번 동안 한쪽 답을 낼 수 없었다. 둘 다 매매를 멈추지 않았고 에러도 남기지 않았다. 고장은 소리를 내지만 오차는 내지 않는다.
에드워드 소프는 우위를 재는 도구가 정확한지부터 확인하라고 했다. 나는 게이트 임계를 만지기 전에 그 게이트가 참조하는 시장 판정이 맞는지를 물었어야 했다. 순서가 뒤집혀 있었다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- EMA (Exponential Moving Average): 지수이동평균. 최근 값에 더 큰 가중치를 주는 이동평균으로, 앞부분 평균을 시드로 잡고 남은 값을 하나씩 평활해 구한다.
- BTC (Bitcoin): 비트코인. 이 봇은 BTC 4시간봉 추세로 시장 레짐을 판정한다.
- MACD (Moving Average Convergence Divergence): 이동평균수렴확산. 단기와 장기 EMA의 차이로 추세 전환을 보는 지표.