분류 전체보기(95)
-
[월드퀀트브레인] put-call imbalance, put-call ratio (PCR) 전략
옵션 시장의 왜곡을 읽는 법: IV Imbalance 기반 전략 분석“옵션 시장은 본래 가격보다 심리를 먼저 반영한다. 그 왜곡을 포착하는 것이 퀀트 전략의 시작이다.”전략 개요이 전략은 콜옵션과 풋옵션 간의 내재변동성 비율(IV Imbalance)을 활용하여 옵션 시장의 비정상적 기대 심리를 포착하고, 이를 산업 내 중립화, 변동성 그룹화, 거래 강도 기반 가중화, 시가총액 필터링을 통해 강화하는 방식입니다.Region: USAUniverse: TOP3000Decay: 5Neutralization: IndustryTruncation: 0.03전략의 가설 (Hypothesis)옵션 시장 참여자들은 주식 투자자보다 빠르게 리스크를 반영하는 경향이 있습니다. 특히 콜옵션 대비 풋옵션의 내재변동성이 비정상적으..
2025.05.15 -
[Functional Programming] 부록: 지연 평가 사용 사례
함수형 프로그래밍의 핵심 개념 중 하나는 지연 평가(Lazy Evaluation) 이다.데이터를 즉시 계산하지 않고, 필요할 때 평가(evaluation)하는 전략이다.1. 지연 평가는 왜 필요한가메모리 효율 형상성능 최적화무한 데이터 스트림 안전하게 가능조건에 따라 조기 중단 가능(take(n), find(item))2. Javascript에서 지연 평가JS에서는 Array.map, Array.filter는 즉시 평가(eager evaluation)이다.[1, 2, 3, 4] .filter(x => x % 2 === 0) // → 즉시 실행 .map(x => x * 10); // → 즉시 실행3. 지연평가 이용 사례3.1. 무한 숫자 스트림에서 100번째 짝수 찾기func..
2025.04.26 -
실전으로 배우는 전략 패턴 (Strategy Pattern) – 트레이딩 봇에서 OOP 활용하기 w.Python
전략 패턴이란?전략 패턴(Strategy Pattern)은 알고리즘(전략)의 동적 교체를 가능하게 해주는 객체지향 디자인 패턴입니다.행동(Behavior)을 캡슐화하고, 런타임 시에 객체에 전략을 주입해 변경 가능한 유연한 구조를 만들 수 있도록 도와줍니다.“변화하는 부분을 분리하고, 고정된 부분은 그대로 두자”는 OOP 원칙의 대표 사례입니다.https://github.com/99mini/trading 에서 소스코드를 확인할 수 있습니다.구조 요약trading-bot/├── .venv/ # 가상환경├── .gitignore├── requirements.in # 의존성 명시├── requirements.txt # 고..
2025.04.25 -
[Functional Programming] 4장: 고급 이터러블 함수 구현
property get lengthclass Fx implements Iterable { /** * @description evaluates the iterable and returns the length of the array (O(n)) * @returns {number} the length of the array */ get length(): number { return this.toArray().length; }}Fx 클레스에 length 프로퍼티를 추가합니다. length 프로퍼티에 접근하게 되면 평가가 진행되어 O(n)의 시간 복잡도를 가지게 됩니다.왜 O(n)의 시간복잡도를 유지하는가?github copilot의 코드리뷰입니다.src/Fx.ts:62Using toArra..
2025.04.24 -
[Functional Programming] 3장: group 함수와 Fx 클래스 분리
이번 장에서는 함수형 유틸리티의 대표적인 고급 함수 중 하나인 group 함수를 구현하고,기존에 하나로 묶여 있던 Fx 클래스와 각 함수들을 모듈 단위로 분리하는 리팩토링을 진행했습니다.1. group 함수란?group은 주어진 키 생성 함수에 따라 데이터를 그룹핑하여 Map 형태로 반환하는 함수입니다.기본적으로 다음과 같은 역할을 수행합니다.group([{ age: 20 }, { age: 30 }, { age: 20 }], x => x.age)// Map {// 20 => [ { age: 20 }, { age: 20 } ],// 30 => [ { age: 30 } ]// }함수형 프로그래밍에서는 reduce를 사용해서 구현할 수도 있지만,이번에는 이터러블 기반 구현 + 타입 안정성을 고려해 gr..
2025.04.23 -
[Functional Programming] 2장: iterator 함수 range 구현하기
함수형 유틸리티를 만들 때 빠질 수 없는 기본 도구 중 하나는 바로 range입니다.range는 원하는 숫자 범위를 순차적으로 생성해주는 반복기(iterator)이며, 지연 평가와 매우 잘 어울리는 함수입니다.이 장에서는 TypeScript에서 제너레이터와 함수 오버로드를 이용해 range 함수를 구현하고, 이를 테스트하는 과정을 설명합니다.range 함수란?range는 Python을 비롯한 많은 함수형 언어에서 기본 제공되는 기능입니다. range(5) → [0, 1, 2, 3, 4]range(2, 5) → [2, 3, 4]range(0, 10, 2) → [0, 2, 4, 6, 8]range(5, 0, -1) → [5, 4, 3, 2, 1]이러한 형태를 TypeScript에서 구현하면서도 이터러블을 ..
2025.04.21