Python
-
[파이썬/백테스트] 할로윈 투자 전략Python/파이썬과 주식 2021. 5. 25. 07:19
* 이 글은 저의 개인적인 정리물일 뿐입니다. * 투자 권유, 투자 참고의 목적이 아닙니다. 11월에 주식을 사서, 다음 해 4월에 매도하는 전략입니다. 계절성(시즈널리티, seasonality) 투자 전략이라고도 합니다. KOSPI 지수를 기준으로 백테스트 해보겠습니다. 단순 보유시 수익률 # 단순 보유 2000.11~2021.04 import FinanceDataReader as fdr kospi = fdr.DataReader('KS11', '2000') start_value = kospi.loc['2000-01'].iloc[0]['Open'] end_value = kospi.loc['2021-04'].iloc[-1]['Close'] total_earnings_rate = end_value / sta..
-
주피터 노트북에 PEP08(파이썬 코드 스타일 가이드) 적용Python/Jupyter Notebook 2021. 5. 25. 04:07
flake8, pycodestyle, pycodestyle_magic 설치 pip install flake8 pip install pycodestyle pip install pycodestyle_magic pycodestyle_magic 로딩 아래 코드로 pycodestyle_magic 을 로딩합니다. %load_ext pycodestyle_magic pycodestyle 사용 코드 작성 전 '%pycodestyle_on', '%flake8_on' 둘 중 하나를 실행합니다. %pycodestyle_on %flake8_on 끌 때는 '%pycodestyle_off' 또는 '%flake8_off' 입니다. 테스트 지적받은 것을 모두 수정했지만 W391 에러는 계속 남아 있습니다. (노트북의 구조적인 부분으로..
-
[PyQt5] 7. Qt DesignerPython/PyQt5 2021. 5. 20. 21:22
Qt Designer 의 설치 경로 Qt Designer는 pyqt5-tools 패키지를 설치한 뒤 다음 경로에서 찾을 수 있습니다. path_of_projects\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 바로가기를 프로젝트 폴더에 만들어 두는 게 편합니다. 객체 탐색기 객체 탐색기로 객체의 트리 구조를 보면서 작업합니다. 미리 보기 CTRL+R으로 미리 보기 하면서 작업합니다. .ui 파일 GUI를 만든 뒤 .ui 라는 확장자로 저장할 수 있고, 이 파일은 XML 형식의 텍스트 파일입니다. Form 0 0 400 300 Form 0 0 0 0 PushButton false https://github.com/pycrawling/pyqt5_..
-
[PyQt5] 6. WidgetsPython/PyQt5 2021. 5. 19. 16:46
Qt5에는 다음과 같이 다양한 위젯이 있습니다. 다행히 아이콘만 보더라도 대부분의 위젯이 어떤 용도로 사용되는지 알 수 있습니다. 비슷비슷한 위젯을 비슷비슷한 코드로 나열하는 것은 지루한 일입니다. 공식 문서와 구글링 및 Qt Designer 사용을 추천드리고, 여기서는 제가 자주 쓰는 위젯만 간단히 나열하겠습니다. QLabel: 텍스트, 리치 텍스트, 그림, 영상 등을 구현할 수 있음. QLineEdit: 원 라인 에디터, 패스워드 가능. QTextEdit: 멀티 라인 에디터, 리치 텍스트 지원. QGroupBox: 그룹 박스, 프레임과 제목을 지원하는 컨테이너. QCheckBox: 체크박스 QPushButton: 푸시 버튼 QRadioButton: 라디오 버튼 QListBox: 리스트 박스 QComb..
-
[PyQt5] 5. layoutPython/PyQt5 2021. 5. 19. 14:18
레이아웃은 위젯들을 담아두는 틀입니다. 레이아웃을 잘 이용하면 자동으로 줄 맞춤이 되고, 좌표를 하드 코딩할 필요가 없어 유연한 GUI를 만들 수 있기 때문에, 무척 편합니다. 하드 코딩은 데이터를 직접 코드 내에 넣어두는 것을 말합니다. 레이아웃을 사용하면 (좌표에 관련된) 숫자는 거의 사용하지 않습니다. 최상위 위젯을 QMainWindow에서 QWidget으로 바꿨습니다. 이유는 마지막에... QVBoxLayout QVBoxLayout이라는 클래스가 보입니다. V는 Vertical(세로)에서 나왔다는 걸 알 수 있죠. QVBoxLayout 클래스로 layout 인스턴스를 만들어서 layout 인스턴스에 위젯들을 하나씩 addWidget 해 주었습니다. addWidget으로 상위 위젯에 add해주기 때..
-
[PyQt5] 4. EventPython/PyQt5 2021. 5. 19. 12:36
signal, slot GUI에서 버튼이 클릭이 된다던지 등의 사건을 event라고 합니다. event가 발생하면 (버튼이 눌러지면) 그에 따른 일(창을 띄운다, 결과를 출력한다 등)을 해야겠죠? 그것을 처리하는 함수를 event handler라고 합니다. Qt에서는 event를 signal, event handler를 slot이라고 합니다. 이벤트 루프 PyQt에서는 exec_()로 이벤트 루프를 실행한다고 했습니다. 파이썬 2까지는 exec가 예약된 키워드였기 때문에 exec에 밑줄이 추가되었습니다. 파이썬 3부터는 exec가 예약된 키워드가 아닙니다. 그래서 exec(), exec_() 모두 가능합니다. 이벤트 루프란 다음과 유사합니다. def mouse_clicked(): print('마우스가 클..