본문으로 건너뛰기

PineForge는 201개 모두 우수, PyneCore는 137개

중앙값 기준 PyneCore보다 36배 빠릅니다

우수양호보통미흡매우 미흡트레이드 목록 없음
공개 코퍼스공개 코퍼스 전략 100개비공개 스크립트비공개 커뮤니티 스크립트 101개(이름 미공개)

차트를 탭하거나 드래그하면 원하는 지점의 값이 보입니다.

출처: summary.md, pineforge-engine 6b45f510, 2026-09-29 비교 평가.

차트를 표로 보기

전략 하나가 한 칸이며, 순서는 모든 선에서 같습니다. 아래로 내려간 칸은 우수 미만 등급을 받은 전략이고, 깊이 내려갈수록 등급이 낮습니다.

등급PineForgePyneCore
우수201137
양호046
보통012
미흡04
매우 미흡01
트레이드 목록 없음01
측정 방법

출처: pineforge-engine 커밋 6b45f510의 benchmarks/results/summary.md. 2026-09-29에 엔진 35db01c8, PyneCore 6.10.3 버전으로 진행한 비교 평가입니다. 엔진 v1.10.0 릴리스는 그 뒤에 나왔고, 등급은 이 릴리스로 다시 측정하지 않았습니다.

이 페이지의 모든 수치는 오픈 소스 pineforge-engine 저장소의 비교 평가에서 나왔습니다. 전략 201개를 봉 53,929개로 된 같은 ETHUSDT 15분봉 피드에서 돌리고, 엔진별 트레이드를 TradingView가 내보낸 트레이드 목록과 대조해 등급을 매겼습니다. 공개 코퍼스 전략 100개는 API 키 없이 클린 클론에서 bash benchmarks/run_all.sh로 재현할 수 있습니다.

등급은 scripts/verify_corpus.py에 정의된 엔진의 공식 기준을 따릅니다. 우수는 트레이드 수가 같고, 90번째 백분위수에서 진입가와 청산가 차이가 0.01% 이내, 손익 차이가 1% 이내이며, TradingView 트레이드의 99% 이상이 매칭된 경우입니다. 양호는 트레이드 수 차이 6% 미만, 진입가 0.1% 이내, 청산가 0.5% 이내, 손익 100% 이내, 매칭 95% 이상까지 허용합니다. trail_* 청산을 쓰는 전략에는 프로덕션 프로파일을 적용해 청산가 0.05% 이내, 손익 100% 이내를 기준으로 봅니다. 그 아래로 보통, 미흡, 매우 미흡이 차례로 이어집니다. 우수 등급에서는 정확히 같은 시각, 가격, 방향에 TradingView가 서로 다른 진입 Signals를 둘 이상 표시하는 경우, 엔진도 그 지점에 같은 수의 서로 다른 진입을 표시합니다(개별 진입 식별).

vectorbt: 손으로 포팅한 vectorbt 버전이 있는 전략 13개. 우수 4양호 6보통 2미흡 1

점 하나는 두 엔진에서 모두 측정한 전략 200개 중 하나이며, 로그 스케일에서 정확한 속도 향상 값 위치에 찍었습니다. 측정 방법: PineForge는 바 매그니파이어를 켜고 Google Benchmark로 프로세스 내에서 측정했습니다. PyneCore 6.10.3 버전은 서브프로세스로 측정했으므로 실제 경과 시간에 인터프리터 시작 시간이 포함됩니다. 측정 환경은 Ubuntu 24.04 기반 AWS c7a.8xlarge(AMD EPYC 9R14, 32코어, SMT 비활성화)이고, 시간을 재는 프로세스는 각각 지정한 코어에 고정했습니다. 엔진 35db01c8, 2026-09-29 기준이며, 봉 53,929개로 된 ETHUSDT 15분봉 피드 하나를 썼습니다. 엔진 v1.10.0 릴리스는 그 뒤에 나왔고, 이 릴리스로 속도를 다시 재지는 않았습니다. 전체 벤치마크를 읽어 보세요.

등급이 갈리는 지점

  1. PineForge
    우수(57 / 57)
    PyneCore
    양호(57 / 57)
  2. mtf-triple-tf-macd-hist-confluence-01

    멀티 타임프레임(request.security)

    PineForge
    우수(24 / 24)
    PyneCore
    보통(22 / 22)
  3. ta-str-match-regex-filter-01

    str.match 정규식 필터

    PineForge
    우수(1,916 / 1,916)
    PyneCore
    미흡(1,514 / 1,917)
측정 방법

PyneCore 6.10.3 버전은 전략 201개 중 63개에서 우수 미만 등급을 받았고, 1개는 PyneSys 컴파일러가 소스를 거부해 트레이드 목록이 나오지 않습니다. 벤치마크 리포트에서 원인을 추적해 두었습니다. 32개는 체결이 TradingView와 일치하는데도 손익 기준에서만(16개) 또는 트레이드 수 기준에서만(16개) 걸립니다. PyneCore의 브로커가 TradingView 구간이 시작되기 다섯 달 전, 피드의 첫 봉부터 거래하기 때문입니다. 그래서 TradingView에는 없던 손익이 자산 비율 사이징을 거쳐 복리로 불어나고, 구간이 시작될 때 이미 열려 있던 포지션은 구간 경계에 트레이드 하나를 더합니다. 이전 PyneCore 릴리스에서 일부만 재현되던 멀티 타임프레임 스크립트 9개 중 4개는 request.security 수정으로 우수까지 올라왔고, 다른 4개는 여전히 TradingView 히스토리의 41.6~91.7%만 재현합니다. 그리드 봇 3개는 FIFO 방식으로 포지션을 정리할 때 어긋나고, str.match 정규식 필터 전략 하나는 미흡 등급이며, 나머지는 다른 기준에 걸립니다. 공개 코퍼스에서 고른 예시 세 개입니다:

analyzer-parity-percent-of-equity-sizing-01: PyneCore의 체결은 TradingView와 같습니다. 90번째 백분위수에서 진입가와 청산가가 일치합니다. 그런데도 손익이 90번째 백분위수에서 2.05% 차이 나는 건 PyneCore의 브로커가 TradingView 구간보다 다섯 달 먼저 거래를 시작했기 때문입니다. 그사이 자산 비율 사이징을 거쳐 TradingView에는 없던 손익이 이미 복리로 쌓였습니다.

mtf-triple-tf-macd-hist-confluence-01: TradingView가 내보낸 트레이드는 24건입니다. PyneCore는 39건을 내고, 두 목록이 함께 다루는 구간에 든 TradingView 트레이드 22건을 모두 매칭합니다. 즉 TradingView 히스토리의 91.7%를 재현합니다. PineForge의 트레이드 24건은 우수 등급을 받았습니다.

ta-str-match-regex-filter-01: 이 전략은 str.match로 진입을 거릅니다. 비교 구간에서 TradingView는 1,917건, PyneCore는 1,514건을 내서 트레이드 수가 21% 차이 나고, PyneCore는 TradingView 트레이드의 51.2%를 매칭합니다. PineForge는 자기 구간의 1,916건을 모두 매칭합니다.

엔진별로 잘 맞는 경우

세 런타임 모두 오픈 소스입니다. PineForge와 PyneCore는 strategy.* 주문을 쓰는 전략을 실행합니다. PineTS에도 0.9.17 버전부터 strategy.* 네임스페이스가 들어 있지만, 비교 평가에서는 PineTS로 지표만 돌립니다. 하네스에 PineTS용 전략 러너가 없기 때문입니다. 전략을 네이티브 코드로 컴파일하는 건 PineForge뿐입니다. PineForge와 PineTS는 Pine을 내 머신에서 변환하고, PyneCore는 호스팅 서비스인 PyneSys 컴파일러를 거쳐 변환합니다.

PineForge

  • TradingView와 똑같은 트레이드가 필요할 때. PineForge는 비교 평가 전략 201개 모두 우수 등급을 받았습니다.
  • 백테스트를 많이 돌릴 때. 전략당 중앙값 기준 PyneCore보다 36배 빠릅니다(PineForge는 프로세스 내에서, PyneCore는 인터프리터 시작 시간을 포함해 서브프로세스로 측정).
  • 엔진을 임베드하고 싶을 때. 안정적이고 추가만 허용하는 C ABI를 갖춘 Apache-2.0 C++17 런타임입니다.
  • AI 에이전트에서 백테스트할 때. 무료 호스팅 MCP 엔드포인트를 쓰거나, 내 데이터라면 로컬 Docker MCP 서버를 쓰면 됩니다.

PyneCore

  • 전략을 Python으로 쓰고 싶을 때. PyneCore는 Pine 스타일 Python을 봉 단위로 실행하고, 같은 코드에서 Python 데이터 라이브러리와 머신러닝 라이브러리를 함께 쓸 수 있습니다.
  • 지표와 플롯 값이 필요할 때. PyneCore는 이를 계산하지만, PineForge는 indicator() 스크립트를 거부하고 아무것도 그리지 않습니다. plot, 테이블, 색이나 스타일만 바꾸는 setter, 알림은 오류 없이 컴파일되지만 효과가 없고, 드로잉 객체(line, box, label, linefill, chart.point)는 전략이 다시 읽을 수 있는 데이터로 남습니다.
  • Apache-2.0 런타임을 원하고, 호스팅 서비스인 PyneSys 컴파일러로 Pine을 변환해도 괜찮을 때. PineForge도 엔진은 Apache-2.0이지만, 트랜스파일러는 소스가 공개돼 있을 뿐(codegen 1.3.0부터 PineForge Source License 1.2) OSI 기준 오픈 소스는 아닙니다.

비교 평가 재현하기

비교 평가의 공개된 절반, 즉 공개 코퍼스 전략 100개는 클린 클론에서 재현됩니다. 모든 입력이 벤치마크 에셋에 커밋돼 있고 API 키도 필요 없습니다. 비공개 커뮤니티 스크립트 101개는 TradingView 약관에 따라 재배포하지 않으므로, 이 절반은 PineForge 밖에서 다시 돌릴 수 없습니다.

# 1. 엔진과 공개 벤치마크 에셋 클론
git clone https://github.com/pineforge-4pass/pineforge-engine.git
cd pineforge-engine
git submodule update --init benchmarks/assets

# 2. 다른 엔진용 Python, Node 도구 설치 후 빌드
(cd benchmarks && uv sync --python 3.12 && npm install)
cmake -B build -S . -DPINEFORGE_BUILD_TESTS=ON -DPINEFORGE_BUILD_BENCH_STRATEGIES=ON -DPINEFORGE_BUILD_SPEED_BENCH=ON
cmake --build build --target pineforge bench_strategies pineforge_bench -j

# 3. 모든 엔진을 TradingView와 대조해 등급 매기기
SKIP_BUILD=1 SKIP_SPEED=1 JOBS=8 bash benchmarks/run_all.sh

# 4. 결과 확인: 이 페이지 집계의 근거인 공개 코퍼스 100개 행
cat benchmarks/results/summary.md