OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Stop-loss stress test of one day of hourly ETH data against illustrative Aave V3 and Morpho parameters.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Live: summer-fi-risk-analysis.vercel.app
This is an independent portfolio case study. A small Python model replays 24 hourly ETH price and gas observations for 5 August 2024 against static stop-loss buffers. It uses illustrative Aave V3 and Morpho parameters. A Next.js page lets a reader change the market, entry LTV and buffer and see the outcome. The repository is not affiliated with Summer.fi, Aave or Morpho.
All numbers come from data/aug_5_crash_data.csv and reports/sweep_results.csv.
scripts/risk_model.py holds a DeFiRiskModel. At each hourly row it computes LTV as debt / (collateral x price). It checks the liquidation threshold first, then the stop-loss trigger (threshold minus buffer). Gas does not change LTV. It adds slippage (0.1% + gas/100 x 0.5%, capped at 5%) and a fixed 300,000-gas cost to the modeled exit value. Only a static strategy exists. web-showcase/src/app/riskModel.ts mirrors the model for the interactive page, and tests/test_ts_parity.py checks that both give the same status, trigger hour and exit values. notebooks/aug5_analysis.ipynb plots the data and the sweep, with its executed output committed.
Needs Python 3.14 (the version tested; pandas==3.1.0 needs 3.11 or newer) and Node 22.18 or newer (the parity test runs the TypeScript model with Node's built-in type stripping). No network or keys are needed after install.
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
python -m pytest tests # 13 tests passed on 2026-10-24
python scripts/risk_model.py --combined-sweep # rewrites reports/sweep_results.csv (identical to the committed file)
python scripts/risk_model.py --protocol AaveV3 --ltv 0.70 --buffer 0.05
jupyter nbconvert --to notebook --execute notebooks/aug5_analysis.ipynb --stdout > /dev/null
cd web-showcase
npm ci
npm run lint && npm run build
npm run dev
data/: the 24-row hourly price and gas CSV.scripts/: the Python risk model and command-line entry point, plus the Node helper the parity test calls.tests/: 13 pytest tests: the Python model, and its agreement with the TypeScript model.notebooks/: plots of the data and the sweep.reports/: the sweep CSV and a written backtest report.web-showcase/: the Next.js case-study page and docs viewer.reports/backtest_report_aug5.md: assumptions, sweep counts and limits.CONSULTING_REPORT.md: the case-study write-up and recommendation.PROJECT_OVERSIGHT.md: scope notes for the workstream.The CSV is described as a "supplied scenario". Its source is not recorded in this repository, and I have not checked it against on-chain or exchange data. Treat the prices and gas values as illustrative inputs, not as a market record.
tests/test_ts_parity.py compares it with the Python model on the 50-run sweep grid and four off-grid inputs. It does not prove the two agree on every input./docs.MIT, see LICENSE. It covers this project's code, not the supplied scenario data, whose source is uncited.
Part of Rahil Bhavan's projects.