본문 바로가기
반응형

Python48

반응형
참조 그림 파이썬을 이용한 가상 화폐 매매 전략 - Stochastic RSI & EMA 파이썬을 이용하여 시세 분석 보조 지표인 Stochastic RSI와 EMA를 계산하고 이를 통해 가상 화폐 거래에 적용했을 때에 얼마큼의 수익이 있을지 backtesting을 통해 알아보겠다. 먼저 Stochastic RSI에 대해 간단히 알아보고 EMA를 결합한 거래 전략에 대해 얘기해 보겠다. [Stochastic RSI] Stochastic RSI는 시장이 과매수 혹은 과매도 되었는지를 판단하는 기술적 분석 지표이다. 이름에서 알 수 있듯이 RSI(Relative Strength Index)에서 파생되었다. Stochastic RSI의 공식은 아래와 같으며 가장 일반적으로 설정하는 시간은 RSI와 마찬가지로 14 주기로 설정한다. 기간은 상향 또는 하향 조정할 수 있으며 이를 통해 장기 또는 단기.. 2021. 12. 5. 11:31
QT Designer로 작성한 Python 프로그램 실행 파일 생성 시 에러 해결 올 초에 QT Designer와 파이썬으로 만든 프로그램을 Pyinstaller를 이용하여 실행 파일을 만들려고 했으나 아래와 같은 크게 두 가지의 에러가 발생하였다. 현재는 며칠간의 노력 끝에 에러를 해결하고 무사히 실행 파일을 만들었고 다음에 또 이런 에러가 발생했을 때 찾아보기 위하여 까먹기 전에 기록해 두려고 한다. 혹시 이와 비슷한 유형의 에러로 고생하고 있는 사람이 있다면 참고하면 좋을 것 같다. 에러(1) [Exception: Cannot find existing PyQt5 plugin directories. Paths checked: C:/Users/·¹º§¿¡ ¸Â/AppData/Roaming/Python/Python39/Site-packages/PyQt5/Qt/plugins] 첫 번째는.. 2021. 11. 30. 20:22
참조 그림 파이썬을 이용한 간단한 Zip 파일 암호 풀기 얼마 전 회사 PC에 10년 전 Zip으로 압축해놓은 파일을 열일이 생겼는데 압축 비밀번호가 생각나지 않아 결국 파일을 열지 못했다. 그래서 파이썬을 이용해서 Zip 파일 압축 비밀번호를 알아내는 프로그램을 만들어봐야겠다는 생각을 했다. 먼저 인터넷에서 찾아보니 Zip 파일 압축 비밀번호를 알아내는 방법으로 가장 많이 나와있는 것이 Brute Force란 방법이었다. 말 그대로 비밀번호가 일치할 때까지 계속 대입해보는 방식이며 대부분은 비밀번호로 사용될 단어들이 모여있는 파일을 참조하여 하나씩 대입해 보는 방식이었다. 그러나 이 방식은 파일에 실제 비밀번호가 없다면 열수 없는 방식이다. 그래서 여기서는 간단하게나마 알파벳과 숫자의 조합을 랜덤 하게 만들면서 대입해보는 방식으로 만들어 보았다. 프로그램은 .. 2021. 11. 21. 12:58
참조 그림 파이썬을 이용하여 상승 가능성 있는 가상 화폐 알림 기능 구현 이번에는 파이썬 코드를 이용하여 upbit 거래소에 있는 전 가상 화폐 중 앞으로 상승이 예상되는 가상 화폐를 찾아 핸드폰으로 문자를 보내주는 기능에 대해 알아보겠다. 이전 포스트에서 가상 화폐를 자동 매매하는 코드에 대해 알아봤는데 일정 기간 자동매매 코드를 돌려본 결과 수익을 낼 수 없었다. 그 이유는 여러 가지 있으나 그 중 한 가지는 PC에서 실행되고 있는 프로그램의 결과로 매수나 매도를 하려는 시점과 실제 거래소에서의 시점을 정확히 일치시키지 못하기 때문에 잘못된 매수와 매도를 하게 되고 이는 앞으로도 어떻게 고쳐볼 수 없을 것 같다. 그래서 결국 직접 보고 수동으로 매수와 매도를 해야한다는 생각을 했고 그러기 위해서는 일단 상승할 기미가 보이는 가상 화폐를 알아낼 필요가 있어서 이 프로그램을 .. 2021. 11. 6. 17:18
참조 그림 파이썬 이용 월 별 주식 투자 수익률 분석 파이썬을 이용하여 특정 주식의 월 별 평균 수익률을 계산하는 코드에 대해 알아보고 몇몇 기업의 데이터를 넣어 그 결과를 확인해 보겠다. 파이썬 코드의 구조는 먼저 확인하고자 하는 주식 데이터를 불러온 후 각 월 별 수익률을 저장할 공간을 만든다. 그런 다음 불러온 주식 데이터에서 일일 수익률을 구하고 이를 월 별로 평균을 내는 구조이다. 파이썬 코드는 Youtube의 “Computer Science”를 참고하였다. [주식 데이터 불러오기] 다른 포스트에서 설명한 것과 동일한 내용이지만 한번 더 설명하도록 하겠다. 주식 데이터를 불러오기 전에 다음과 같은 라이브러리를 불러온다. ! pip install finance-datareader import numpy as np import pandas as pd .. 2021. 10. 2. 17:12
참조 그림 파이썬을 이용한 가상 화폐 매매 전략 - Heikin Ashi 차트 여기서는 Heikin Ashi 차트에 대해 알아보고 이를 가상화폐 매매 전략으로 했을 때 얼마큼 이익이 되는지 backtesting을 해보도록 하겠다. Heikin Ashi 차트는 일본말로 “평균 막대”란 의미이다. 기존의 캔들 차트는 많은 노이즈를 가지고 있어서 추세를 파악하기 힘들 수 있다. Heikin Ashi 차트는 캔들 차트 값들의 평균을 통해 새로운 차트로 바꾸어 주고 이 차트는 좀 더 쉽게 추세를 파악할 수 있게 해 준다. 위의 두 그림은 비트코인(BTC)의 일반 캔들 차트와 Heikin Ashi로 변환된 차트를 나타낸 것이다. 일반 캔들 차트에 비해 상승 구간과 하락 구간이 좀더 명확해진 것을 볼 수 있다. 이제 파이썬을 이용하여 일반 캔들 차트에서 Heikin Ashi 차트로 바꾸는 코드.. 2021. 9. 19. 14:37
참조 그림 파이썬을 이용한 가상 화폐 매매 전략 - Bollinger Band Bollinger Band를 만드는 파이썬 코드를 알아보고 Bollinger Band로 가상 화폐 매매를 했을 때 수익을 낼 수 있는지 알아본다. 먼저 Bollinger Band란 무엇이고 어떻게 매매에 이용할 수 있는지 알아본다. [볼린저 밴드(Bollinger Band)] 볼린저 밴드는 주가와 함께 표시되고 상한선과 중심선, 하한선으로 이루어진다. 주가의 이동평균선인 중심선을 기준으로 상한선과 하한선의 폭이 주가의 추세에 따라 변동하는 특징이 있다. 그래서 볼린저 밴드는 주가의 변동성을 나타내는 보조지표이기도 하다. [볼린저 밴드를 이용한 매매전략] 볼린저 밴드는 주가는 상한선과 하한선 이내에 움직이는 확률이 95%가 넘는다는 것을 전제로 한다. 그렇게 때문에 하한선을 벗어나면 밴드 안쪽으로 올라오려.. 2021. 9. 4. 20:11
참조 그림 SMA와 MACD 이용 Python 가상화폐 자동매매(2/2)-backtesting 지난번에 알아본 자동매매 프로그램을 backtesting 하는 방법과 그 결과에 대한 분석을 해보겠다. 먼저 backtesting 코드를 알아본 후 dp이다(ADA)와 이더리움클래식(ETC)에 대해 자동매매 프로그램의 누적 수익률을 알아보겠다. 또한, 10분봉과 15 분봉 간의 수익률 차이와 지난번 알아본 프로그램의 몇 가지 조건을 바꿨을 때에 수익률이 어떻게 바뀌는지도 알아보겠다. [Backtesting 코드 분석] Backtesting은 프로그램을 오프라인 상태에서 지난 데이터를 통해 테스트를 해보는 것이다. Backtesting 코드의 구조는 자동매매 프로그램 구조와 거의 동일하다. import pyupbit import numpy as np import pandas as pd coin = inpu.. 2021. 9. 1. 22:28
참조 그림 파이썬 이용 주식 분석 - 저평가 & 고평가 분석 파이썬을 이용하여 주식 현재 가격이 저평가되어있는지 아니면 고평가 되어있는지 분석하는 방법에 대해 알아보겠다. 분석방법의 기본적인 원리는 다음과 같다. 분석에는 현재의 주가와 PER 그리고 EPS를 이용한다. 먼저 PER(Price Earning Ratio)은 주가 수익비율이라 하고 기업의 주가가 1주당 수익의 몇 배인지를 나타낸다. 그리고 EPS(Earning Per Share)는 주당 순이익이며 1주당 이익을 얼마나 창출했는지를 나타낸다. PER은 1주당 주가를 EPS로 나누어서 계산한다. 다시 얘기하면 PER에 EPS를 곱하면 주가가 된다. 여기서 PER은 동종 업계 평균 PER을 구하여 이를 EPS에 곱함으로써 적정 주가가 어느 정도 인지 구하고 현재의 주가와 비교하여 높은지 아니면 낮은 지를 분.. 2021. 8. 29. 16:23
참조 그림 SMA와 MACD 이용 Python 가상화폐 자동매매(1/2) 이번에는 Python을 이용한 가상화폐의 자동매매에 대해 알아본다. 최근 2개월간 자동매매 프로그램을 짜고 실제로 투자를 해보았으며 이를 통해 알게 된 것들을 포함하여 정리해보고자 한다. 처음 자동매매 프로그램을 시작하게된 계기는 밤늦게까지 코인 시장을 보고 있는 게 너무 힘들어서 밤사이 자동매매를 걸어놓고 편히 잠을 자려고 시작했는데, 어처구니없게도 자동매매를 걸어놓은 뒤부터 더 잠을 못 자고 있다. 자동매매 프로그램에 대해 현재까지의 결론부터 간략히 얘기하자면 수익을 낼 수 없었다. 그러나 아직 진행 중이고 계속 매매 알고리즘을 바꿔가면서 시도해보고 있다. 벌써 프로그램 버전만 0 부터 26까지 올라올 만큼 다양한 시도를 하고 있는데 이렇다 할 수익을 볼 수는 없었다. 여기서 그동안의 자동매매 프로그.. 2021. 8. 15. 11:46
참조 그림 파이썬 주식, 가상 화폐 분석 - Death & Golden Cross 파이썬으로 Death Cross와 Golden Cross를 구현하여 주식이나 가상 화폐의 흐름이 상승할 것인지 하락할 것인지 예측하는 방법에 대해 알아보겠다. 먼저 간단히 Death Cross와 Golden Cross의 정의에 대해 알아보겠다. Death Cross는 단기 이동평균선이 장기 이동평균선 아래로 내려갈 때를 말하며 가격이 하락하는 표시로 활용된다. 반대로 Golden Cross는 단기 이동평균선이 장기 이동평균선 위로 올라갈 때를 말하며 가격이 상승할 것이라는 표시로 활용된다. 일반적으로 50일을 단기 이동평균선으로 하고 200일을 장기 이동평균선으로 한다. 다음은 본격적으로 파이썬 구현에 대해 알아보겠다. 파이썬 코드는 유튜브 채널 “Computer Science”를 참고하였다. 분석에 사.. 2021. 7. 16. 22:39
참조 그림 PROPHET 머신 러닝을 이용한 파이썬 로또 번호 생성 이번에 파이썬의 머신 러닝 중 PROPHET 알고리즘을 이용하여 로또 번호 6자리를 추출하는 프로그램에 대해 얘기해 보겠다. 내 블로그에는 아래처럼 이전에 파이썬 머신 러닝을 이용하여 다음번 로또 번호 6자리의 총합을 예측하고 예측된 합을 만족하는 6자리의 번호는 과거 가장 많이 나왔던 번호 순데로 조합을 하거나 가장 적게 나온 순데로 조합을 하는 방식에 대해 공부한 내용을 소개했었다. Python Machine Learning을 이용한 Lotto 번호 생성 프로그램 - (1) 이번에 파이썬을 이용하여 Lotto 번호 6자리를 뽑아내는 프로그램을 만들어 보았다. 많은 사람들이 Lotto 번호를 만드는 프로그램을 만들었으며 대부분은 random() 함수를 이용하여 난수를 생성한다. superhky.tist.. 2021. 6. 6. 15:00