본문 바로가기

전체 글

(18)
Python 활용 #5 - Efficient Frontier simulation Python 을 활용하여 Markowitz의 efficient frontier를 simulation해 보았다. 기간: 2017년 1월 1일 ~ 2021년 7월 28일 대상 종목: Visa, Mastercard, MSCI Inc 데이터 소스: Yahoo! Finance 참고 서적: "파이썬으로 배우는 포트폴리오" 참고 1) pandas package의 DataReader 함수는 2021년 1월부터의 자료는 다운로드 안 받아지는 모습이다. 2) 그래서, yfinance 라는 패키지를 사용하여 값을 다운로드 받았다. 참고: portfolio volaitlity 를 계산을 위한 이론적 배경 지식 Motivation: Markowitz's efficient frontier Codes 와 주석 """ 출처: 'Py..
Python 활용 #4 - probability tree 구현 Python 활용 #4 - probability tree 구현 python내 사용 개념: [] list, for ... in, range, append() 사용 개념: probability tree code 및 결과(image) code 및 결과 a=[] for i in range(2): for j in range (2): for k in range(2): a.append([i,j,k]) print(a) len(a) [[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] Out[5]: 8 Motivation: probability tree code a=[] for i in range(2): for j ..
python 활용 #3 - 주어진 집합 S내의 숫자들을 더하는 코딩 python 활용 #3 - 주어진 집합 S내의 숫자들을 더하는 코딩 작성일: 2021.7.29. 주어진 집합 S 이 있고, S = {1, 2, 3, 4} 로 가정하자. 집합 S내의 숫자들의 합을 구하고 싶다. 여기에서는 1+2+3+4 과정을 통해 10이 된다. 결론: python 코딩 def recursive(S): print(S) if len(S) > 2: T = S[2:len(S)] T.insert(0,(S[0]+S[1])) recursive(T) if len(S) == 2: T = S[0:2] print(T[0]+T[1]) 테스트해 보자. w=[1,2,3,4] recursive(w) [1, 2, 3, 4] [3, 3, 4] [6, 4] 10 python 내 활용 개념: def, if ... then..
Julia 활용 #1 - 비선형(non-linear) optimization(최적화) model으로 주식 포트폴리오내 어떤 조합을 매도할지 판단하자 Project 목표: 주어진 주식 포트폴리오에서 어떤 조합으로 매도해야 조어진 조건들을 최대한 충족시키는지를 코딩하자. - 조건들 1. 매도액은 $300에 가까울 것, 2. 매도 후 주식 포트폴리오의 price-to-earnings ratio가 45 이하일 것. - 사용 언어: julia - 사용 editor (Atom / uber-juno) - 사용 package: JuMP, Ipopt, Juniper - 사용 개념: optimization (min/max) with constraints, bounded domain - 작성일: 2021년 5월 2일 목차 1. 결과물 2. Motivation 3. Optimization problem with constraints 으로 전환 4. 코딩 + 설명 (영어)..
Python 활용 #2 - project: 3일 별로 번갈아가는 일정을 코딩하자. Project 목표: 3일 별로 번갈아가는 일정을 코딩하자. - 사용 언어: python - 사용 package: pandas - 사용 개념: mod, dataframe, range, if.. for, int 등 - 작성일: 2021년 4월 12일 목차 1. 결과물 2. Motivation 3. 주어진 정보 4. 코딩 설명 + 구조 (영어) 5. 코딩 전문 1. 결과물 2. Motivation 1) 최근 재택근무(work from home)와 사무실 출근을 병행하고 있다. 2) 재택근무 3 영업일 이후 사무실 출근 3 영업일, 다시 재택근무 3 영업일 이렇게 돌아가며 일하고 있다. 3) 코딩을 통해 재택근무-사무실 출근 일정을 작성해 보기로 했다. 3. 주어진 정보 1) 시작 날짜 = 2021년 4월 1..
데이터 분석과 프로그래밍 기초를 위한 책 리스트 #1 (2021.4.11.) 데이터 분석과 프로그래밍 기초를 위한 책 리스트 #1 # 나는 괜찮다는 느낌이 드는 책을 일단 구입하는 편이다. 책이 절판되어, 나중에 구하기 불가능할 수도 있거든. # 내용 대비 한국의 책들은 가격이 저렴한 편이라 생각한다. 저자의 노하우, 직관, 그리고 기술을 배워서 내가 활용하는 가치는 정말 크다. 책 값 = 저자와의 만남에서 내가 대접할 차값 + 음식값 + 시간가치 라고 여기면 충분히 책을 구입할 만하다. # 프로그래밍 책들을 굳이 살 필요 없이, 인터넷에서 서칭만 해서도 충분하다는 사람들이 있다. 나는 어느정도 동의하지만, 100% 동의하지는 않는다. 종이책의 장점도 많다 1) (컴퓨터 스크린에서 읽는 것과 대비하여) 종이책을 읽을 경우 눈이 덜 피로하여 더 오래 동안 읽을 수 있다. 2) 책으..
Python 활용 #1: 선형 보간법 (linear interpolation) 을 구현해 보자. (야 너도 Python 코딩 할 수 있어! #1) (2020.12.25.) Python 활용 #1: 선형 보간법 (linear interpolation) 을 구현해 보자. 결과 값 사용 Python platform: Python IDLE 3.8.3 사용 개념들: x=[], range(), len(), def, for ... loop, if ... else, and, in 목차 1. Motivation 2. 목표: x 가 1과 9 사이에 위치할 때, 즉 $ 1 < x_0 < 9 $ 일 경우, 이 $x_0$에 해당되는 $(x_0, y_0)$ 의 근사값을 계산해 보자. Step 3. Python 을 가동하여 list x, list y, list slope, list y_intercept 를 생성하자. Step 4. 목표 수정: 가정을 하나 더 추가하자. (0,0) 값을 추가하자. x..
PostgreSQL을 이용하여 조건에 따른 부분합을 계산해 보자 (야 너도 SQL 할 수 있어 #1) (2020년 12월 15일 화요일) Motivation: 아래와 같은 table이 주어졌다고 가정하자. 이를 target end-picture (아래 참고) 처럼 정리하고자 한다. Target end-picture: 사용 SQL platform: PostgreSQL 13 사용 함수: DROP TABLE, CREATE TABLE, SELECT, sum 사용 자료형: DATE, VARCHAR, NUMERIC 목차 /* STEP 0: 준비 작업 */ /* STEP 1: holdings2 라는 이름을 가진 table을 만든다. 사용 함수는 CREATE TABLE */ /* STEP 2: COPY 함수를 이용해 holdings holdings2.csv 파일내 값을 holdings2 table에 복사한다. */ /* STEP 3: group by를 ..
dplyr 패키지와 readxl 패키지를 이용하여 조건별 부분합을 계산하자 (2020.12.10.목) 야 너도 R 코딩 할 수 있어 #1 작성일: 2020년 12월 10일 목요일 사용 언어: R 사용 플랫폼: R studio 사용 패키지: readxl, dplyr 사용 함수: read_excel (readxl 내장 함수), View, mutate (dplyr 내장 함수), group_by(dplyr 내장 함수), summarize, sum 목차 # Step 1: 필요한 패키지를 설치한다: readxl, dplyr # Step 2: 패키지를 불러온다. # Step 3: 이번 예제에서 쓰일 파일을 불러온다. 사용 함수: read_excel(), View() # Step 4: 새로운 변수를 만들자. KRW_amount = 1200 * USD_amount. 사용 함수: mutate() # Step 5: 조건 2개(BM, date) 이 적용된 부분..