Conway Trading City v5.0.0
Conway 생존 철학을 도시 생태계로 확장한 자율 진화형 암호화폐 자동매매 시스템입니다. 연구소가 학교 커리큘럼과 신생 개체 성격 분포를 조정하고, 정책 레인으로 시민 에이전트의 승격·관찰·일몰을 직접 제어합니다. 학교는 도시와 분리된 지속 양성소로 돌아가며 엘리트 자식, 랜덤 학생, 재학습생을 계속 공급합니다.
핵심 구성
| 구성요소 | 역할 |
| 🏫 학교 (SCHOOL) | 도시와 분리된 고속 양성소. 한 틱 안에서 다중 서브사이클 백테스트 수행 |
| 🏙️ 실전 (ACTIVE) | 졸업 기준 통과 → OKX 데모 $1 포지션 실행 |
| 📡 방송국 | LLM 전문가 4명이 1시간마다 시장 방향 브로드캐스트 |
| 🧪 연구소 | 실패 원인/시장 국면을 분석해 학교 커리큘럼, 출생 성향, 정책 레인 생성 |
| 🧬 DNA | 지표 조합(RSI/EMA/MACD 등) + 파라미터가 세대 간 유전 |
| 💰 Treasury | 시드 $1000 = 에이전트풀 $800 + 예비금 $200 |
졸업 기준 (학교 → 실전)
기본 20틱 이상 백테스트 후: 승률 ≥ 52% AND 샤프비율 ≥ 0.5. 현재는 한 틱 안에서도 다중 서브사이클을 돌며, HOLD만 반복되면 시장 구간 기반 탐색 신호로 학습을 이어갑니다.
학습 원장
학교 학습 틱, 입학/졸업/재교육/낙제 이벤트는 `state/learning.db`에 함께 저장됩니다. 대시보드의 `학교 vs 실전` 패널은 현재 틱 스냅샷과 DB 누적 집계를 같이 보여줍니다.
시티 뷰
헤더의 City View 버튼으로 `conway5.xsw.kr/city` 시티 뷰에 들어갈 수 있습니다. 이제 `/city`는 Phaser 씬 전환이 아니라, 하나의 3D 아이소메트릭 운영 도시 안에서 Academy District, Broadcast, Consensus, Trading, Nexus 권역을 탐색하는 방식입니다.
시티 사용 가이드
`/city`는 메인 대시보드의 요약 수치를 공간형 운영 인터페이스로 다시 읽게 해주는 뷰입니다. 각 건물은 실제 상태 파일(`city`, `broadcast`, `research`, `trades`, `positions`)을 바탕으로 갱신되고, 시민 클릭/전문가 채팅/자율 토론도 라이브 데이터를 기준으로 진행됩니다.
권역 해석
| 권역 | 의미 |
| Academy District | 실제 학교생 + `MEAN_REVERT` 성향 시민이 함께 보이는 학습/재훈련 레이어 |
| Broadcast | 기술/뉴스/온체인/매크로 전문가가 브로드캐스트와 토론을 수행하는 방송국 |
| Consensus | 시민 투표와 글로벌 합의가 시각적으로 보이는 포럼 |
| Trading | 도시 내부 `currentTrade` 상태와 실제 거래소 열린 포지션을 나눠 읽는 트레이딩룸 |
| Nexus | 도시 전체 상태를 압축해서 보는 중추 공간 |
시민 카드 읽기
시민 상단 배지는 도시 내부 실전 상태를 뜻하고, 우측 상세 패널에서는 `내부 currentTrade 있음/없음`과 `실제 거래소 포지션 참여중/없음`이 따로 표시됩니다. 따라서 시민이 적극적으로 보이더라도 실제 거래소 포지션 참가자와는 다를 수 있습니다.
방송국 자율 토론
Broadcast 권역의 토론 모드는 고정 대본 재생이 아니라, 사회자가 현재 도시 상태를 정리하고 전문가들이 실시간 방송/시장/연구 상태를 근거로 주장·반박·최종 의견을 내는 구조입니다. 마지막에는 사회자가 결론, 남은 불확실성, 지금 볼 지표를 요약합니다. 토론이 끝나면 대화 원문은 `state/debate-history.json`, 요약 문서는 `state/debate-notes/*.md`로 저장되며, Broadcast 패널의 `저장된 토론` 목록에서 다시 `대화 열기`, `문서 열기`, `삭제`가 가능합니다. 목록은 기본 3개만 펼쳐집니다.
학교 수치가 달라 보이는 이유
`Academy District`에는 실제 `SCHOOL/REMEDIAL` 학생뿐 아니라 `MEAN_REVERT` 구역 시민도 포함될 수 있습니다. 실제 학교 인원은 메인 대시보드의 `학교 vs 실전`, `city.population.SCHOOL`, `city.population.REMEDIAL` 값으로 판단해야 합니다.
에이전트 생명주기
| 상태 | LED 색 | 조건 |
| SCHOOL | 노란색 (점멸) | 초기 상태. 20틱 백테스트 진행 중 |
| ACTIVE (수익) | 초록색 (glow) | 실전 수익형 또는 상위 크레딧 |
| ACTIVE (신입) | 주황색 | 학교 졸업 직후, 아직 실거래 이력 없음 |
| ACTIVE (대기) | 파란색 | 실전 배정 후 관망/보유 상태 |
| ACTIVE (손실/위험) | 빨간색 (glow) | 실손실 또는 저크레딧 위험 구간 |
| REMEDIAL | 회색 | 기준 미달 → 재학교 |
| DEAD | 꺼짐 | 재학교 2회 이상 미달 → 고독사 |
크레딧 시스템
합의 방향으로 투표 후 거래 청산 시: 수익 투표 적중 → +3, 손실 투표 적중 → -2. 크레딧 90+ 달성 시 자손(BIRTH) 생성.
expertTrust 학습
방송국 브로드캐스트 방향과 실제 거래 결과를 비교해 ±0.01씩 신뢰도 자동 학습.
합의 시스템
방송국 → 에이전트 → 합의 → 주문
① 방송국: LLM 전문가 4명이 매시간 시장 분석 후 LONG/SHORT/NEUTRAL 브로드캐스트
② 에이전트: 자신의 DNA 지표 + 방송국 신호를 personality(expertTrust)로 해석해 투표
③ 합의: ACTIVE 에이전트 10% 이상 참여 + 한 방향 우세 → 합의 성립
④ 거버넌스: 일일 손실/연속 손실 종목/eligible 참여자 기준을 통과해야 주문 시도 가능
⑤ 주문: 합의 종목 상위 2개에 $9 데모 포지션 실행
합의 임계값
| 항목 | 기준 |
| 최소 참여율 | ACTIVE 에이전트 10% 이상 |
| 최소 confSum | ACTIVE × 0.05 |
| 주문 규모 | $9 (OKX 데모 SWAP) |
| 최대 종목 | 상위 2개 instId |
대시보드 사용법
운영 메모리 / 운영 챗봇
우측 보조 패널 최상단에는 `City Brief`, `What Changed`, `핵심 인사이트`, `운영 챗봇`이 배치됩니다. 이 레이어는 도시 상태를 그대로 나열하는 대신, 세대/거래/합의/연구/경고 신호를 설명형 메모리로 재구성합니다. 서버는 `operations-context`를 통해 `payload / digest / explainability`를 공통으로 조립하고, 가능하면 `state/manifest.json` 캐시를 우선 사용합니다. `운영 챗봇`과 전문가 토론은 이 공용 컨텍스트를 기준으로 답합니다.
Manifest / Audit / Governance
`/api/manifest`는 최신 운영 컨텍스트 캐시를 돌려주며, `manifest`에는 digest와 explainability가 같이 저장됩니다. `state/audit.db`에는 방송, 합의, 주문 시도, 청산, 출생 이벤트가 append-only로 기록되고 `/api/audit`로 조회할 수 있습니다. `state/governance.json`과 `/api/governance`는 일일 손실 한도, 연속 손실 종목 차단, eligible 참여자 수를 반영한 현재 안전 상태를 제공합니다.
도시 전광판
1000개 픽셀이 에이전트 상태를 실시간 표시합니다. 픽셀 hover 시 `에이전트 ID · 표시 상태 · 현재 투표`를 바로 볼 수 있고, 클릭 시 전광판 우측의 시민 에이전트 상태 카드에 DNA, 크레딧, 학교 진행 상황, 연구 정책 귀속, 현재 투표, 합의상태, 위험도, 현재 매매가 표시됩니다.
시민 상태 읽기
`현재 투표`는 이 틱에서 시민이 낸 LONG/SHORT/HOLD입니다. `합의상태`는 글로벌 합의 참여 여부(`CONSENSUS_PARTICIPANT`, `DISSENTER`, `STANDBY`)를 뜻합니다. `위험도`는 재학교·고독사 임계값 기준의 운영 위험도입니다. `내부 LIVE/currentTrade`는 도시 내부 OPEN 원장 기준 참여 상태이고, `실제 거래소 열린 포지션`은 별도 OKX 포지션 기준입니다. 우상단 빨간 점은 엘리트/자손 계열 시민을 뜻합니다.
포지션과 성과 목표
포지션 카드는 `conway4`와 기존 `conway`를 소유 시스템 기준으로 구분하고 참여 에이전트를 함께 보여줍니다. 카드 배경과 owner 배지 색도 시스템별로 달라집니다. `성과 목표`는 기존 `conway`가 아니라 `conway4`의 CLOSED 거래만 기준으로 계산합니다.
Academy District 해석
`/city`의 `Academy District`는 실제 학교생만이 아니라 `MEAN_REVERT` 구역 시민도 함께 보여줍니다. 따라서 메인 대시보드의 `학교 0명`과 충돌해 보일 수 있으며, 실제 학교 인원은 `city.population.SCHOOL`, `REMEDIAL`, `schoolVsLive.schoolAgents` 기준으로 읽어야 합니다.
메인 레이아웃
| 섹션 | 내용 |
| 상단 4카드 | 시장 현황, 도시 인구, 방송국 브로드캐스트, 성과 목표 |
| 중앙 전광판 | 40×25 픽셀 도시 상태판 |
| 전광판 우측 | 시민 에이전트 상태, 도시 인시던트 |
| 하단 | 세대 혈통, 실시간 로그 |
| 보조 패널 | 도시 건강, 연구소, 사회 레이어, 학교 vs 실전, 전문가 성과, 방송 귀속, 전략 귀속, 성격 성과, 도시 구역, 구역 상호작용, 글로벌 합의, 자금, 포지션, 최근 거래 |
전문가 브리핑
방송국 카드는 `기술 / 뉴스 / 온체인 / 매크로` 탭으로 개별 전문가 의견을 읽을 수 있습니다. `/city`에서는 우측 Broadcast 패널의 전문가 카드를 직접 눌러 채팅형 브리핑을 이어갈 수 있습니다. 시민 타일이나 3D 시민을 클릭하면 선택된 시민 카드가 갱신되며, 해당 시민의 현재 상태를 기준으로 한 실시간 반응을 확인할 수 있습니다.
테마와 섹션 접기
헤더의 Light/Dark 버튼으로 테마를 전환할 수 있습니다. 각 패널 제목 클릭으로 접기/펼치기 가능하며 ▾/▸ 아이콘으로 상태를 표시합니다.
버전 로그
v4.2.0 — 2026-04-01 (operations-context / manifest / audit / governance)
| 파일 | 수정 내용 |
| core/operations-context.js / dashboard/server.js | 운영 컨텍스트 조립을 공용화하고 챗봇/토론/설명 API가 같은 payload·digest·explainability를 재사용하도록 정리 |
| core/manifest.js / trader.js | 틱 종료 시 `state/manifest.json` 캐시 기록, 서버에서 `/api/manifest`로 노출 |
| core/broadcast.js | `broadcast-history.json` 저장과 직전 방송 예측 결과 회고를 다음 프롬프트에 반영 |
| core/audit-log.js / core/governance.js | append-only 감사 로그와 합의형 governance gate 추가, `/api/audit`·`/api/governance` 연결 |
v4.1.6 — 2026-03-27 (사회자형 자율 토론 / 시티 도움말 보강)
| 파일 | 수정 내용 |
| dashboard/server.js | 사회자 토론 엔드포인트 추가, 전문가 토론 모드에서 방송/시장/연구 데이터를 함께 읽도록 보강 |
| phaser-city/src/main.js | 고정 순환형 토론을 사회자 오프닝 → 주장 → 반박 → 결론 요약 구조로 교체 |
| dashboard/public/index.html | 도움말에 `/city` 권역/토론/상태 해석 가이드 추가 |
v4.1.5 — 2026-03-27 (상태 의미 분리 / Academy District 보정)
| 파일 | 수정 내용 |
| dashboard/public/index.html | 메인 대시보드 포지션 카드 owner 색 분리, 실제 거래소 포지션/내부 currentTrade 설명 보강, 로그 영역 확장 |
| phaser-city/src/main.js | `Academy District` 명칭 적용, lifecycle active/internal open/school-remedial 메타 칩 분리, Academy 설명 카드 추가 |
| README / CHANGELOG | 상태 의미 차이와 Academy District 해석을 문서화 |
v4.1.4 — 2026-03-26 (3D 시티 상호작용 복구)
| 파일 | 수정 내용 |
| phaser-city/src/main.js | 3D 시민 클릭 → 권역 룸 포커스, 선택된 시민 실시간 반응 카드, Broadcast 전문가 양방향 채팅 연결 복구 |
| phaser-city/src/styles.css | 선택된 시민 카드, 전문가 액션 카드, 선택 강조, 모바일 패널 스택 레이아웃 추가 |
| README / CHANGELOG | `/city` 상호작용 복구와 모바일 보강 내용을 문서화 |
v4.1.3 — 2026-03-26 (운영 메모리 / 운영 챗봇)
| 파일 | 수정 내용 |
| core/explainability.js | `city + broadcast + research + learning.db + trades` 기반 설명형 운영 메모리(`brief / insights / timeline`) 생성 |
| server.js | `/api/explainability`, `/api/insights`, `/api/timeline`, `/api/explain`, `/api/ask`, `/api/chat` 추가 및 운영 digest 기반 답변 연결 |
| index.html | 우측 패널 상단에 `City Brief`, `What Changed`, `핵심 인사이트`, `운영 챗봇` 추가, 헤더 챗봇 버튼/PC 가시성/모바일 레이아웃 보정 |
| README / CHANGELOG | 운영 메모리, 운영 챗봇, 설명 API, 레이아웃 변경을 문서화 |
v4.1.0 — 2026-03-22 (3D City Rewrite / Claw3D-inspired Ops Layer)
| 파일 | 수정 내용 |
| phaser-city/src/main.js | `/city`를 Phaser 2D 씬 묶음에서 `Three.js` 기반 3D 아이소메트릭 도시 운영 월드로 교체 |
| phaser-city/src/styles.css | 3D 월드 HUD, 좌측 도크, 실시간 라벨, 우측 작업 패널 스타일 추가 |
| phaser-city/src/api/CityAPI.js | 3D 패널이 포지션/거래까지 함께 읽도록 `positions`, `trades` 캐시 확장 |
| index.html / README / roadmap | `/city` 사용법과 운영 의미를 3D 시티 오퍼레이션 레이어 기준으로 재문서화 |
v4.0.8 — 2026-03-19 (학교 선별/구역 복구/포지션 소유 명시)
| 파일 | 수정 내용 |
| school.js | 신규 학생은 무한 재학습 대신 재시도 한도를 적용, 엘리트 계열은 더 많은 기회 부여 |
| trader.js / city.js | 새 전략 지표군(`BOLLINGER`, `VOLUME`, `MEAN_REVERT`, `SUPPORT_RES`)을 도시 구역 체계에 재연결 |
| server.js | 포지션 API가 `conway4`와 기존 `conway`를 구분하고 참여 에이전트를 함께 반환 |
| index.html | 포지션 카드에 소유 시스템/참여 에이전트 표시, 엘리트 점표시 유지 |
| README / roadmap | 성과 목표가 `conway4` 전용 원장 기준임을 포함해 운영 의미 정리 |
v4.0.7 — 2026-03-18 (실전 합의 복구/시민 운영상태 표시)
| 파일 | 수정 내용 |
| data-collector.js | 거래 대상 20개 종목 전체 캔들을 수집해 `NO_DATA` 병목 완화 |
| city.js / trader.js | 실전 fallback 투표와 현재 투표 스냅샷 저장으로 `1000 HOLD` 정체 해소, 실제 LONG/SHORT 합의와 주문 복구 |
| server.js | 시민 API에 `currentVote`, `consensusState`, `riskState`, `currentTrade` 포함 |
| index.html | 전광판 `매매중 점등`, hover 투표 표시, 시민 상세에 현재 투표/합의상태/위험도/현재 매매 추가 |
| README / roadmap | 실전 합의 복구와 시민 상태 해석 문서화 |
v4.0.6 — 2026-03-17 (학습 DB 원장/표시 의미 정리)
| 파일 | 수정 내용 |
| learning-db.js | 학교 학습 틱, 입학/졸업/재교육/낙제 이벤트를 SQLite `learning.db`에 저장 |
| trader.js | 학교 파이프라인 admissions와 학교 결과를 DB 원장에 누적 저장 |
| server.js | `/api/learning-db` 추가 |
| index.html | 학교 패널에 DB 누적 집계, hover 식별, 탭형 전문가 브리핑, 상태 의미 보정 |
| README / roadmap | 학습 DB와 상태 표현 정리 문서화 |
v4.0.5 — 2026-03-17 (학교-도시 분리/고속 학습 파이프라인)
| 파일 | 수정 내용 |
| school.js | 다중 서브사이클, 다중 구간/종목 탐색, HOLD 탈출용 학습 탐색 신호 추가 |
| trader.js | 학교 정원 연속 유지, 엘리트 자식/재학습생/랜덤 학생 3분류 공급, 학교 처리량 상태 저장 |
| index.html | 학교 패널에 서브사이클 처리량과 학생 공급원 표시 |
| README / roadmap | 학교-도시 분리형 운영 모델과 빠른 학습 구조 문서화 |
v4.0.4 — 2026-03-17 (정책 레이어/학교 검증 보강)
| 파일 | 수정 내용 |
| research.js | 성격 + 구역 + 전략 기준 `BOOSTED/WATCHLIST/SUNSET/LAST_CHANCE` 정책 레인 추가 |
| city.js / school.js | 정책 레인이 실전 confidence, 재학교 임계값, 졸업 기준에 직접 반영 |
| index.html | 학교 현재 진행 단계, 정책 레인, 구역 상호작용 패널 추가 |
| README / docs | 최종 정책 레이어와 운영 검증 한계 문서화 |
v4.0.3 — 2026-03-17 (연구소-학교/출생 정책 연결)
| 파일 | 수정 내용 |
| research.js | `schoolUpgrade`, `birthPersonalityPolicy` 생성, 실패 원인별 커리큘럼 트랙 배정 |
| school.js | 커리큘럼 트랙에 따른 학교 confidence 보정 추가 |
| city.js / trader.js | 연구소 정책 기반 자손/재시드 성격 분포 제어, 혈통/전략/방송 귀속 확대 |
| index.html | 연구소, 학교 vs 실전, 전문가 성과, 방송 귀속, 전략 귀속 패널 및 도움말 반영 |
| README / docs | v5 로드맵과 남은 과제 문서화 |
v4.0.2 — 2026-03-17 (브로드캐스트/대시보드 개편)
| 파일 | 수정 내용 |
| broadcast.js | 코드펜스 JSON 응답 파싱 보강, 방송국 `분석 불가` 문제 해결 |
| school.js | 신규 학교 실패 시 즉시 사망 대신 재교육 유지 |
| city.js / trader.js | 도시 건강, 혈통, 성과 목표, 재시드/인시던트 텔레메트리 보강 |
| index.html | 상단 4카드 + 중앙 전광판 + 우측 시민/인시던트 + 하단 혈통/로그 구조로 재배치 |
| index.html | Light/Dark 테마 토글 추가, 라이트 모드 카드 그림자형 스타일 적용 |
| server.js | 대시보드 루프백 바인딩, trades/positions 응답 정리 |
v4.0.1 — 2026-03-17 (버그 수정)
| 파일 | 수정 내용 |
| gene-runner.js | candle 객체→배열 정규화 추가 (전원 HOLD 버그 수정) |
| city.js / school.js | geneResult.direction → .signal 필드명 수정 |
| school.js | HOLD 신호(pnl=0) losses++ 제외, totalPnl>0 조건 제거 |
| index.html | ws:// → wss:// 수정 + REST API polling fallback 추가 |
| dashboard | 자금현황/포지션/거래내역/로그 패널 추가 |
| trader.js | v4-tracking.json으로 v3 포지션 분리 구현 |
v4.0.0 — 2026-03-17 (초기 릴리즈)
| 구성 | 내용 |
| 에이전트 | 800명 초기 생성, 10개 지표 랜덤 DNA |
| 학교 시스템 | 20틱 백테스트, 승률/샤프 졸업 기준 |
| 방송국 | LLM 전문가 4명 브로드캐스트 (1시간 주기) |
| LED 대시보드 | 40×25 픽셀 그리드, 모바일 반응형 |
| OKX 연동 | 데모 $9 포지션 실행, gene-runner 실시간 지표 |
| mTLS | conway4.xsw.kr 클라이언트 인증서 보호 |