기타
-
가상화폐 포트폴리오의 헤지 아이디어기타/가상화폐 2021. 11. 28. 19:05
가상화폐는 변동성이 크기 때문에, 아무리 포트폴리오를 짜서 투자한다고 하더라도 투자자가 감내해야할 하방리스크가 너무너무너무 크다. 심심하면 한번에 10%씩 내려가기 때문이다. 그걸 감내하는 가장 좋은 방법은 아무것도 하지 않는 것이다. 일반적인 개인 투자자가 효율적으로 대응할 수 있는 방법이란 없다. 그래도 무언가를 하고 싶다면 공적분을 이용해서 헤지 포트폴리오를 만들 수 있지 않을까? 아이디어 위 차트는 그레이스케일의 디파이 펀드와 숏 포트폴리오를 결합한 경우의 수익률(좌)과 상관관계 추이(우)다. 데이터는 21년 8월 1일부터 11월 28일까지다. 숏 포트폴리오의 구성종목은 비트코인과 이더리움이며, 동일가중으로 구성되어 있다. 두 포트폴리오가 상당히 높은 상관관계를 계속해서 유지하고 있다. 해당 기간..
-
[파이썬] 가상화폐 포트폴리오 만들기기타/가상화폐 2021. 11. 28. 18:26
가상화폐를 단기 트레이딩 관점에서 접근하는 사람이 대다수이긴 하지만, 포트폴리오 관점에서 접근하는 사람도 있을 것이다. 그 경우 임의로 포트폴리오를 구성해서 수익률 추이를 확인하고 싶을텐데, 파이썬을 활용하여 가상화폐의 포트폴리오를 만들어서 수익률 추이를 확인하는 방법을 알아보자. 사용할 라이브러리는 1. ccxt 2. matplotlib 3. datetime 세 가지가 있다. ccxt의 사용법을 잘 모른다면, 아래 글을 참고하면 된다. 파이썬으로 바이낸스에서 데이터 크롤링하기 CCXT(CryptoCurrency eXchange Trading) 라이브러리를 이용하면 코인거래소에서 가격을 불러올 수 있다. 바이낸스뿐만 아니라 FTX나 고팍스, 빗썸 등도 지원하는데 코드 한 줄 바꾸는 것만으로 서로다른 거 ..
-
[파이썬] Historical Correlation(상관관계 추이) 계산하기기타/가상화폐 2021. 11. 25. 11:10
상관관계는 어느 특정 시점에서 계산하는 것이 일반적이지만 가끔 상관관계가 시간의 변화에 따라 어떻게 달라졌는지 보고 싶을 때가 있다. 그럴 때는 아래와 같이 계산할 수 있다. 두 데이터에서 일정 시간이 지난 뒤부터 데이터가 변할 때마다 새롭게 상관관계를 계산하는 것이다. 1. 최근 n일의 상관관계를 보고 싶은 경우 일반적으로 최근 n일의 상관관계가 시간이 흐름에 따라서 어떻게 변했는지를 보는 것이 유용할 것이다. 데이터가 길어질수록 새로운 데이터가 미치는 영향력이 점점 줄어들기 때문에, 최근의 변화를 반영하기 어렵다. 그리고 상관관계는 수치 자체보다 과거에 비해 증가했냐 감소했냐, 즉 추세가 더 중요하기 때문이다. 또, 데이터의 길이는 상황이나 목적에 따라 달라지기 때문에 n을 직접 설정하기보단, 데이터..
-
[파이썬] 업비트 인덱스 UBCI 크롤링하기기타/가상화폐 2021. 11. 23. 16:59
업비트는 UBCI를 통해 코인의 인덱스를 개발해서 정보를 제공하고 있다. 업비트가 관리할 의욕을 잃었는지 인덱스 최신화도 안 되는 것 같고, 투자에 의미있는 인덱스도 적다. 돈 버는 만큼 투자자 정보를 위해서도 노력해줬으면 좋겠다. 그래도 이걸 쓰고 싶다면 별다른 API가 없기 때문에 데이터를 얻기 위해서는 크롤링을 해야한다. 혹시 필요한 사람이 있을까봐 공유한다. import requests days = 30 # 최근 n일의 데이터 수집 idx = 'UBMI' # 인덱스명 url = 'https://crix-api-cdn.upbit.com/v1/crix/candles/days?code=IDX.UPBIT.' + idx + '&count=' + str(days) response = requests.get(..
-
[판다스] The truth value of a Series is ambiguous 에러 해결기타 2021. 9. 29. 10:36
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() 라는 에러가 뜰 때가 있다. 주로 판다스에서 데이터프레임의 비교연산을 할 때 일어나는데 and, or 대신에 &와 |를 쓰면 된다고 한다. 그런데 나의 경우 , == 연산에서도 이런 에러가 뜰 때가 있었다. 일반적인 파이썬 코딩처럼 비교연산을 하려 했기 때문인 것 같다. 예를 들어, for i in df.index: if df.loc[i]['data1'] > df.loc[i]['data2']: print('data1 > data2') 이런식으로 하면 에러가 뜬다. 그래서 판다스스럽게 비교연산을 해야한다. 1. 만약 주식 가격 데이터에서 종..
-
[파이썬] 리트코드 1991. Find the Middle Index in Array 풀이기타/알고리즘 2021. 9. 27. 16:23
https://leetcode.com/problems/find-the-middle-index-in-array/ Find the Middle Index in Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 724번 문제와 완전히 동일하다. 해설은 아래 참조 https://dndi117.tistory.com/entry/파이썬-리트코드-724-Find-Pivot-Index [파이썬] 리트코드 724. Find Pivot Index 풀이 https://le..
-
[파이썬] 리트코드 724. Find Pivot Index 풀이기타/알고리즘 2021. 9. 27. 16:19
https://leetcode.com/problems/find-pivot-index/submissions/ Find Pivot Index - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 숫자 리스트가 주어졌을 떄 어느 한 요소보다 왼쪽에 있는 숫자의 합과 오른쪽에 있는 숫자의 합이 동일해지는 요소의 인덱스를 찾아야 한다 Nums = [1,7,3,6,5,6] 이라면 인덱스가 3일 때 좌우의 합이 모두 11로 동일해지므로 3이 답이 되는 것이다 1. 왼쪽에서부터의..
-
[파이썬] 리트코드 119. Pascal's Triangle II 풀이기타/알고리즘 2021. 9. 23. 12:24
https://leetcode.com/problems/pascals-triangle-ii/ Pascal's Triangle II - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 정석적인 재귀함수 문제다 다만 리트코드의 경우 함수 형태로 제출해야하기 때문에 재귀를 이용할 때 self.을 붙여줘야 한다는 점이 중요하다 1. 각각의 행은 가장 앞과 뒤가 1로 구성되고 2. 그 사이에는 이전 행의 요소들을 두 개씩 순서대로 더한 값이 들어간다 3. 이 과정을 재귀함수..