본문으로 건너뛰기

167개 전략, 숫자로 보기

약 6분 읽기

2026년 5월의 PineForge 패리티 코퍼스에 무엇이 있었는지, 그리고 전략 167개가 카테고리·자산·복잡도별로 어떻게 나뉘었는지. 갤러리를 도는 박물관 안내처럼 읽을 수 있습니다.

이 글의 수치는 2026년 5월 9일에 측정한 값이며 당시 그대로 두었습니다. 최신 결과는 패리티 측정 방법에서 확인하세요.

2026-05-09에 새 코퍼스 규모에 맞춰 숫자를 업데이트했습니다(참조 전략 167개, 엄격 패리티 165개).

2026년 5월, 우리는 “167개 전략 중 165개가 엄격 패리티를 통과한다”고 말했습니다. 이 주장은 그 167개가 무엇이었는지 알 때만 의미가 있습니다. 이 글은 당시 코퍼스를 한 바퀴 둘러보는 가이드 투어입니다.

코퍼스가 왜 중요한가

고정된 참조 집합이 없으면 “패리티”는 느낌일 뿐입니다. 전략 몇 개를 돌려 보고, 대충 비슷해 보이면 출시합니다. 그러다 사용자가 OCA 청산 그룹이나 루프 안의 request.security를 쓰는 전략을 돌리는 순간 아무것도 맞지 않습니다. 버그는 원래부터 있었습니다. 그걸 테스트하지 않았을 뿐입니다.

따로 떼어 둔 코퍼스가 이 상황을 바꿉니다. 당시에는 패리티에 영향을 줄 수 있는 변경이 생길 때마다 메인테이너가 각자 자기 머신에서 같은 167개 전략을 같은 기준 OHLCV로 다시 돌렸습니다. 통과한 전략 수가 늘면 무언가 나아진 것이고, 줄면 회귀가 들어온 것이었습니다. 코퍼스는 백테스트 갤러리의 모습을 한 회귀 테스트 하네스입니다.

167개 전략은 공개 증명 역할도 했습니다. 엔진 출력(트레이드 수, 총수익, 샤프 지수)을 갤러리에 커밋해서, 엔진이 무엇을 내놓는지 누구나 볼 수 있게 했습니다. 패리티를 주장하기만 하는 보도자료와는 다릅니다.

세 가지 카테고리

2026-05-09 당시 167개 전략은 basic, community, validation 세 폴더에 나뉘어 있었습니다(네 번째 폴더인 parity-anomalies에는 집계에서 뺀 프로브 하나가 들어 있었습니다). 품질 순위가 아니라, 전략이 어디서 왔고 무엇을 테스트하는지를 나타내는 구분이었습니다. (지금의 공개 코퍼스는 채점 대상 전략 312개를 모두 validation/ 아래에 둡니다.)

basic — 9개

basic 카테고리에는 잘 알려진 정석 전략 유형이 모여 있습니다. 이동평균 크로스, Supertrend, Stochastic Slow, Parabolic SAR, Keltner Channel, Inside Bar, Pivot Extension, 그리고 변동성 확장 기법입니다. 알고리즘 트레이딩 입문 강의라면 어디서나 볼 수 있는 교과서 예제들입니다.

이런 전략을 코퍼스에 넣는 이유는, 컴파일러가 민망하게 깨지는 곳이 바로 교과서 예제이기 때문입니다. 이동평균 크로스 하나가 올바른 트레이드 목록을 내지 못하면 나머지도 전부 의심스럽습니다. basic은 기본기를 확인하는 새니티 체크 계층입니다.

코퍼스의 basic 전략 9개는 트레이드 수가 13건(greedy 전략, 진입이 매우 까다로움)부터 7,299건(15분봉에서 신호가 자주 나는 변동성 확장 전략)까지 퍼져 있었습니다. “단순” 카테고리 안에서만 500배 넘게 차이가 나는 셈인데, 이는 전략의 복잡도보다 선택성, 즉 얼마나 가려서 진입하는지를 더 잘 보여 줍니다.

community — 11개

community 카테고리에는 알고리즘 트레이딩 커뮤니티가 기여한 Pine 스크립트가 모여 있습니다. 실제 사람들이 쓴 코드인 만큼 실제 세계의 다양성이 그대로 담겨 있습니다. 코딩 스타일도, 내장 함수를 쓰는 방식도, 포지션 사이징과 청산 로직을 엮는 방식의 엣지 케이스도 제각각입니다.

커뮤니티 전략 11개에는 4-EMA RSI 필터, BOS(Break-of-Structure) 곡선 탐지기, 유동성 스윕 전략, MarketShift라는 추세 추종 시스템 등이 있습니다. 트레이드 수는 72건(VCP, 여러 시그널을 조합해 진입이 매우 까다로운 전략)부터 2,643건(IES, 가장 자주 거래하는 전략)까지였습니다. 수익 편차도 큽니다. 백테스트 기간 동안 IES는 +$58,430, MarketShift는 +$3,388을 기록했고, 가장 부진한 커뮤니티 전략은 $678 손실을 냈습니다. 코퍼스에 들어 있다고 해서 수익성이 있다는 뜻은 아닙니다. 컴파일되고 트레이드를 만들어 낸다는 뜻일 뿐입니다.

커뮤니티 스크립트는 패리티를 유지하기 가장 어려운 카테고리입니다. 작성자가 다양한 만큼, 검증 스위트가 미처 예상하지 못한 Pine 기능 조합이 등장합니다. 새로운 패리티 갭은 대개 여기서 먼저 발견됩니다.

validation — 147개

validation 카테고리가 단연 가장 컸습니다. 코퍼스 167개 중 147개가 여기 속했습니다. 이 전략들은 특정 Pine 의미론을 시험하도록 설계한 합성 전략입니다. 수익을 내는 것이 아니라, 특정 언어 기능이 C++ 출력으로 올바르게 옮겨지는지 증명하는 것이 목적입니다.

당시 개별 검증 전략이 겨냥한 대상을 몇 가지 예로 들면 다음과 같습니다.

  • 41-partial-exit-qty-percent — 포지션 일부를 청산하는 strategy.exit(qty_percent=...)를 테스트합니다. 엔진이 청산 체결을 필요 이상으로 만들어 내면 이 전략에서 잡힙니다.
  • request.security 변형 — lookahead=barmerge.lookahead_off를 쓴 상위 타임프레임 조회가, 갭 옵션을 켰을 때와 껐을 때 모두 올바른 봉에서 값을 가져오는지 검증합니다.
  • OCA 청산 그룹 — strategy.oca.reduce 그룹에서 청산 하나가 체결되면, 같은 그룹의 다른 청산 주문이 체결된 수량만큼 줄어드는지 검증합니다.
  • 트레일링 스톱 변형 — 갭과 지정가 체결이 끼어도 트레일링 스톱의 래칫 로직이 최고점(high-water mark)을 올바르게 따라가는지 테스트합니다.
  • UDT 메서드 테스트 — Pine v6 사용자 정의 타입의 메서드가 올바른 C++ struct 연산으로 컴파일되는지 검증합니다.

“이 전략이 통과하면 기능 X는 커버된다”는 논리가 이 폴더에 전략을 추가하는 방식에 명시적으로 녹아 있습니다. 커뮤니티 스크립트가 새로운 엣지 케이스를 드러내면, 보통 최소한의 합성 재현 전략을 만들어 validation에 추가합니다.

숫자는 실제로 어땠나

당시 코퍼스의 전략 167개는 모두 같은 자산, 같은 타임프레임에서 돌았습니다. ETHUSDT 15분봉입니다. 의도한 제약입니다. 하나의 기준 OHLCV를 쓰면 전략 간 비교가 의미를 갖고, 패리티 분석에서 자산별 요인을 걷어 낼 수 있습니다.

트레이드 수 분포:

구간전략 수
100 미만10
100 – 49943
500 – 99961
1,000 – 4,99947
5,000 이상6

코퍼스 전략의 중앙값은 백테스트 기간 동안 트레이드 732건을 냈습니다. 가장 적은 전략은 13건(greedy 전략, 진입이 매우 까다로움), 가장 많은 전략은 11,851건이었습니다. 이 폭은 패리티 테스트에서 중요합니다. 트레이드가 13건인 전략에서 청산 하나가 어긋나면 오류율이 8%입니다. 같은 버그가 5,000건짜리 전략에 있으면, 트레이드 대부분이 일치하더라도 집계 지표에 드러납니다.

샤프 지수 분포:

갤러리는 샤프 지수를 트레이드 단위로 계산했습니다. 트레이드별 수익률의 평균을 그 표준편차로 나눈 값이고 연율화하지 않았기 때문에, 값이 작게 나왔습니다. 코퍼스 전략 대부분은 위험 조정 수익이 아니라 Pine 기능 커버리지를 보고 넣었습니다. 167개 전략의 샤프 지수 중앙값은 0.021이었습니다. 167개 중 106개는 백테스트 기간의 총수익이 플러스였고, 61개는 마이너스였습니다.

갤러리에서는 “좋은” 전략만 골라내지 않고 이 숫자들을 모두 보여 줬습니다. 아이디어를 찾는 중이었다면 수익과 샤프 지수 열을 보면 됐습니다. 패리티 검증이 목적이라면 숫자 자체는 중요하지 않습니다. 중요한 건 PineForge와 TradingView가 같은 숫자를 내는가입니다.

코퍼스 전략이 갖춰야 할 조건

코퍼스에 들어가려면 네 가지를 갖춰야 합니다.

  1. PineForge codegen에서 컴파일될 것. 컴파일되지 않으면 테스트할 수 없습니다. 생각보다 높은 기준입니다. 일부 커뮤니티 Pine 스크립트는 라이브러리를 import하는데, codegen은 라이브러리마다 소스를 함께 받아야만 이런 스크립트를 컴파일합니다.

  2. 기준 OHLCV에서 트레이드를 하나 이상 만들어 낼 것. 컴파일은 되지만 진입이 한 번도 일어나지 않는 전략은 트레이드 목록을 비교할 대상이 없습니다.

  3. TradingView 참조 CSV가 있을 것. 모든 코퍼스 전략에는 TradingView “거래 목록(List of Trades)” 내보내기가 커밋되어 있습니다. 보통은 tv_trades.csv이고, 셀프 테스트 전략 하나는 모드마다 trades-<mode>.csv를 하나씩 둡니다. 엔진 출력과 diff하는 기준 정답(ground truth)입니다.

  4. 엔진 출력이 Pine 소스와 함께 커밋되어 있을 것. 갤러리는 이렇게 커밋된 출력을 그대로 보여 줍니다. 갤러리의 어떤 내용도 요청 시점에 생성되지 않습니다. 전략을 추가하거나 마지막으로 갱신한 날 엔진이 낸 결과의 스냅샷입니다.

소스가 아니라 집계를 공개했던 이유

2026년 5월 중순까지 갤러리는 트레이드 수, 수익, 샤프 지수, 스파크라인은 공개했지만 Pine 소스나 원본 트레이드 목록은 공개하지 않았습니다.

커뮤니티 스크립트에 대한 이유는 지금도 유효합니다. 원작자가 쓴 스크립트이고, 우리에게는 그 소스를 재배포할 권한이 없습니다. 반면 우리가 직접 작성한 전략은 그 뒤 공개 pineforge-corpus로 전부 공개했습니다. 전략마다 Pine 소스, 생성된 C++, TradingView 내보내기, 엔진의 트레이드 목록이 들어 있습니다. 갤러리는 이 모두를 링크합니다.

갤러리로 할 수 있는 것

갤러리의 대상은 세 부류입니다.

아이디어를 찾는 개인 퀀트. 전략들의 진입 로직, 청산 로직, 지표 유형이 충분히 다양해서, 갤러리를 둘러보는 것만으로 엔진에서 무엇이 컴파일되고 실행되는지 꽤 넓게 훑어볼 수 있습니다. 카테고리로 필터링하고 스파크라인을 살펴보세요.

패리티 주장을 검증하려는 엔지니어. 패리티 주장을 확인하고 싶다면 갤러리에서 시작하면 됩니다. 카드마다 TradingView와 PineForge 양쪽 거래 내역에서 똑같은 트레이드가 몇 건인지 표시되고, 전략 페이지에서는 두 트레이드 목록을 모두 볼 수 있습니다. 등급을 매기는 기준은 방법론 페이지에 있습니다.

엔진 릴리스를 위한 CI 기준선. 당시에는 167개 전략 전체 스윕을 메인테이너의 머신에서 돌렸고, 엔진 CI에서는 돌리지 않았습니다. 지금은 코퍼스 패리티 워크플로가 매일 밤 main 브랜치에서 공개 코퍼스의 312개 전략을 모두 다시 돌리고, 풀 리퀘스트는 메인테이너가 돌린 전체 스윕에서 패리티 판정을 통과해야만 머지됩니다. 그래서 어떤 전략의 출력이 바뀌어도 출시 전에 잡힙니다.

다음으로