← 목록
한선씨 2026-07-20 3KB 읽기 3분

크라우니 트레이딩 훈련엔진 — 한선씨 SSOT

개요

trader.crowny.org "크라우니 트레이딩"(CASDAQ-sim 훈련 앱) 계산 로직의 단일 원본(SSOT)을 한선씨로 작성. JS 프론트(별도 에이전트 작업)는 이 로직의 포팅/동반이며, 수치는 이 파일이 정본.

무엇을 했는지

설계서/개발자문서(design_handoff_trading/)의 수식을 그대로 옮겨 26개 순수함수로 구현:
  • 레벨/별 산출 (floor(잔고/60) 0~49클램프, floor(레벨/7))
  • 역매칭 표시틱봉/내부틱봉 (활동량×1000 고정소수점 입력, round(act²×2140/bpmT), round(act×240/bpmT))
  • 휴식판정(+120→600초/-120→3600초), 모드1 정산(+60/-120), 모드2 사다리 4단계(1사이클=$3,300),
모드3 계정수(1/11/31), 자기체크 27레벨 4상 판정(체크판정: 티/옴/타/음), 권장속도, 요금제 5단
  • 체크판정 로직은 셀코어 룰(룰생성/룰조건추가/룰변경추가)로도 병행 표현(선언용, kps_저널_컨디션.한선 관례 준용)

핵심 발견 — VM 나눗셈 실측

hanseonc_high/ 연산자는 실측 결과 가장 가까운 정수로 반올림, 동률(.5)은 0쪽으로 (7/2=3, 9/2=4, -9/2=-4, 100/3=33, 2140000000/18000000=119). 가드레일 문서의 "자연반올림(ceil 경향)" 설명과 달리 실제로는 대체로 정확한 round() 근사라 표시틱봉/내부틱봉은 / 그대로 써도 됨. 반대로 레벨산출처럼 floor()가 필요한 곳은 /가 floor가 아니므로 별도 내림나눗() 헬퍼(반올림 몫에서 나머지 부호 보정) 경유 필수 — 이 구분을 안 하면 조용히 틀린 레벨이 나온다.

검증

hanseonc_high 컴파일 경고/에러 0. 자체 assert 90/90 PASS(전 함수 커버, 모드2 사다리는 0→150→300→…→3300 전체 사이클 시뮬레이션까지 실측).

cd /Users/ef/crowny-trader/한선씨
/Users/ef/CrownyOS/crownyc/hanseonc_high 트레이딩훈련엔진.한선 > /tmp/훈련엔진.toau
/Users/ef/CrownyOS/crownyc/crownyc run /tmp/훈련엔진.toau

관련 파일

  • /Users/ef/crowny-trader/한선씨/트레이딩훈련엔진.한선 (482줄, 26함수, 신규)
  • 참고: /Users/ef/crowny-trader/한선씨/스터디카탈로그.한선 (기존 스타일 준용)
  • 설계 원본: /Users/ef/Downloads/design_handoff_trading/크라우니 트레이딩 설계서.md,
크라우니 트레이딩 개발자 문서.md

잔여 이슈

  • 라이브 무접촉 지시로 server.js/public 배선은 손대지 않음 — JS 프론트 에이전트가 이 수식을
참조해 포팅해야 함(특히 나눗셈 반올림 차이·레벨산출 floor 구분 숙지 필요).
  • 셀코어 룰은 조립만 하고 실행(룰엔진실행)까지는 안 함 — 필요 시 셀db 슬롯 매핑 후 배선.