OptiNod 아카데미

강건성 세 가지 — 같은 수익률 두 설정 중 어느 쪽을 믿을지 판가름하는 기준

수익률이 같은 두 파라미터 설정 중 실전에서 살아남는 쪽을 골라내는 세 가지 안정성 점수(이웃 안정성, 몬테카를로, 상위 N 일관성)를 OptiNod 실제 구현 기준으로 해설합니다.

> 리더보드 1등의 정체는 그 1등 옆 칸이 얼마나 비슷하게 벌었는지로 갈립니다.

강건성(robustness)은 본래 통계학에서 가정이 조금 어긋나도 추정값이 크게 흔들리지 않는 성질을 가리키는 말입니다. 트레이딩으로 옮기면 정의는 한 줄로 압축됩니다. 파라미터를 한 칸 옮기거나 데이터 구간을 조금 바꿔도 성과가 비슷하게 유지되는가. OptiNod의 강건성 엔진은 이 질문을 세 각도에서 점수로 매겨 종합 점수 하나로 묶습니다.

대중적으로는 이 개념을 백테스트가 끝난 뒤 한 번 확인하고 넘어가는 형식 절차쯤으로 여깁니다. 수익률 순으로 정렬한 리더보드에서 1등을 고르고, 그 1등의 안정성 점수에 빨간색 경고만 없으면 통과시키는 식입니다. 점수는 수익률 순위를 먼저 정한 뒤 형식적으로 덧붙는 부가 정보 정도로 취급됩니다.

순서가 거꾸로입니다. 세 점수는 1등을 고른 뒤에 확인하는 절차가 아닙니다. 1등을 고르는 기준 그 자체로 삼아야 합니다. 수익률이 똑같은 두 설정의 우열은 세 점수가 판가름합니다. 점수가 낮은 쪽은 곡선 맞추기로 만들어진 봉우리라 실전에서 성과가 따라오지 않습니다. 이 글을 읽고 나면 리더보드를 볼 때 수익률 열을 보기 전에 안정성 열을 먼저 확인하게 됩니다.

바늘형 성과와 고원형 성과
바늘형 성과와 고원형 성과최고 수익률이 같아도 주변 파라미터가 절벽이면 우연일 가능성이 크고, 넓은 고원으로 유지되면 실전 내성이 높습니다.

옆 칸이 절벽이면 1등은 우연이고, 평평하면 진짜 봉우리입니다

첫 번째 점수인 이웃 안정성(neighborhood stability)은 최적 조합 주변 파라미터 칸들의 성과가 얼마나 고른지를 봅니다. OptiNod는 성과 상위 10개 결과를 잡고, 각 파라미터 축에서 한 칸 앞뒤(±1 스텝) 이웃들의 성과 분산을 모읍니다. 그 분산들의 평균에 제곱근을 씌운 값(√이웃 분산 평균)을 전체 성과의 표준편차로 나눠 민감도(sensitivity)를 구합니다. 민감도가 낮을수록 점수가 높고, 이 점수가 종합 점수의 35%를 차지합니다.

이 점수가 핵심인 이유는, 진짜 시장 구조가 만든 성과는 파라미터가 한 칸 어긋나도 비슷하게 따라오기 때문입니다. EMA 기간을 20에서 21로 바꿨다고 추세가 사라지지는 않습니다. 옆 칸의 성과가 절벽처럼 급락한다면, 그 1등은 특정 캔들 몇 개에 우연히 들어맞은 결과일 뿐입니다. 실전에서는 그 캔들이 다시 오지 않으므로 이런 설정의 성과는 곧 사라집니다.

2021년 5월 19일 BTC는 시가 42,850달러에서 장중 30,000달러까지 밀린 뒤 36,690달러로 마감했습니다. 이런 단발 폭락 캔들 하나에 손절 폭을 한 틱 단위까지 미세하게 맞춰 둔 설정은 백테스트 수익률 1등이 되기 쉽습니다. 그러나 손절 폭을 한 칸만 넓혀도 성과가 크게 떨어집니다. 이웃 안정성 점수가 이 차이를 포착합니다. 차트에서 손절선 하나의 위치만 보지 말고, 그 손절선을 양옆으로 한 칸씩 밀었을 때의 성과 폭을 함께 보십시오. 성과 변동이 작으면 안정적인 구간이고, 크면 우연에 기댄 구간입니다.

몬테카를로 — 내 1등이 우연인지 보는 법
몬테카를로 — 내 1등이 우연인지 보는 법파라미터를 무작위로 수없이 뽑아 성과 분포를 만든 뒤, 내가 고른 1등이 그 분포의 어디에 서는지 봅니다. 무작위 더미에 묻히면 우연(p값 큼), 꼬리 끝에 홀로 서면 실력(p값 작음)입니다.

무작위로 뽑아도 이만한 성과가 나온다면 실력으로 보기 어렵습니다

두 번째 점수인 몬테카를로(Monte Carlo) 검정은 같은 파라미터 공간에서 무작위로 뽑은 결과의 분포와 최고 설정을 비교합니다. OptiNod는 결과 수에 따라 200·500·1000번 반복해 무작위 상위 묶음의 평균 분포를 만들고, 실제 최고 설정이 그 분포의 어느 백분위에 있는지, 그리고 통계적 유의성(pValue)을 계산합니다. 이 점수도 종합 점수의 35%입니다.

pValue 구간별 점수는 다음과 같습니다.

| pValue | 점수 |

|---|---|

| 0.01 미만 | 95 |

| 0.05 미만 | 80 |

| 0.1 미만 | 65 |

| 0.3 미만 | 45 |

| 0.3 이상 | 25 |

이 검정이 답하는 질문은 단순합니다. 내 1등은 이 파라미터 공간에서 아무거나 골라도 나올 법한 수준인가, 분포 바깥에 있는 진짜 봉우리인가. pValue가 0.3이라면 무작위 추출 열 번 중 세 번은 내 1등과 비슷한 성과가 나온다는 뜻입니다. 그 1등을 실력의 결과로 보기에는 근거가 약합니다. pValue 0.01이라면 우연으로 그 성과가 나올 확률은 100번 중 한 번 아래입니다.

전략 자체가 시장 평균을 못 이기는 경우가 여기서 걸립니다. 2022년 11월 FTX 붕괴 때 BTC는 11월 9일 18,545달러에서 장중 15,588달러까지 빠졌습니다. 이런 급락 구간을 포함한 하락장 데이터로 롱 전략을 최적화하면, 어떤 파라미터를 골라도 대부분 손실입니다. 이때 1등이 무작위 분포 한가운데에 있다면 몬테카를로 점수가 낮게 나옵니다. 이것은 파라미터 선택의 문제가 아닙니다. 이 구간에 이 전략을 적용한 것 자체가 무리라는 신호입니다. 백테스트와 실거래의 간극을 줄이려면 이 분포 위치를 먼저 확인해야 합니다.

상위 N의 위치 — 모이면 봉우리, 흩어지면 우연
상위 N의 위치 — 모이면 봉우리, 흩어지면 우연상위 성과 설정들을 파라미터 지도 위에 점으로 찍어 봅니다. 한 구역에 모이면 그 자리가 진짜 봉우리이고, 지도 전체에 흩어지면 1등은 운에 가깝습니다.

상위권이 한곳에 모이면 진짜 봉우리이고, 흩어지면 우연입니다

세 번째 점수인 상위 N 일관성(top-N consistency)은 상위 20%(결과가 적으면 최소 3개) 결과들의 파라미터가 얼마나 좁은 범위에 모여 있는지를 봅니다. OptiNod는 각 파라미터별로 상위권이 차지하는 범위 폭을 전체 범위로 나눈 비율을 구하고, 상위권에 서로 다른 파라미터 조합이 몇 개나 있는지 군집 수를 셉니다. 범위가 좁고 군집이 적을수록 점수가 높으며, 종합 점수의 30%를 담당합니다.

상위권이 한 영역에 몰린다는 것은 시장에 실제로 작동하는 설정 구간이 있다는 뜻입니다. EMA 기간 상위권이 18~24에 모두 모여 있다면, 그 부근이 진짜 봉우리입니다. 상위권이 기간 10에도 있고 50에도 있고 90에도 흩어져 있다면, 각 성과는 서로 다른 우연의 산물이며, 그중 무엇을 골라도 다음 구간에서 다시 나온다는 보장이 없습니다.

2024년 3월 14일 BTC가 73,777달러로 신고가를 찍은 뒤 같은 날 68,555달러까지 5,000달러 넘게 출렁인 변동성 구간을 떠올려 보십시오. 이런 구간에서는 우연히 큰 캔들 한두 번을 잘 포착한 설정들이 흩어진 채로 상위권에 올라옵니다. 군집 수가 많다는 것은 봉우리가 하나로 모이지 못하고 여러 우연이 뒤섞였다는 뜻입니다. 워크포워드 분석으로 구간을 나눠 보면 이렇게 흩어진 상위권의 위치가 구간마다 다른 칸으로 바뀌는 것을 확인할 수 있습니다.

수익률이 같을 때는 종합 점수가 둘의 우열을 정합니다

세 점수는 각각 35%·35%·30% 가중으로 묶여 종합 점수가 됩니다. 결과가 5개 미만이면 점수 산출을 보류합니다(표본 부족). 표본이 모자란 상태에서 안정성을 논하는 것 자체가 또 다른 과최적화이기 때문입니다.

세 점수를 함께 봐야 하는 이유는 각각이 다른 종류의 우연을 잡기 때문입니다. 이웃 안정성은 한 칸 옆의 급락을, 몬테카를로는 분포에 섞인 평범한 성과를, 상위 N 일관성은 흩어진 봉우리를 골라냅니다. 한 점수만 높고 나머지 둘은 낮은 설정은 한 종류의 검사만 통과한 곡선 맞추기입니다.

다음은 수익률이 사실상 같은 두 후보를 실전 투입 전에 거르는 절차입니다. 컷오프 숫자는 운용 권고입니다. 제품이 강제하는 값은 아니며, 전략 성격에 맞춰 조정하십시오.

1. 1차 정렬: 리더보드 정렬 기준을 수익률에서 종합 점수 내림차순으로 바꿉니다.

2. 이웃 안정성 하한(권장): 핵심 파라미터(손절 폭, 진입 기간)의 파라미터 점수(민감도·범위 혼합값)가 60점 미만이면 후보에서 제외합니다. 참고로 엔진은 40점 미만을 민감(sensitive), 40~60점을 보통(moderate)으로 표시합니다.

3. 몬테카를로 하한(권장): pValue 0.05 이상(점수 80점 미만)이면 실력 근거가 약하므로 보류합니다.

4. 상위 N 군집 확인(권장): 상위 20% 결과 중 서로 다른 파라미터 조합(군집 수)이 상위 표본의 절반을 넘으면 봉우리가 흩어진 것으로 보고 제외합니다.

5. 투입 결정: 위 세 조건을 통과한 후보 중 프로핏 팩터가 더 높고 최대 낙폭이 더 낮은 쪽을 고릅니다.

점수를 잘못 읽는 두 패턴

종합 점수만 보고 세부 세 점수를 확인하지 않는 경우. 종합 점수 70은 세 점수가 모두 70일 수도 있고, 한 점수가 95이고 둘이 50대일 수도 있습니다. 후자는 한 검사만 통과한 위험한 설정입니다. 종합 점수는 출발점일 뿐이며, 세부 세 점수를 펼쳐 어느 검사가 약한지 확인하는 단계를 건너뛰면 안 됩니다.

표본을 늘리지 않고 점수만 높이려는 경우. 결과가 7~8개뿐일 때 점수가 높게 나와도 그것은 표본이 적어 분산이 작게 잡힌 착시일 수 있습니다. 몬테카를로 반복이 200번으로 줄어드는 구간(결과 10개 이하)에서는 pValue를 세밀하게 구분하기 어렵습니다. 점수를 신뢰하려면 먼저 충분한 조합을 돌려 표본을 30개 이상으로 키우십시오.

세 점수가 한 방향으로 모일 때만 신뢰하십시오

강건성 점수는 미래 수익을 약속하지 않습니다. 백테스트 구간 안에서 그 1등이 실력의 결과인지 우연의 결과인지를 골라내는 도구입니다. 그래서 마지막 확인은 세 점수가 한 방향으로 모이는지 여부입니다. 아래 기준 역시 권장 운용값입니다.

  • [ ] 이웃 안정성: 핵심 파라미터 점수가 60점 이상인가
  • [ ] 몬테카를로: pValue가 0.05 미만(점수 80점 이상)인가
  • [ ] 상위 N 일관성: 상위 20% 군집 수가 표본의 절반 이하로 모여 있는가
  • [ ] 표본: 결과가 30개 이상이라 점수 해상도가 충분한가
  • [ ] 종합 점수만이 아니라 세 세부 점수를 모두 펼쳐 봤는가

세 점수가 한 방향으로 모인 설정은 데이터 구간이 바뀌어도 비슷한 성과를 유지할 확률이 높습니다. 2024년 8월 5일 엔캐리 청산으로 BTC가 58,161달러에서 49,000달러까지 밀린 것 같은 단발 충격 캔들 하나에 맞춰진 우연한 설정과는 구별됩니다. 같은 수익률을 보이는 두 설정 중 무엇을 믿을지는 이 세 점수가 정합니다.

수익률이 같을 때 안정성 점수가 가르는 선택
수익률이 같을 때 안정성 점수가 가르는 선택두 후보의 수익률 막대가 같다면 이웃 안정성, 몬테카를로, 상위 N 일관성이 함께 높은 행을 선택해야 합니다.