[EV3 파이썬 개발 환경 만들기]

예전엔 컴퓨터에 개발 환경 만들려면 정말 많은 시간을 투자해야 했고, 그래서 아무것도 모르는 사람은 시작도 못하고 포기하는 상황이 벌어진다. 진입장벽이 높았다. 그러나 요즘은^^

 

어쨋든 나는 EV3 파이썬 개발 환경을 만들어야 한다!.

아래의 링크를 참고!

https://education.lego.com/ko-kr/product-resources/mindstorms-ev3/teacher-resources/ev3%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8

 

마인드스톰 EV3 지원 | 필요한 모든 것 다 준비하세요. | LEGO® Education

MINDSTORMS EV3를 실습 수업 계획, 소프트웨어 다운로드, 교육 자료, 조립 지침 및 FAQ와 함께 여러분의 초등,중등수업환경으로 도입하세요.

education.lego.com

[간단히 요약하면]

  1. EV3 마이크로파이썬 이미지를 다운로드하고 마이크로 SD 카드에 플래싱합니다.
  2. 마이크로 SD 카드를 EV3 브릭의 SD 카드 슬롯에 넣고 전원을 켭니다.
  3. 컴퓨터에서 무료 Visual Studio Code 편집기를 다운로드하여 설치하고 시작합니다.
  4. 레고® 에듀케이션 EV3 확장 요소를 설치하고 활성화합니다.
  5. EV3 브릭을 컴퓨터에 연결하고 코드를 시작합니다

EV3브릭, Visual Studio Code, SD카드, EV3 마이크로파이썬 이미지가 필요한 걸 알 수 있다. 여기에 + USB WIFI 동글만 있으면 된다.

내가 사용한 USB WIFI 동글

집에 초소형 동글이 없어서 예전에 쓰던 USB WIFI 어뎁터를 사용했다. EV3브릭에서는 안되더니 ev3dev에서는 잘 동작했다. 위에 있는 'getting-started-with-micropython-v2 문서'에는 mini-cable로 되어있다. 뭐 그냥 하면 된다.

 

EV3는 LME, Classroom, Python 다양한 방법으로 제어 가능해서 자신의 수준에 맞게 선택하면 된다. 오래전에 나온 교구임에도 아직까지도 괜찮은거 같다. 열심히 하면 나도 로봇마스터^^??

 

 

 

 

반응형

'레고 > EV3' 카테고리의 다른 글

[EV3 기초] 물체 이동하기  (0) 2022.02.02
[EV3 기초] 탱크모드로 주행하기  (0) 2022.02.02
[EV3 기초] 조향모드로 곡선 주행하기  (0) 2022.02.01
[EV3 기초] 조향모드로 직선 주행하기  (0) 2022.02.01
EV3 시작  (0) 2021.11.29
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

#엘리스 #엘리스코딩 #인공지능 #데이터분석 #파이썬 #코딩 #온라인강의 #NIPA

https://2021nipa.elice.io/explore

 

2021 NIPA AI 온라인 교육 | 엘리스: 코딩, 엘리스에서 시작하세요!

실습중심 온라인 코딩교육, 엘리스! 개인 및 기업 디지털 트랜스포메이션(DT) 교육, 대학 데이터 사이언스 교육은 엘리스로 시작하세요.

2021nipa.elice.io

[엘리스] 2021 AI 온라인 실무 교육과정 수강 후기

2021 AI 온라인 실무 기본/응용 교육과정

지인을 통해서 AI 실무 교육과정을 듣고

자격증도 취즉할 수 있다는 정보를 얻었다.

 

내년에 AI 관련 교육을 해야하는데,

단순하게 체험수업은 하기 싫어서

기초를 튼튼하게 할 겸 시작했다.

AI 온라인 실무 기본 과정

AI 실무 기본과정
AI 실무 기본 과정

파이썬은 어느정도 알고 있어서 어렵지 않게

마무리를 했다.

 

수업 화면

인공지능에서 중요한 것중에 하나는 '데이터'다.

 

초보자도 파이썬을 이용하여 '데이터'를

다룰수 있도록 커리큘럼이 잘 구성되어 있다.

 

퀴즈를 통해서 배운 내용들을 리마인드할 수 있는 부분도 괜찮았다.

 

성취도 평가가 있긴 하지만,

졸지 않고 들었다면 어렵지 않게 패스 할 수 있다.

 

학습 진행률이 80%이상이면

AI 실무 응용 과정이 내 학습목록에 추가 된다.

 

AI 온라인 실무 기본/응용 교육과정

AI 실무 응용 과정
AI 실무 응용 과정

너무 쉽지도, 그렇다고 어렵지도 않아 AI 실무 응용

과정을 전부다 이수를 했다. 

 

시간에 쫒겨 자격증 시험을 보기 위한 최소로

이수해야 할 것만 해야 겠다고 생각했는데,

결국은 전부 이수를 하고 자격증 시험을 봤다.

 

이유는 커리큘럼대로 하니까 그렇게 됐다^^.

 

개인적으로

'[응용프로젝트] 산업 데이터를 활용한 인공지능 프로젝트' 부분이

제일 마음에 든다. 스스로 공부를 더 할 수 있도록 '챌린지'

부분을 이용하여 필요한 부분을 알려주는 것도

마음에 든다.

 

인공지능 전무가 자격시험을 봐야 하는데......

수업 내용이나 스타일 그리고 과정 평가에 실기가 있어서

조금은 어려울 수 있겠다는 생각이 들었다. 

 

조금 고민후에 자격시험을 봤다. 결과는 ~

인공지능 전문가 자격시험

아직 안나왔다. 2021/12/14 00:00에 공개 된다.

 

꽤 오래전에 현업에서 일하는 개발자들과 인공지능 스터디를 했다.

파이썬만 알았지, 다른 부분은 전혀 알지 못해서

고생했지만 그래도 열심히 했다. 

 

그래서 '[엘리스] 2021 AI 온라인 실무 교육과정'을 얘기해보면

1. 수강생 교육비 전액 지원으로 인공지능에 관심이

있다면 누구든지 할 수 있다. 텍스트 코딩에 관심이

있고 경험이 있다면, 적극 추천한다.

 

2. 이수증 발급을 통해 상당히 좋은 만족감을 준다.

 

3. 인공지능 전문가(Certified AI)  자격증 취득 지원을 해준다.

교육 내용도 좋지만, 한국에서는 자격증이^^

 

여튼 좋다^^.

 

개인적인 입장에서 시중에 파는 책으로 인공지능을 공부한다면,

'2021 AI 온라인 실무 기본/응용 교육과정'

을 적극 추천한다. 이유는 짧은 시간안에 인공지능 코딩에 대한 숲을

보여 주기 때문이다. 그리고 나서 시중에 나와 있는

인공지능 입문서를 본다면 분명 혼자서도 어렵지 않게

끝까지 볼 수 있을 거라 확신한다.

 

다른 일들이 겹치는 바람에 쫒기듯이 과정을 이수했지만,

내년 인공지능 수업을 준비해야하는 입장에서

'2021 AI 온라인 실무 기본/응용 교육과정'

은 너무나 좋았다.

 

 

https://2021nipa.elice.io/explore

 

2021 NIPA AI 온라인 교육 | 엘리스: 코딩, 엘리스에서 시작하세요!

실습중심 온라인 코딩교육, 엘리스! 개인 및 기업 디지털 트랜스포메이션(DT) 교육, 대학 데이터 사이언스 교육은 엘리스로 시작하세요.

2021nipa.elice.io

#엘리스 #엘리스코딩 #인공지능 #데이터분석 #파이썬 #코딩 #온라인강의 #NIPA

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

CHAPTER 8 변동성 돌파 전략과 자동매매

이번 장은 크레온 플러스 API를 사용하기 위하여 계좌를 개설하고 pywin32를 라이브러리를 이용하여 크레온 API에서 제공하는 COM 오브젝트를 사용하는 방법에 목적을 두고 진행했다. 개인적으로 etf는...... 관심이 없다.

 

파이썬 64bit 개발환경이라 COM 오브젝트를 이용하기 위해서 파이썬 32bit를 사용해야 한다. 예전에 파이썬 32bit 가상환경을 설정해 놨는데, 뭔가 잘못되어 idle도 vscode도 32bit를 사용할 수 없게 되었다. 거기에 powerShell에서 conda 명령어도 사용할 수 없다. 그래서 이것부터 해결했다.

 

anaconda를 이용하여 파이썬 32bit 설치하기

set CONDA_FORCE_32BIT=1
conda create -n py38_32 python=3.8 anaconda

간단하게 파이썬 32비트 설치 했다.

 

powerShell에서 conda 명령어 사용하기

conda init powershell
conda config --set auto_activate_base false

이렇게 하면 간단하게 해결! vscode에서도 편안하게 파이썬 32bit 인터프렌터로 설정만 하면 끝이다.

 

youtu.be/A1Zu4oHLtgk

8 변동성 돌파 전략과 자동매매 370 ~ 406p

 

8.1 래리 윌리엄스의 변동성 돌파 전략
8.1.1 변동성 돌파 전략

8.2 크레온 플러스 API
8.2.1 크레온 로그인 ....
8.2.2 크레온 플러스 자동 접속
8.2.3 크레온 시스템 접속 체크
8.2.4 크레온 데이터 조회
8.2.5 로그 메시지 출력

8.3 주가 및 계좌 정보 조회
8.3.1 현재가 조회
8.3.2 OHLC 조회
8.3.3 주식 잔고 조회
8.3.4 주문 가능 금액 조회

8.4 ETF 매수/매도
8.4.1 네이버 ETF 정보 스크레이핑
8.4.2 매수 목표가 계산
8.4.3 이동평균값 조회
8.4.4 주식 매매 주문 방식
8.4.5 최유리 FOK 매주 주문
8.4.6 최유리 IOC 매도 주문

8.5 메인 로직과 작업 스케줄러 등록
8.5.1 메인 로직과 시간대별 처리
8.5.2 작업 스케줄러 등록
8.5.3 전체 코드 및 실행 결과

8.6 핵심 요약

 

이전글 - 2021.03.24 - [책들] - [파이썬 증권 데이터 분석] 7 장고 웹 서버 구축 및 자동화 320 ~ 367p

 

[파이썬 증권 데이터 분석] 7 장고 웹 서버 구축 및 자동화 320 ~ 367p

7 장고 웹 서버 구축 및 자동화 패키지 업데이트로 사용방법이 조금씩 달라져서 이번 장은 따라만 하면 안된다. 예전에 플라스크로 웹페이지에 'Hello World'만 출력해 본 기억이 난다. 그래서 M

bonghanwith.tistory.com

- 마지막 -

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

.

6.4.2 볼린저 밴드를 이용한 반전 매매기법

주가가 반전하는 지점을 찾아내 매매하는 기법이다. 단편적일 수 있으나 동영상 뒷부분에 삼성전자 볼린저 밴드 반전 포인트들이 보이는데, 주린이라서 그 포인트들이 머리를 더 어지럽게 한다. 가치 투자를 기본으로 생각하는 입장에서는 음...... 어쨋든 포인트이므로 고민은 해야 겠다.

youtu.be/v6in8NmMnlI


6.5 심리투자 법칙

성공적인 매매를 위한 세 가지 요소(3M)는 정신(Mind), 기법(Method), 자금(Money)이다.

6.5.1 시장지표

시장의 흐름을 나타내는 추세 지표, 상대적인 위치를 나타내는 오실레이터, 이외의 기타지표들

6.5.2 단순 이동평균

최근 가격의 변동이 왜곡될 가능성이 있지만, 전반적인 가격흐름을 알 수 있다. 

6.5.3 지수 이동평균

최근 가격에 가중치를 부여해 최근 가격 변동을 잘 반영한다.

6.5.4 이동평균 수렴확산(MACD)

MACD선과 신호선의 교차점에서 매매 신호가 발생한다. 

6.5.5 MACD 히스토그램

기술적 분석가에게 최고의 도구!

6.5.6 스토캐스틱

지난 n일 동안의 거래 범위에서 현재 가격 위치를 백분율로 나타내고, 과매수 또는 과매도 상태를 알 수 있다.

 

6.6 삼중창 매매 시스템

서로 다른 시간 단위에서 신호를 비교함으로써 정확한 매매 시점을 파악하도록 개발된 시스템!

삼성전자를 보면 기술적인 지표로 보면 매수 신호가 뜬다.

6.6.1 첫 번째 창 - 시장 조류 
6.6.2 두 번째 창 - 시장 파도 
6.6.3 세 번째 창 - 진입 기술 
6.6.4 전체 소스 코드

youtu.be/KrB9SjlUTGo

6.7 듀얼 모멘텀 투자

6.7.1 모멘텀 현상
6.7.2 듀얼 모멘텀 투자

모든 자산 유형에 대해 모멘텀 투자 전략이 유효!

6.7.3 상대 모멘텀
6.7.4 절대 모멘텀
6.7.5 한국형 듀얼 모멘텀 전략 

 

투자 종목 선정은 중요하므로 모멘텀에 내용은 좀 더 공부해야 겠다. 책에 나온 단수 데이터 출력으로는 그닥 느낌이 없다. 챕터 6은 코드보다 내용이 중요하다. 다른 레퍼런스를 통해서 조금은 깊게 공부해야 할 부분이다. 

 

모멘텀에 대한 코드도 작성하고 확인했는데, 중간에 녹화 퍼즈 상태로 진행해서...... 

 

다음장은 장고와 자동화에 대한 내용이다. 오늘은 책만 읽고, 내일은 실습을 해보자!

 

이전글 - 2021.03.16 - [책들] - [파이썬 증권 데이터 분석] 6.4 볼린저 밴드 매매기법 275 ~ 281p

다음글 - 작성중

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

2021.02.26 - [책들] - [파이썬 증권 데이터 분석] 6.1.3 볼린저 밴드 지표 II : 밴드폭 ~ 275P

2021.02.26 - [책들] - [파이썬 증권 데이터 분석] 6.1.3 볼린저 밴드 지표 II : 밴드폭 ~ 275P

.

6.4 볼린저 밴드 매매기법

6.4.1 볼린저 밴드를 이용한 추세 추종 매매기법

볼린저 밴드에 MFI(현금흐름지표)를 이용하여 추세 추종 매매기법을 적용하면, 매매 신호를 확인할 수 있다. 장. 단기 투자에 따라서 매수 신호가 매도 신호가 될 수 있고, 그 반대도 될 수 있다. 즉 매매 신호가 있을 때 자신의 투자 성향에 맞게 선택을 해야 한다.

삼성전자 with 볼린저 밴드를 이용한 추세 추종 매매기법

코딩 동영상

이번 동영상은 기존 볼린저 밴드 코드에 추가하여 만들었다. 오타도 있고, 오타난 코드를  복붙해서 오타가 더 많아졌다. 좀 더 코드를 이해하고 코딩해야겠다. 그러면 책을 보고 키보드를 치는 시간보다, 화면을 보고 키보드를 치는 시간이 많아져서 오타가 줄어들 거 같다.

 

https://youtu.be/GMRMd8xF7z4

볼린저밴드 추종 주체 매매기법

 

 

 

이전글 - 2021.02.26 - [책들] - [파이썬 증권 데이터 분석] 6.1.3 볼린저 밴드 지표 II : 밴드폭 ~ 275P

다음글 - 작성중

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

주가가 20일 이동평균선을 기준으로 볼린저 밴드의 어느 위치에 있는지(%b)와
밴드폭(Band Width)에 대한 내용이다. 

 

어렵지 않게 내용을 보고, 코딩하여 결과를 그래프로 확인 하면
어렵지 않게 이해 했다.

 

'삼성전자'와 '삼성전자우' 그래프를 봤는데, 예전 지인에게
삼성전자의 주가가 꺽이기 전에 차익 실현과 이벤트가 없어 주가가
떨어진다고 얘기 했던 기억이 있다. 시기가 결과로 나타난 비슷했다 --.--

코딩하면서 코드를 조금 수정해야 할 부분이 생겼다. '삼성전자' 종목은 잇는데,
'삼성전자우'로 했을 때 문제가 생겼다. krx에서 받아온 데이터가 회사에 대한
종목코드만 있어, 주식 거래가 되는 종목들 전부는 아니였다.
이 부분만 개선하면 될거 같다.

 

youtu.be/XtZ74Cfpkwg

 

 

6.3 볼린저 밴드 지표
.

.

.

6.3.2 볼린저 밴드 지표 | :%b
6.3.3 볼린저 밴드 지표 II : 밴드폭

.

.

.

 

이전글 - 2021/02/25 - [책들] - [파이썬 증권 데이터 분석] 6.1.2 효율적 투자선 267P

다음글 - 2021.03.16 - [책들] - [파이썬 증권 데이터 분석] 6.4 볼린저 밴드 매매기법 275 ~ 281p

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

Mean-Variance Optimization는 예상 수익률과 리스크의 상관관계를 활용해
포트폴리오를 최적화 하는 기법이다.

 

책에서는 시총 상위 4종목 비중을 다르게 해 포트폴리오 20,000개를 생성해
수익률, 리스크, 샤프 지수를 이용하여 위험에 대한 보상이 큰(샤프 지수가 큰)
포트폴리오와 리스크가 작은 포트폴리오를 구한다.

 

역시나 이번에도 오타와 복사 붙여 넣기로 인해 오류가
났지만, 한번 더 다시 보는(?) 시간이 됐다.

 

youtu.be/3FIj9eqtuyU

 

CHAPTER 6 트레이딩 전략과 구현
6.1 현대 포트폴리오 이론
6.1.1 수익률의 표준편차
6.1.2 효율적 투자선
6.2 샤프 지수와 포트폴리오 최적화 
6.2.1 샤프 지수
6.2.2 포트폴리오 최적화 

 

이전글 - 2021/02/17 - [책들] - [파이썬 증권 데이터 분석] 5. 시세 DB 구축 및 시세 조회 API 개발 251p

다음글 - 2021/02/25 - [책들] - [파이썬 증권 데이터 분석] 6.1.2 효율적 투자선 267P

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

네이버 금융 데이터

웹 스크레이핑

DB에 저장

DB에서 내가 원하는 자료 찾기

 

마리아디비 설치는 책에 설명한 방법이 아닌 도커를 이용 했다. 예전에 도커를
사용해 봤지만, 만족할 만큼은 아니여서 걱정이 됐다. 하지만 예전과 다르게
별다른 문제 없이 원하는 대로 도커도 잘 설치 됐고, 마리아디비 이미지도
잘 받아졌으며, 설정도 잘 됐다. 책에 있는 시세 조회 API 개발 코드를 보고 만드는데도
오타 때문에 고생 좀 했다. 실습 영상에도 적나라 하게 나온다.

 

docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /Users/Shared/data/mariadb:/var/lib/mysql --name mariadb_local mariadb

-d 데몬으로 실행한다. 
-p 포트포워딩 해준다. 로컬이라 3306 3306 했다
-e MYSQL_ROOT_PASSWORD root 패스워드 설정한다.
-v 디비 데이터 저장할 폴더이다
--name 컨테이너 이름이다

 

docker run --name mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb mariadb
docker exec -it mariadb /bin/bash

 

youtu.be/uipdLntAbII

 

 

CHAPTER 5 시세 DB 구축 및 시세 조회 API 개발
5.1 야후 파이낸스와 네이버 금융 비교하기

5.1.1 야후 파이낸스 데이터의 문제점
5.1.2 네이버 금융 데이터로 시세 데이터베이스 구축하기

 

5.2 마리아디비 설치 후 접속 확인
5.2.1 마리아디비 설치
5.2.2 마이에스큐엘 클라이언트로 접속 확인
5.2.3 헤이디에스큐엘
5.2.4 파이마이에스큐엘로 버전 정보 확인하기

 

5.3 주식 시세를 매일 DB로 업데이트하기
5.3.1 DBUpdater 클래스 구조
5.3.2 헤이디에스큐엘로 테이블 생성하기
5.3.3 복합 기본키
5.3.4 파이마이에스큐엘로 테이블 생성하기
5.3.5 종목코드 구하기 
5.3.6 종목코드를 DB에 업데이트하기
5.3.7 주식 시세 데이터 읽어오기
5.3.8 일별 시세 데이터를 DB에 저장하기
5.3.9 json을 이용한 업데이트 페이지 수 설정
5.3.10 마리아디비 자동 연결 해제 방지

5.3.11 DBUpdater.py  전체 소스 코드

5.3.12 Run 레지스트리 등록해 자동 실행하기

 

5.4 일별 시세 조회 API
5.4.1 클래스 구조 
5.4.2 생성자와 소멸자로 DB 연결 관리
5.4.3 일별 시세 조회 API
5.4.4 기본 인숫값 처리
5.4.5 정규표현식으로 연 월 일 분리하기
5.4.6 회사명으로 종목코드 조회하기

5.4.7 Analyzer.py 전체 소스 코드

5.5 핵심 요약

 

이전글 - 2021/02/07 - [책들] - [파이썬 증권 데이터 분석] 4.5 OHLC 캔들 차트 203p

다음글 - 2021/02/25 - [책들] - [파이썬 증권 데이터 분석] 6.1.2 효율적 투자선 267P

 

 

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

mplfinance 라이브러리를 이용하면 쉽게 OHLC 관련 차트를 그릴 수 있다. 

mplfinance에 맞게 data들을 가공해 주면 된다.

 

책에 있는 소스

import pandas as pd
from urllib.request import urlopen
from bs4 import BeautifulSoup
import mplfinance as mpf

url = 'https://finance.naver.com/item/sise_day.nhn?code=068270&page=1'
with urlopen(url) as doc:
    html = BeautifulSoup(doc, 'lxml') 
    pgrr = html.find('td', class_='pgRR')
    s = str(pgrr.a['href']).split('=')
    last_page = s[-1]  

df = pd.DataFrame()
sise_url = 'https://finance.naver.com/item/sise_day.nhn?code=068270'  
for page in range(1, int(last_page)+1): 
    page_url = '{}&page={}'.format(sise_url, page)  
    df = df.append(pd.read_html(page_url, header=0)[0])

df = df.dropna()
df = df.iloc[0:30]
df = df.rename(columns={'날짜':'Date', '시가':'Open', '고가':'High', '저가':'Low', '종가':'Close', '거래량':'Volume'})
df = df.sort_values(by='Date')
df.index = pd.to_datetime(df.Date)
df = df[['Open', 'High', 'Low', 'Close', 'Volume']]

mpf.plot(df, title='Celltrion candle chart', type='candle')

mpf.plot(df, title='Celltrion ohlc chart', type='ohlc')

kwargs = dict(title='Celltrion customized chart', type='candle',
    mav=(2, 4, 6), volume=True, ylabel='ohlc candles')
mc = mpf.make_marketcolors(up='r', down='b', inherit=True)
s  = mpf.make_mpf_style(marketcolors=mc)
mpf.plot(df, **kwargs, style=s)

'User Agent' 추가한 코드

'''
셀트리온 캔들 차트 신버전
'''

import pandas as pd
import urllib.request as urllib
from bs4 import BeautifulSoup
import mplfinance as mpf

opener = urllib.build_opener()
opener.addheaders = [("User-Agent" , "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36")]

# 4.4.3 맨 뒤 페이지 숫자 구하기
sise_url = 'https://finance.naver.com/item/sise_day.nhn?code=068270'
with opener.open(sise_url) as doc:
    html = BeautifulSoup(doc, 'lxml')
    pgrr = html.find('td', class_ = 'pgRR')
    s = str(pgrr.a['href']).split('=')
    last_page = s[-1]

# 4.4.4 전체 페이지 읽어오기
df = pd.DataFrame()
for page in range(1, int(last_page) + 1):
    print('.', end = '')
    page_url = '{}&page={}'.format(sise_url, page)
    df = df.append(pd.read_html(opener.open(page_url), header = 0)[0])

# 차트 출력을 위해 데이터프레임 가공하기
df = df.dropna()
df = df.iloc[0:30]
df = df.rename(columns = {'날짜' : 'Date', '시가' : 'Open', '고가' : 'High', '저가' : 'Low', '종가' : 'Close', '거래량' : 'Volume'})
df = df.sort_values(by = 'Date')
df.index = pd.to_datetime(df.Date)
df = df[['Open', 'High', 'Low', 'Close', 'Volume']]

# 엠피엘_파이낸스로 캔들 차트 그리기
mpf.plot(df, title = 'Celltrion candle chart', type = 'candle')


 

'User Agent'가 추가된 url 객체를 돌려주는 함수를 하나
만들어서 앞으로 편안하게 써야 겠다.

 

실습 동영상

 

 

 

 

matplotlib/mplfinance

New mplfinance package (replacement for mpl-finance). - matplotlib/mplfinance

github.com

 

CHAPTER 4 웹 스크레이핑을 사용한 데이터 분석

4.5 OHLC와 캔들 차트
4.5.1 OHLC 차트와 캔들 차트의 비교
4.5.2 셀트리온 종가 차트
4.4.3 셀트리온 캔들 차트
4.6 핵심 요약 

 

이전글 - 2021/02/07 - [책들] - [파이썬 증권 데이터 분석] 4. 웹 스크레이핑을 사용한 데이터 분석 191p

다음글 -

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

녹화한 실습 동영상을 보니 꽤 플레이 타임이 길다.
오래 걸린 이유는 고질병인 '오타'!
그리고 그리고 '유저 에이전트'

 

'유저 에이전트' 정보 없이 웹페이지를 읽을 경우
원하는 데이터를 얻을 수 없다.

import pandas as pd
import urllib.request as urllib

sise_url = 'https://finance.naver.com/item/sise_day.nhn?code=068270'

opener = urllib.build_opener()
opener.addheaders = [("User-Agent" , "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36")]

df = pd.DataFrame()
last_page = 385

print('wait......')
for page in range(1, int(last_page) + 1):
    print('.', end = '')
    page_url = '{}&page={}'.format(sise_url, page)
    df = df.append(pd.read_html(opener.open(page_url), header = 0)[0])

df = df.dropna()

셀트리온 데이터를 읽어 오는 코드다. 책에 있는 내용에
'유저 에이전트' 부분을 추가한 코드.

크롬 개발자 모드 콘솔에서 'navigator.userAgent'로 확인

 

실습 동영상

 

Web Scraping 관련 동영상 자료 - 한 번쯤 보면 좋은 동영상

 

CHAPTER 4 웹 스크레이핑을 사용한 데이터 분석
4.1 팬더스로 상장법인 목록 읽기
4.1.1 엑셀 파일 내용 확인하기
4.1.2 read_html() 함수로 파일 읽기 

4.2 HTML 익히기 ....
4.2.1 HTML 기본 구조
4.2.2 HTML 주요 태그
4.2.3 HTML 예시 ...

4.3 웹에서 일별 시세 구하기
4.3.1 네이버 금융 일별 시세 분석하기
4.3.2 소스 코드에서 링크 주소 검색하기

4.4 뷰티풀 수프로 일별 시세 읽어오기
4.4.1 파서별 장단점
4.4.2 find_al() 함수와 find() 함수 비교
4.4.3 맨 뒤 페이지 숫자 구하기
4.4.4 전체 페이지 읽어오기 

 

이전글 - 2021/02/02 - [책들] - 파이썬 증권 데이터 분석 3.6 회귀 분석과 상관관계 ~ 171p

이후글 - 2021/02/07 - [책들] - [파이썬 증권 데이터 분석] 4.5 OHLC 캔들 차트 203p

 

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,