Skip to content

Julia : ATR Risk Parameter Simulation & Multi-Dimensional Visualization - #74

Draft
kimpro82 wants to merge 11 commits into
masterfrom
jlAtrSimulation
Draft

kimpro82 wants to merge 11 commits into
masterfrom
jlAtrSimulation

Conversation

@kimpro82

Copy link
Copy Markdown
Owner

No description provided.

@kimpro82

Copy link
Copy Markdown
Owner Author

실행 명령어 정리

  • 스크립트 실행: julia atr_risk_simulation.jl
  • 특정 프로젝트 환경(패키지 의존성) 사용 시: julia --project=. atr_risk_simulation.jl
  • REPL(대화형 모드) 진입: julia (인자 없이 실행)
  • 한 줄 코드 실행: julia -e '코드'

@kimpro82

Copy link
Copy Markdown
Owner Author

.toml 파일 저장 필수 여부 확인

Project.toml은 필요합니다 — 프로젝트가 사용하는 직접 의존성(Plots 등) 목록이라 매우 작고, 재현을 위해 커밋하는 것이 맞습니다.

Manifest.toml은 선택 사항입니다:

  • 모든 전이 의존성의 정확한 버전/해시를 고정하는 파일로, 지금처럼 38KB에 달하고 OS/아키텍처별 바이너리(Xorg, Qt6 등 JLL 패키지) 버전까지 못박혀 있어 다른 환경에서는 오히려 호환성 문제를 일으킬 수 있습니다.
  • Julia 공식 가이드에서도 "패키지(라이브러리)"는 Manifest.toml을 커밋하지 않는 게 관례이고, "애플리케이션"은 완전한 재현성을 위해 커밋하기도 합니다. 이 저장소는 여러 언어의 예제/스크립트 모음 성격이라 gitignore 처리를 추천드립니다.

Manifest.toml은 아직 git에 추적되지 않은 상태(untracked)라 .gitignore 추가만으로 충분합니다. Project.tomlatr_risk_simulation.jl은 정상적으로 커밋 대상에 남아있습니다.

변경 사항 적용함.

@kimpro82

Copy link
Copy Markdown
Owner Author

run.sh 생성

Usage

./run.sh filename.jl

File

set -euo pipefail

if [[ $# -lt 1 ]]; then
    echo "Usage: $0 <filename.jl>"
    exit 1
fi

source ~/.bashrc

julia --project="$(dirname "$0")" "$@"

@kimpro82

Copy link
Copy Markdown
Owner Author

이미지 옵션 변경

요청하신 3가지 모두 반영해서 재실행했습니다.

  1. atr_risk_2d.png: POSITION_VALUE 세로축이 10,000, 20,000… 형태로 표시됩니다.
  2. atr_risk_3d_position_value.png: POSITION_VALUE 축이 콤마 포맷으로 바뀌었고, right_margin을 넓혀 오른쪽 색상 범례가 잘리지 않습니다.
  3. atr_risk_3d_stop_rate.png: camera 값을 (30,30)(120,30)으로 조정해 z축 기준 90도 회전된 시점으로 표시됩니다. (참고: STOP_RATE는 정의상 ATR에만 의존하고 ATR_RISK_BUDGET 축으로는 변화가 없어, 어떤 각도에서 봐도 해당 축 방향으로는 평평한 "경사면" 형태로 보이는 것이 수학적으로 정상입니다.)

atr_risk_simulation.jlcomma_format 헬퍼 함수를 추가하고 각 플롯에 yformatter/zformatter, right_margin, camera 옵션을 적용했습니다.

변경 사항 적용함.

@kimpro82

Copy link
Copy Markdown
Owner Author

이미지 옵션 변경 (계속)

문제 파악

STOP_RATEATR_RISK_BUDGET에 따라 전혀 변하지 않는 이유와 3D 그래프의 축척 문제를 확인했습니다. 원인은 수식 구조에 있습니다.

핵심 원인 분석

  • STOP_RATE = max(ATR / REFERENCE_PRICE, 0.5%) 공식 자체에 ATR_RISK_BUDGET이 전혀 들어가지 않습니다. 즉 하단 패널과 atr_risk_3d_stop_rate.pngRisk Budget별 차이가 없는 것은 버그가 아니라 정의상 당연한 결과입니다 (STOP_RATE는 오직 ATR만의 함수).
  • 그런데 현재 REFERENCE_PRICE=10,000원 기준으로는 ATR=100원일 때도 raw_stop_rate=1%로, 이미 0.5% 하한선을 넘습니다. 즉 10×10 그리드 전체에서 0.5% 최소값이 단 한 번도 적용되지 않습니다. PRD가 강조한 "하한선이 걸리는 평탄 구간(flat threshold zone)"을 전혀 볼 수 없는 상태이며, 이게 3D STOP_RATE 그래프가 그냥 밋밋한 경사면(ramp)으로만 보이고 "의미 해석이 안 되는" 근본 이유이기도 합니다.
  • POSITION_VALUE 축척 문제는 TOTAL_BUDGET_LIMIT=1억원 × RISK_BUDGET(0.5~5%) 를 낮은 STOP_RATE(1~10%)로 나누다 보니 최대 5억원까지 커져서 생긴 결과입니다.

제안

  1. POSITION_VALUE 표시 단위를 "만원"(10,000원 단위)으로 바꾸면 값이 500~50,000 범위가 되어 요청하신 10,000, 20,000… 형태의 눈금과 자연스럽게 맞아떨어집니다.
  2. REFERENCE_PRICE를 더 높여서(예: 100,000원) ATR 낮은 구간에서 실제로 0.5% 하한선이 걸리도록 하면, 하단 2D 패널과 3D STOP_RATE 그래프에 "꺾이는 지점(elbow)"이 생겨 PRD가 의도한 분석 목적(하한선 평탄 구간 파악)을 실제로 보여줄 수 있습니다.

개선 결과

이제 세 그림 모두 개선되었습니다.

1. atr_risk_2d.png

  • 위: POSITION_VALUE 축을 "x10,000 KRW" 단위로 바꿔 20,000, 40,000… 형태로 표시됩니다.
  • 아래: REFERENCE_PRICE를 100,000원으로 올려 ATR ≤ 500원 구간에서 실제로 0.5% 하한선이 걸리는 평탄 구간이 나타났습니다. Risk Budget에 따라 선이 안 갈라지는 것은 정상입니다 — STOP_RATE = max(ATR/REFERENCE_PRICE, 0.5%) 공식 자체에 ATR_RISK_BUDGET이 들어가지 않기 때문에(PRD 정의상 STOP_RATEATR만의 함수), 모든 예산 수준에서 동일한 곡선이 나오는 게 맞습니다.

2. atr_risk_3d_position_value.png: z축을 동일하게 "x10,000 KRW" 단위로 바꾸고 콤마 포맷 + 여백 확보로 색상 범례가 잘리지 않습니다.

3. atr_risk_3d_stop_rate.png: 이전엔 하한선이 전혀 작동하지 않아 그냥 밋밋한 경사면으로만 보였는데, 이제 ATR≤500 구간은 0.5% 평평한 "바닥(floor)"으로, 그 이상은 선형으로 상승하는 "꺾인 경사면(hinge surface)"으로 명확히 보입니다. 즉 이 그림의 의미는 **"어느 지점부터 최소 손절 폭 제약이 풀리는가"**를 시각화한 것입니다.

변경 사항 적용함.

@kimpro82

Copy link
Copy Markdown
Owner Author

이미지 옵션 변경 (계속)

Label overlap가 해소되었습니다. 세 그림 모두 반영 완료했습니다.

  • atr_risk_2d.png: left_margin 추가로 세로축 설명이 잘리지 않습니다.
  • atr_risk_3d_position_value.png: 카메라 각도를 (30, 40)으로, 여백을 넉넉히 조정해 ATR_RISK_BUDGET (%) 라벨과 차트가 겹치지 않습니다.
  • atr_risk_3d_stop_rate.png: camera=(45,30)(-45,30)으로 z축 기준 -90도 회전했고, 폰트 크기/여백 조정으로 라벨 겹침도 해결했습니다.

변경 사항 적용함.

@kimpro82

Copy link
Copy Markdown
Owner Author

이미지 옵션 변경 (계속)

투명도(fillalpha=0.60)를 적용해서 표면 뒤에 가려져 있던 **z축 이름("STOP_RATE (%)")**이 이제 보입니다. x(ATR (KRW)), y(ATR_RISK_BUDGET (%)) 축 이름도 모두 정상적으로 표시됩니다.

변경 사항 적용함.

@kimpro82

Copy link
Copy Markdown
Owner Author

이미지 옵션 변경 (계속)

atr_risk_3d_position_value.png에도 fillalpha=0.60 투명도가 적용되었습니다.

변경 사항 적용함.

@kimpro82 kimpro82 changed the title ATR Risk Parameter Simulation & Multi-Dimensional Visualization Julia : ATR Risk Parameter Simulation & Multi-Dimensional Visualization Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

Julia : ATR Risk Parameter Simulation & Multi-Dimensional Visualization

1 participant