Coding Is My Life

코딩은 인생

728x90

파이썬 12

[ML/AI][Bitcoin Trend Prediction with ML/머신러닝 활용한 비트코인 추세예측]

서론 기존의 주가예측은 가격 데이터 및 거시경제 데이터를 기반으로 다음날의 종가를 RNN, LSTM 같은 순환 신경망 모델로 예측하였다. 여러 논문의 예측 결과 그래프를 보면 거짓말같이 실제 주가와 거의 비슷하게 예측되는 결과물이 많이 있다. 하지만 자세히 보면 예측한 그래프가 원래 그래프 보다 1일 앞에 있는것과 비슷하다는 것을 알 수 있다. 이러한 이유는 모델이 학습을 할때 loss값이 현재 값- 전날 값이 가장 최적의 loss값이라고 판단했기 때문에 이러한 결과가 나오는 것이다. 그리고 다음날의 종가는 거의 랜덤한 값의 가깝기 때문에 정확하게 예측하는 것은 한계가 있다. 이러한 한계가 있기 때문에 주가 추세 예측에 대한 연구를 하게 되었다. 예측 모델로는 classification 모델인 Linea..

[파이썬][보조지표 envelope로 업비트 코인 분석]

Envelope란? n일의 이동평균선에 +m%,-m%를 뜻한다. 분석내용 envelope선을 기준으로 envelope 하향선을 돌파시 매수, 매수를 할시에는 3분할로 분할 매수를 하였다. 손절은 평단가의 5%로 잡고 손절하였고 익절은 envelope 상향선 돌파 또는 평단가의 5%에 도달시 익절을 하였다. 분석에 사용된 차트는 업비트 모든 종목을 대상으로 하였고 1시간 차트를 사용하였다. 기간은 1000시간으로 대략 41일동안에 트레이딩을 백테스팅하였다. 분석 결과 아래 보이는 결과가 수익률이다. 보다시피 손해를 본 코인이 단 하나도 없었다. 하지만 근 한달간은 코인시장이 상승장이라는 것을 감안하면 어느정도 이해가 된다. 그래도 모든 종목이 수익을 본 것은 그래도 나쁘지 않은 전략이라고 생각한다. 이 매..

파이썬 2021.10.13

[파이썬][보조지표 envelope를 이용한 코스피 200종목 분석]

Envelope란? n일의 이동평균선에 +m%,-m%를 뜻한다. 분석 내용 보통 20일 이동평균선을 사용하고 m은 트레이더의 성향에 따라 많이 다르나 가장 보편적으로 사용되는 10으로 두고 분석해보겠다. 하향 envelope선에 돌파 또는 지지할시 매수 하고 m%만큼 떨어지면 손절, m%만큼 상승하면 익절하도록 세팅해 두었다. 코드 !pip install yfinance import pandas as pd import matplotlib.pyplot as plt import bs4 import yfinance as yf from urllib.request import urlopen # url의 소스코드를 긁어오는 기능 필요한 라이브러리들을 불러와 줬다. # 종목코드 불러오기 stock_code = pd...

파이썬 2021.09.18

[파이썬][보조지표 MACD를 활용한 코스피 200 종목 분석]

MACD란? MACD 곡선 = 단기지수이동평균-장기지수이동평균 Signal 곡선 = n일의 MACD 지수이동평균 보통 단기지수이동평균는 12일 장기지수이동평균은 26일을 사용한다. 그리고 Signal곡선의 n은 9일을 일반적으로 사용한다. 분석 내용 이번 분석에서는 차트 분석에서 자주 언급이 되는 MACD에 대한 매매를 분석할 것이다. -MACD 곡선이 Signal 곡선을 상향 돌파시 : 매수 -MACD 곡선이 Signal 곡선을 하향 돌파시 : 매도 위 두 내용을 가지고 코스피 200 종목들을 크롤링해서 백테스팅해서 각 종목에 대한 수익률을 분석 할 것이다. 개발환경은 Google colab를 이용하였다 코드 # 사용할 라이브러리 !pip install yfinance import pandas as p..

파이썬 2021.09.18

[파이썬 기본 문법-3] sequence 객체 사용하기

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263# sequence types == 리스트,튜플,range,문자열처럼 연속적으로 이어진 자료형# 특정 값이 있는지 확인하기a = [0,10,20,30,40,50,60,70,80,90]print(30 in a) # Trueprint(30 not in a) # Falseprint('P' in 'Hello, Python') #True # 시퀸스 객체 연결하기a = [1,2,3,4,5]b = [6,7,8,9,10]print(a+b) # 두 리스트 연결 # 단, 시퀸스 자료형 중에서 range는 +연산자로 ..

[파이썬 기본 문법-2] 출력 함수 print

123456789# 개행print(1,2,3,sep = '\n') # 여러개의 값을 개행해서 표기 # \n : 개행, \t : 탭 만큼 여러칸을 띄운다. , \\ : \ 문자 자체를 출력할 때# end 사용하기print(1,end = '')print(2,end = '')print(3,end = '')# 123 개행이 자동으로 안된다. end는 print가 끝난뒤 다음에 오는 print함수에 영향을 미침, end의 default는 \n이므로 개행을 안할거면 ''공백으로 만들어야한다.cs

[머신러닝][교차검증, 파라미터 튜닝]

교차 검증 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # K폴드 교차 검증 # K개의 데이터 폴드 세트를 만들어서 K번만큼 각 폴드 세트에 학습과 검증을 반복적으로 수행하는 방법 # 쉽게 말해서 5개의 데이터(1,2,3,4,5)가 한세트라고 할때 K가 5이면 1 2 3 4 5로 데이터 세트를 5개로 나눈 다음에 1 2 3 4 학습 5 검증 -> 1 2 3 5 학습 4 검증 -> ... 이렇게 5번에 학습을 해서 나온 값들을 평균을 내는 것이 K폴드 교차 검증이다. # Stratified K 폴드 # 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K 폴드 방식이다. # 작은 비율로 레이블 값이 있다면 K 폴드로 랜덤하게 학습 및 테스트 세트의 인덱스를 고르더라..

[머신러닝][kaggle 실습- 보험 비용 예측하기]

데이터 수집 www.kaggle.com/mirichoi0218/insurance Medical Cost Personal Datasets Insurance Forecast by using Linear Regression www.kaggle.com import pandas as pd data = pd.read_csv('/content/drive/MyDrive/insurance.csv') data.head() 데이터를 불러온다. temp = [] smk = [] for i in range(len(data)): if data.iloc[i]['sex'] == 'female': temp.append(1) elif data.iloc[i]['sex'] == 'male': temp.append(0) if data.ilo..

[머신러닝][Deep learning을 이용한 XOR문제해결]

우리가 흔히 알고있는 XOR문제를 Deep learning으로 훈련시켜 보겠다. import numpy as np from keras.models import Sequential from keras.layers import Dense # 데이터 생성 x_XOR = np.array([[0,0],[0,1],[1,0],[1,1]]) y_XOR = np.array([0,1,1,0]) # 모델생성 model = Sequential() model.add(Dense(2,input_shape = (4,2),activation = 'relu')) model.add(Dense(6)) model.add(Dense(1,activation = 'sigmoid')) #출력층만 sigmoid 설정해줌 # 손실함수 최적화 함수 설정..

728x90