반응형
1. 들어가며
- 앞에서는 for문의 기본 구조를 설명하였다.
- 이번에는 for문과 zip함수를 활용하여, 향후 사용할 종목코드, 수익/손실을 비교할 수 있는 코드를 구현한다.
* for문 기본구조 설명 : https://springcoming.tistory.com/12
2. zip 함수 설명
ㅇ 개념 : 순회 가능한 객체를 인자로 받고, 각 자료형의 각각의 요소를 나눈 후 리스트로 반환하는 함수
한마디로, 리스트로 반환한다고 보면 될 것 같다.
* list가 2개 이상일 때, for문과 zip 함수를 함께 쓴다
→ 이때 zip함수는 리스트의 항목에서 순차적으로 축출한다
※ (예시) 각 국가-수도-국민으로 연결된 경우, for문과 연결한 경우 ㅇ 주어진 자료 1) 한국 - 서울 - 한국인 2) 일본 - 도쿄 - 일본인 3) 중국 - 베이징 - 중국인 4) 미국 - 워싱턴 - 미국인 ㅇ 아래와 같이 리스트로 나타낼 수 있다. country_names = ["한국", "일본", "중국", "미국"] country_capitals = ["서울", "도쿄", "베이징", "워싱턴"] country_peoples = ["한국인", "일본인", "중국인", "미국인"] |
country_names = ["한국", "일본", "중국", "미국"]
country_capitals = ["서울", "도쿄", "베이징", "워싱턴"]
country_peoples = ["한국인", "일본인", "중국인", "미국인"]
for name, capital, peolpe in zip(country_names, country_capitals, country_peoples):
print("{}의 수도인 {}에는 {}이 살고 있다.".format(name, capital, peolpe))
(expected rusult)
# 한국의 수도인 서울에는 한국인이 살고 있다.
# 일본의 수도인 도쿄에는 일본인이 살고 있다.
# 중국의 수도인 베이징에는 중국인이 살고 있다.
# 미국의 수도인 워싱턴에는 미국인이 살고 있다.
3. zip함수의 기본 적용
이름, 나이, 키 등이 들어있는 리스트의 모음을 zip을 활용하여 출력한다.
names = ["a", "b", "c", "d"]
ages = [11,22,33]
talls = [150,160,170]
def f():
for name, age, tall in zip(names, ages, talls):
result1 = name + "-" + str(age) + "-" + str(tall)
print(result1)
f()
(expected result)
a-11-150
b-22-160
c-33-170
4. zip 함수 활용
zip 함수는 향후 주식패턴 파악을 통해 매수/매도 시점을 파악할 수 있다.
이는 주식 자동매매의 알고리즘 개발을 위한 초기단계에서 역할을 할 수 있다는 것이다.
예를 들어, 어떤 종목의 특정 패턴(aaa 혹은 bbb)에서 매수를 하려고 한다면,
파이썬의 자동매매 프로그램이 특정패턴에서 매수(진입)을 하고,
익절가격 혹은 손절가격을 설정할 수 있다.
import pandas as pd
patterns = ["aaa", "bbb", "ccc", "ddd"]
profits = [111,222,333, 444]
losses = [50,60,70, 80]
def f():
stocks_pl = {'patterns': [], 'profits': [], 'losses': [],}
for pattern, profit, loss in zip(patterns, profits, losses):
stocks_pl['patterns'].append(pattern)
stocks_pl['profits'].append(profit)
stocks_pl['losses'].append(loss)
df_stocks_pl = pd.DataFrame(stocks_pl, columns=['patterns', 'profits', 'losses'])
print(df_stocks_pl)
f()
(expected result)
patterns profits losses
0 aaa 111 50
1 bbb 222 60
2 ccc 333 70
3 ddd 444 80
5. 마무리
zip함수는 리스트를 묶어서 for문을 돌려주는 장점이 있다.
향후 패턴찾은 후 매수/매도, 특정 종목의 1분봉 받기 등에 쓰일 수 있을거 같다.
반응형
'1. 국내주식 > 1-1. 국내주식 연구일지' 카테고리의 다른 글
(파이썬) 주식 자동 매매를 위한 알고리즘 패턴 찾기 (1) 엑셀 이용 (2) | 2022.10.02 |
---|---|
(파이썬) pandas와 os모듈을 활용하여 데이터를 엑셀로 보내기 (2) | 2022.09.30 |
(주식 자동매매) 키움증권 영웅문4에서 1분봉 엑셀로 받는 방법 (0) | 2022.09.29 |
(파이썬) threading와 time 모듈로 특정 시간마다 반복 실행 (0) | 2022.09.24 |
(파이썬) for문 활용 (1) - 기본 설명 (2) | 2022.09.16 |
(파이썬) 주식 자동매매를 위한 사전준비 (필요 모듈) (0) | 2022.09.15 |
(파이썬) 주식 multiprocessing.Process 적용하여 다중 병렬 처리하기 (0) | 2022.09.14 |
(잡담) 국내주식 시스템 만드는 현황 ('22.5.29 현재) (0) | 2022.05.29 |