일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Machine Learning
- Query_Index_Price_Kline
- Python
- Public_Trading_Records
- 프리미엄지수
- 자동매매
- Bybit
- 코인
- xgboost
- 파아썬
- 롱숏비율
- bitcoin
- 변동성돌파
- open_interest
- myposition
- 모멘텀지표
- place_active_order
- 머신러닝
- 바이비트
- kline
- orderbook
- 파이썬
- API
- 비트코인
- latest_big_deal
- 백테스팅
- 데이터불러오기
- Query_Premium_Index_Kline
- Query_Kline
- 호가창
- Today
- Total
목록전체 글 (31)
돈벌고싶다
설명 저번 글에서 우리는 비트코인과 유사한 종목, 비트코인과 유사하지 않은 종목에 대해 상관관계 계산을 통해 리스트를 생성하였습니다. 해당 내용을 이어서 비트코인과 유사하지 않은 종목들, 즉 안티 비트코인 테마주에 대해 양적 분석을 할 수 있는 데이터를 생성해보겠습니다. 코드 1. 라이브러리 import yfinance as yf import pandas as pd import numpy as np import datetime import time import ccxt from sklearn.preprocessing import StandardScaler 2. 이전 포스팅 내용 진행 data_path = './data/' binance = ccxt.binance() bitcoin = get_binance..

설명 저번 글에 이어, 시세 데이터를 활용하여 비트코인과 코스피, 비트코인과 나스닥 상관관계를 분석하겠습니다. 코드 1. 라이브러리 호출 import yfinance as yf import pandas as pd import numpy as np import datetime import time import ccxt from sklearn.preprocessing import StandardScaler 2. 함수 정의 def get_binance_data(symbol, interval, end_date): btc_ohlcv = binance.fetch_ohlcv(symbol, interval, limit=1000, params={'endTime':end_date}) df = pd.DataFrame(btc..
시작 해당 글은 다음 사람들에게 유용합니다. 코인 종목에 대해 기술적 분석을 하는 투자자 나만의 주식 포트폴리오 생성을 원하는 투자자 1번, 저는 비트코인에 대해 기술적 분석을 통해 알고리즘을 짜고 있습니다. 따라서 주식 포트폴리오를 생성한다면, 코인과는 시세 흐름이 상이한 종목을 찾는 것이 안정성 측면에서 뛰어납니다. 2번, 구글링을 하면 종목 선정은 예시로 해버리고 백테스팅을 통한 안정성 및 수익성에 대한 분석만을 진행하더군요. 저는 데이터를 통한 근거 있는 종목 선정을 하고 싶었습니다. 개인 취향에 따라 코드를 변경해가며 나만의 주식 포트폴리오를 생성하는 것에 도움이 될 듯 합니다. 저는 슬슬 포트폴리오를 구성할 단계가 오고 있습니다. 시스템 트레이딩을 하기 위한 알고리즘은 안정화되었으나, 코인 시..

결론 결론부터 말하자면, 난 해당 코드를 이용한 전략을 사용하고 있지 않다. 하지만 코인들간의 상관관계를 분석하고 싶은 사람이 있다면, 코드를 유용하게 사용할 수 있을 듯 하여 정리한 부분을 공유한다. 해당 전략을 사용하지 않는 이유는 다음과 같다. pair trading을 진행할 두 종목에 대해 공적분 계수를 구할 경우 항상 오차율이 존재할 수 밖에 없으며, 이로 인한 슬리피지가 생각보다 크다. 따라서 long / short 각각에 대해 동일한 자산 분배가 쉽지 않다. bybit 에서 거래되는 각 코인들은 거래 수량(qty) 단위가 모두 다르다. 비트코인의 경우 소수점 3자리 까지만을 허용하나, 특정 알트코인은 소수점을 허용하지 않는 등 코인마다 다르다. 문제는 허용되는 소수점 자리수 이상을 거래하려 ..
레버리지와 관련하여 아주 큰 오류를 하나 범하고 있었다. 바이비트에서 레버리지를 줄 경우, 진입 수량인 qty 역시 레버리지 만큼 곱해야 한다. 이유는 바이비트에서 진입 수량은 레버리지에 영향을 받기 때문이다. 매수 주문을 하는 API인 place active order을 이용하여 "0.1 비트코인으로 레버리지 3배 long에 걸어줘~"라는 명령을 하면 0.1 비트코인을 long에 3배 레버리지로 배팅하는 것이 아니라, 0.1 비트코인이 이미 레버리지 3배가 적용된 수량으로 인지하고 0.033 비트코인에 대해 롱 배팅을 해버린다. 즉, 0.1 비트코인만큼 3배 레버리지로 롱 포지션을 잡고, 내 계좌에 1 비트코인이 있었다면 0.9가 아닌 0.967만큼의 잔액이 남은 것이다. 기존에 블로그에 올린 코드들 ..
설명 여기서 투자 금액 자동화란 연산을 통해 포트폴리오를 생성하여 최적의 투자 금액을 찾아가는 것이 아닌, 바이비트 api에서 내가 포지션을 잡을 수 있는 코인 수량 크기를 계산하고 진입에 적용하는 것을 뜻한다. 코드 1. 라이브러리 호출 import pandas as pd import numpy as np import datetime import calendar import schedule import math import time import math from pybit import usdt_perpetual 2. 필요 함수 호출 def get_session(net='test'): if net == 'test': session = usdt_perpetual.HTTP( endpoint="https://..
설명 나는 아주 단순한 전략을 구현하는 것까지 오는데 오랜 시간이 걸려 왔다. API를 이용하는 것이 쉽고 간편하면서도 어려운 듯 하다. 이 글을 읽는 사람은 내가 겪었던 시행착오들을 한방에 해결할 수 있었으면 하는 마음에 코드를 공유한다. 해당 코드는 다음 조건을 만족하는 전략을 구현할 때 유용하게 사용할 수 있을 것이다. 한 시간 단위로 분할 매수 / 분할 매도 데이터를 통해 특정 조건을 만족할 경우 매수 / 매도 long / short 모두 가능하며 레버리지 / stop loss 기능까지 구현 코드 1. 라이브러리 호출 import pandas as pd import numpy as np import datetime import calendar import schedule import math im..

설명 우리는 백테스팅에는 문제가 존재한다는 것을 알지만 그럼에도 수많은 백테스팅을 한다. 어찌되었던 간에 유용한 것은 맞기 때문이다. 오늘은 백테스팅을 진행하며 내가 그동안 중요하다고 생각했던 부분에 대해 말할까 한다. 당연한 내용이기에, 다른 블로그 글과 크게 특별한 내용은 없지만, 백테스팅에 대한 코드 정도는 유용할지도 모른다. 코드 1. 라이브러리 import numpy as np import pandas as pd import schedule import time import datetime import calendar import math import ccxt import matplotlib.pyplot as plt 2. 함수 호출 def get_binance_data(symbol, interv..