본문 바로가기

반응형

PYTHON

[Toy Project] 자동매매 프로그램 만들기 - 5. RSI 지표 이용하여 매매하기 [목차] 1. 여러 암호화폐 RSI값 받아오기 2. RSI 지표 이용하여 매매 기능과 연동 1. 여러 암호화폐 RSI값 받아오기 이전 글에서 특정 암호화폐의 RSI값을 계산하는 방법을 알아보았다. RSI값을 계산하기 위해서는 pyupbit 모듈의 get_ohlcv 함수를 이용하여 해당 암호화폐의 이전 데이터들을 불러와야 한다. 하지만 get_ohlcv 함수로는 여러 암호화폐에 대한 데이터를 한 번에 받아올 수 없어서, 여러 암호화폐 RSI값을 계산하기 위해서는 각 암호화폐별로 get_ohlcv 함수를 각각 호출해야 한다. 따라서, 원하는 암호화폐 ticker를 리스트에 모아놓고, 차례대로 RSI를 계산하기로 했다. (더 나은 방법이 있는지는 잘 모르겠다) coinlist = ["KRW-BTC", "KRW..
[Python] 7. 모듈(Module) [목차] 1. 모듈이란? 2. 모듈 만들기 & 불러오기 3. if __name__ == "__main__" 1. 모듈(Module)이란? 모듈(Module)이란, 함수나 변수 또는 클래스를 모아놓은 파이썬 파일이다. 이미 파이썬에서 아주 많은 표준 라이브러리 모듈을 제공하고 있고, 사용자가 직접 모듈을 만들어서 이용할 수도 있다. 여러 파일에서 동일한 클래스나 함수 등이 이용되는 경우에, 공통되는 부분을 따로 빼내어 하나의 파일로 만들어두면 매번 새로 정의할 필요 없이 가져오기만 하면 되므로 코드도 짧아지고 훨씬 편리하다. 2. 모듈 만들기 & 불러오기 이제 모듈을 어떻게 만들고 불러오는지를 알아보자. # file name : calculate.py def add(a, b): return a+b def ..
[Python] 6. 클래스 (2) - 클래스 심화 (상속, 메서드 오버라이딩, 추상) [목차] 1. 클래스 상속(Inheritance) 2. 메서드 오버라이딩(Method Overriding) 3. 추상 클래스(Abstract Class) 1. 클래스 상속(Inheritance) 1. 클래스 상속 기본 무언가를 물려받는다는 '상속'의 의미에 맞게, 클래스 상속은 어떤 클래스의 기능을 그대로 물려받으면서 다른 기능을 더 추가할 수 있는 기능을 말한다. 보통 상속을 해주는 클래스를 기반 클래스(base class) 또는 부모 클래스(parent class)라고 하고, 상속을 받는 클래스를 파생 클래스(derived class) 또는 자식 클래스(child class)라고 한다. 상속 기능이 유용한 경우는 새로운 기능이 필요할 때마다 계속해서 클래스를 새로 만드는 비효율적인 일을 방지하기 위함..
[Python] 5. 함수 (1) - 함수의 구조 [목차] 1. 함수(Function)란? 2. 함수(Function)의 형태 1. 함수(Function)란? 코드를 작성하다보면 들어가는 값만 달라질 뿐 같은 작업을 여러번 반복해야할 때가 있다. 그런 코드를 반복해서 작성하면 매우 비효율적이다. 이런 경우에 임의의 값에 대해서 동일하게 작동하는 틀을 미리 만들어놓고, 필요할 때마다 값을 넣어서 결과값을 구할 수 있도록 하는 기능을 '함수'라고 한다. 어떠한 타입의 값이 들어오더라도 항상 동일하게 입/출력을 수행해주는 작업을 하는 print, input 등도 모두 파이썬에서 미리 만들어진 함수이다. 1. 함수의 장점 코드의 용도를 구분할 수 있다. 코드를 여러번 재사용할 수 있다. 코드의 길이가 짧아진다. 오류 발생 위치를 빠르게 찾을 수 있다. 2. 함..
[Python] 4. 조건문 & 반복문 (if, for, while) [목차] 1. 조건문 (if - elif - else) 2. 반복문 (for) 3. 반복문 (while) 1. 조건문 (if - elif - else) 조건문은 특정 조건을 만족할 때만 코드를 수행하는 문법이다. 간단한 예시로 성적 부여를 생각해보자. A는 90점 이상, B는 80점 이상, C는 70점 이상, F는 70점 미만이라고 하자. 어떤 학생의 점수를 받았을 때 성적을 매겨주는 코드를 작성한다면, 이 점수가 90점 이상이면 A를 주고 그렇지 않으면 A는 줄 수 없다. 80점 이상 ~ 90점 미만이면 B를 준다. 따라서 점수가 특정 조건을 만족하는지 하지 않는지에 따라서 해당 성적의 부여 여부가 달라지게 된다. 이런 과정을 수행하는 구문을 조건문이라고 하며, 파이썬에서는 if와 elif, else로..
[Python] 3. 입출력 (Input / Output) [목차] 1. input 함수로 입력받기 2. 여러 값 한 번에 입력받기 (split, map) 3. 다양한 경우의 입력받기 4. print 함수로 출력하기 1. input 함수로 입력받기 파이썬은 기본적으로 input()함수를 이용해서 사용자의 입력을 받는다. input은 입력되는 모든 것을 문자열로 취급한다. 변수에 값을 입력받을 때에는 a = input() 와 같은 형태로 이용한다. a = input() # 1234ab 입력 print(a) # ans : "1234ab" a = input() # 123 입력 print(a) # ans : "123" a = input() # 1 2 3 입력 print(a) # ans : "1 2 3" 사용자 입력을 받을 때 메시지를 띄워줄 수도 있다. 예를 들어서 번..
[Python] 2. 파이썬의 기본 자료형(4) - 딕셔너리(Dictionary) & 집합(Set) [목차] 1. 딕셔너리(Dictionary) 만들기 2. 딕셔너리 사용하기 3. 집합(Set) 만들기 4. 집합 사용하기 1. 딕셔너리(Dictionary) 만들기 먼저 딕셔너리(Dictionary)란 각각의 키(key) 값마다 하나의 값이 대응된 쌍들을 모아놓은 자료형이다. 의미 그대로 사전에서 어떤 단어의 뜻을 찾기 위해서 해당 단어만 찾으면 되듯이 특정 값을 찾기 위해서는 대응된 key값으로 바로 찾을 수 있다는 장점이 있다. 리스트는 대괄호, 튜플은 소괄호를 이용했다면 딕셔너리는 중괄호 '{ }' 를 이용해서 생성한다. 다음은 기본적인 딕셔너리의 형태이다. {key1: value1, key2: value2, key3: value3 ...} 이처럼 key값과 value값을 콜론(:)으로 묶어서 저장..
[Python] 2. 파이썬의 기본 자료형(2) - 문자열(String) 파이썬에서 문자열을 다루는 방법은 정말 다양하다. 특히 C/C++을 먼저 학습한 사람이라면 더 쉽고 다양한 방식이 많다는 것을 체감할 것이다. [목차] 1. 문자열 만들기 2. 문자열 연산하기 3. 문자열 인덱싱 4. 문자열 슬라이싱 5. 문자열 포매팅 6. 문자열 관련 함수 1. 문자열 만들기 문자열은 ' ' (작은따옴표), " " (큰따옴표), ''' ''' (작은따옴표 3개), """ """ (큰따옴표 3개) 이들을 이용하여 하나의 문자열로 묶을 수 있다. 이렇게 다양한 방법을 제공하는 이유는, 문자열 내에 따옴표가 포함될 수도 있기 때문이다. 예를 들어서 I'm Python을 만들고 싶다면, 문자열 안에 작은따옴표가 있기 때문에 해당 문자열을 작은따옴표로 묶게 되면, 'I'm Python'이 되어..