Python data Type - Datetime

반응형

자주 사용하게 되지만, 자주 헷갈리는 Python의 자료형에 대해서 정리를 해 나가겠습니다.

오늘은 Datetime입니다.

 

주어진 String값을 DateTime형식으로 바꾸기: strptime

 

Example 1: string to datetime object

from datetime

import datetime

 

date_string = "21 June, 2018"

 

print("date_string =", date_string)

print("type of date_string =", type(date_string))

 

date_object = datetime.strptime(date_string, "%d %B, %Y")

 

print("date_object =", date_object)

print("type of date_object =", type(date_object))

 

실행경과>

date_string = 21 June, 2018
type of date_string = <class 'str'>
date_object = 2018-06-21 00:00:00
type of date_object = <class 'datetime.datetime'>

Example 2: string to datetime object

from datetime

import datetime

dt_string = "12/11/2018 09:15:32"

# Considering date is in dd/mm/yyyy format

dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")

print("dt_object1 =", dt_object1)

# Considering date is in mm/dd/yyyy format

dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")

print("dt_object2 =", dt_object2)

실행경과>

dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

 

Format Code List

The table below shows all the format codes that you can use.

Directive Meaning Example
%a Abbreviated weekday name. Sun, Mon, ...
%A Full weekday name. Sunday, Monday, ...
%w Weekday as a decimal number. 0, 1, ..., 6
%d Day of the month as a zero-padded decimal. 01, 02, ..., 31
%-d Day of the month as a decimal number. 1, 2, ..., 30
%b Abbreviated month name. Jan, Feb, ..., Dec
%B Full month name. January, February, ...
%m Month as a zero-padded decimal number. 01, 02, ..., 12
%-m Month as a decimal number. 1, 2, ..., 12
%y Year without century as a zero-padded decimal number. 00, 01, ..., 99
%-y Year without century as a decimal number. 0, 1, ..., 99
%Y Year with century as a decimal number. 2013, 2019 etc.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, ..., 23
%-H Hour (24-hour clock) as a decimal number. 0, 1, ..., 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, ..., 12
%-I Hour (12-hour clock) as a decimal number. 1, 2, ... 12
%p Locale’s AM or PM. AM, PM
%M Minute as a zero-padded decimal number. 00, 01, ..., 59
%-M Minute as a decimal number. 0, 1, ..., 59
%S Second as a zero-padded decimal number. 00, 01, ..., 59
%-S Second as a decimal number. 0, 1, ..., 59
%f Microsecond as a decimal number, zero-padded on the left. 000000 - 999999
%z UTC offset in the form +HHMM or -HHMM.  
%Z Time zone name.  
%j Day of the year as a zero-padded decimal number. 001, 002, ..., 366
%-j Day of the year as a decimal number. 1, 2, ..., 366
%U Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, ..., 53
%W Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, ..., 53
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal '%' character. %

 

보다 많은 예시와 설명을 하기에서 참조하시면 됩니다.

www.programiz.com/python-programming/datetime/strptime

반응형

댓글()

나만의 DC형 퇴직연금 운영 방법

생활정보|2020. 8. 19. 00:15
반응형

최소한 30%이상은 비위험자산에 가입하여 안전자산으로 확보하고, 나머지를 주식형 펀드 등

고수익위험자산에 가입하여 수익을 최대화 한다.

https://www.nhqv.com/pension/sale/getRtp00004.action

1. 채권형 펀드

   60%이상이 채권에 투자되는 펀드를 말한다.  여기서 펀드란, 금융기관이 여러 다수의 투자자 돈을 모아서 투자자를

   대신하여 운용하는 상품을 말한다. 국공채펀드, 원금보장형 파생상품, 정기예금, ELB상품이 이에 해당된다.

   보통 제1금융권 예적금 금리에 1~5% 추가금리가 붙는다.

   위험도는 채권을 발행한 기관 상품에 따라 달라진다.

   1) 채권형 펀드의 종류: 어떤 채권에 투자하느냐에 다라 여러종류로 나뉜다.

       )국공채 펀드: 국채나 공채(지방채,특수채,금융채)에 투자하는 펀드

       )회사채 펀드: 회사채에 투자하는 펀드

       )하이일드 펀드: 신용도 낮은 회사의 채권에 투자하는 펀드

       )단기/중기/장기채권 펀드: 남은 채권만기가 1년이하/1~5년이하/5년이상

   2) 채권형 펀드의 특징

       )안정적인 수익률: 여러 채권에 분산 투자하므로, 특정 채권 부도시 최소의 투자손실

       )낮은 수익률

       )낮은 보수: 0.5% 내외(운용사에서 떼가는 수수료가 낮다.)

   3) 채권형 펀드 상품 선택 전략

      수익률이 좋으면서 원금이 보장되는 상품

      - 예금자보호법에 의해 국가에서 지켜주는 원금은 금융회사 1곳당 5000만원이다.

      - 발행기관의 신용등급에 따라 수익률의 차이가 있으며 최소가입금액은 일반적으로 1억원이다.

        또한 채권의 특성상 중도해지가 불가능하다.

      원금 손실 위험 없이 고수익 상품에 투자하려면

      - 파생상품 배합을 통해 고수익의 기회를 가지면서 원금을 보장(기타파생결합사채(DLB))

      - 이 상품의 가장 안 좋은 시나리오는 만기에 이자 없이 원금만 돌려받는 것이다. 그리고 일반적으로 기대수익이

        높을수록 만기는 길다. 일반적으로 3년 정도다.

        이런 상품에 투자하기 위해서는 일정 기간 동안 투자금액이 묶일 수 있다는 생각을 하고 투자에 임해야 한다.     

DC, IRP, 퇴직연금, 연금저축 안정수익상품

    - 파생결합증권(ELS. Equity Linked Securities),

      재정경제부령이 정하는 금융기관이 발행하는 증권으로써 특정 주식 또는 다수 주식의 가격이나 주가지수 수치의

      변동에 따라 지급 이익이 결정되는 증권을 말함.

 

    원금보장형>

    투자원금중 대부분을 우량채권에 투자하고, 일부는 옵션복제 재원으로 사용함. 우량채권에 투자한 원금과 이자를 합      하여 사전에 제시한 수준의 원금을 보장

 

    원금비보장형>

    투자원금중 일정부분을 기초자산에 직접 투자하며, 나머지 부분은 채권에 투자함.

 

   유망한 기업들의 지분을 취득하면서 자금을 지원하기 위한 펀드

   - 최근 정부 차원에서 4차 산업 관련 업종과 신규 스타트업 기업에 대해 많은 지원을 하고 있다. 이 가운데 유망한

     스타트업들은 규모를 확장한 뒤에 증시 상장 혹은 기존 대기업에서 인수하고 있다. 이러한 유망한 기업들의 지분을

     취득하면서 자금을 지원하기 위한 펀드가 있다. 일부 은행에서는 유망한 기업들을 선별해 해당 기업에 투자하는

     만기 5년 이상의 펀드 판매를 검토하고 있다. 이 상품은 정부의 벤처펀드 소득공제도 가능하기 때문에 여유자금을

     5년 이상 묻어 놓기에는 매우 매력적이다.

     이 상품은 증시의 급등락 움직임과 크게 관련 없이 운용되기 때문에 최소 금액으로 포트폴리오에 담아 놓기에는

     매우 매력적이다.

   - 예시) 코스닥벤처 펀드

 

4) 괜찬아 보이는 채권형 펀드 검색 결과

    a) 우리하이플러스채권증권자투자신탁1호(채권)C-Pe(★★★) (29.2% 투자)

       예상수익률: (3Y 3%, 12M 1.73%, 6M 1.11%)

       총보수: 0.29%

       원금보장여부: 집합투자증권으로서, “예금자보호법”에 의한 보호를 받지 않는 실적배당 상품으로서 투자원금의

       손실이 발생할 수 있음.     

       기간수익률

     

      b)  미래에셋퇴직플랜증권자투자신탁1호(채권)C-P2e (영업점 가입)         

      c) SBI저축은행 정기예금_DC_3Y(★★★) (52.2% 투자)

          온라인 상품운용지시 시간: 12:30분 마감

 

      d) 흥국멀티플레이30공모주증권자투자신탁[채권혼합]C-p2

          예상수익: 2.32%(최근2년기준))

2. 주식형 펀드

    채권형 펀드가 아닌 펀드 상품을 말한다. 투자회사의 펀드메니저는 일정 비율 이상의 주식을 몰아서  사질 않고 해당      상품 범위내에서 분산 투자해야 한다. 해당 상품내의 펀드에서 구매한 주식이 배당을 할 때, 해당 배당금도 펀드 자

    산으로 편입된다.

 

   ㅁ 주식 비중에 따른 분류

   1) 성장형 펀드

       펀드에서 차지하는 주식의 비중이 60% ~ 70%를 넘는 펀드를 성장형 펀드라고 한다.

   2) 안정형 펀드

       펀드 재산 중에 주식이 차지하는 비중이 40% 미만인 펀드

   3) 안정성장형 펀드

       펀드 재산 중에 주식이 차지하는 비중이 4070%일 때, 세상은 이 펀드를 안정성장형 펀드라고 함

 

   ㅁ 어떤주식에 투자하느냐에 따른 분류

   1) 일반 주식형 펀드

       코스피(KOSPI) 주식에 전반적으로 투자하는 펀드

   2) 코스닥펀드(중소형주 펀드)

      코스닥 주식에 전반적으로 투자하는 펀드

   3) 우량주 펀드

      코스피 우량주에 투자하는 펀드

   4) 고배당주 펀드

       배당을 많이 주는 배당주에 투자하는 펀드

   5) 소형주 펀드

       고수익 고위험을 추가하는 펀드

   6) 대형주 펀드

       주식 가격이 비싼 대형주에 투자하는 펀드

   7)가치주 펀드 (투자예상 비중: 20%)

       기업의 가치가 낮게 평가되어 향후 상승을 예상하는 가치주에 투자하는 펀드

   8)성장주 펀드 (투자예상 비중: 20%)

       고정상을 예상하는 기업에 투자하는 펀드

   ㅁ 어떤 섹터에 투자 하느냐에 따른 분류

       운수, 금융, 기술, IT, 건설 등등에 속해 있는가에 따른 분류도 있다.

   ㅁ 해외 주식형 펀드

       일정시간 이전에 환매를 하면, 다음날 나오는 기준가로 매도가 되어, 판 날을 포함해서 4일째

       되는 날 돈이 들어온다.

   ㅁ 주식형/주식혼합형 펀드 검색 결과

   a) 마이다스신성장기업포커스증권투자신탁(주식)C-P2(★★★)

      펀드규모: 1,739

      투자위험도: 고위험

     

   b) 이다스미소중소형주증권자투자신탁(주식)C-Pe2

       펀드규모: 1,913

       투자위험도: 초고위험

       투자전략: 중소형주에 (KOSPI 시가총액 100위 종목 제외 및 KOSDAQ) 주로 투자         

 

c) 미래에셋연금한국헬스케어증권자투자신탁1호(주식)C-P2e

   투자전략: 고령화 및 건강에 대한 관심 증가등에 따라 수혜가 예상되는 글로벌의료관련

               기업 또는 건강관련 제품/서비스제공 기업 등의 의료 또는 헬스케어 관련 주식에 주로 투자하여 수익 추구

 

   투자위험도: 초고위험

   펀드규모: 670

           d) 에셋플러스글로벌리치투게더퇴직연금증권자투자신탁1호[주식]C (영업점가입)

              투자전략- 글로벌 기업 중 세상의 변화를 주도하는 일등기업에 투자하는 펀드

                            - 혁신기업과 고부가소비재기업, 세계화 가능한 일등 기업을 선호

              투자위험도: 고위험

              펀드규모: 1,496

              총보수: 1.65% (판매:0.84%, 운용:0.75%, 수탁:0.04%, 일반사무관리:0.02%)

e) 에셋플러스글로벌리치투게더증권자투자신탁1호(주식)Ae(★★★★)

    펀드규모: 5,183

    투자위험도: 고위험( 3등급: 다소 높은 위험 )

f) 피델리티글로벌테크놀로지증권자투자신탁(주식-재간접형)A-e(★★★★) (6% 투자)

   펀드규모: 14,315

   투자위험도: 고위험

   해외주식형 펀드

g) 피델리티아시아증권자투자신탁[주식]A-e(★★☆☆☆)

    해외주식형 고위험

    투자전략: 다양한 아이사-태평양 증시에 상장된(한국, 일본 제외) 유가증권에 분산 투자함으로써 장기적인

                 자본증식을 추구

h) 미래에셋연금아시아퍼시픽소비성장증권자투자신탁1호(주식)C-Pe(★★★★) (10% 투자)

    해외주식형 고위험

    펀드규모: 23

    투자전략: 소비업종 뿐 아니라 IT기업, 금융회사 등 소비성장의 수혜를 공유할 수 있는 기업을 포함하는 포괄적

                 개념의 투자

    총보수: 1.2% (판매:0.48%, 운용:0.66%, 수탁:0.04%, 일반사무관리:0.02%)

i) 미래에셋평생소득TIF혼합자산자투자신탁C-P2e()

   저위험

   운용규모: 2,181

j) AB미국그로스증권투자신탁(주식-재간접형)Ce-P2(★★★)

   높은 이익성장이 예상되는 미국우량성장주에 투자를 하는 펀드로서 인덱스를 추종하는 펀드가 아닙니다.

 

k) DB차이나바이오헬스케어증권자투자신탁(UH)[주식]C-P2E(★★★★) (6% 투자) : P2는 퇴직연금용 의미

    중국 헬스케어 섹터는 양회에서 정책적 수혜 기대감과 코로나 19 신약개발 기대감, 중국산 진단키트 및 방역 물자 

    대외 수요 증가에 강세를 기록하였습니다. 편입 비중이 높은 제약과 의료장비 관련주들이 강세를 지속하며 펀드 

    수익률에 긍정적으로 작용하였습니다.

    참고로, 수수로 미징구 유형(C)로서, 4 년 이전에 환매할 경우 판매수수료선취형(A)보다 낮은 총비용을 지불할 수

    있는 온라인판매 집합투자기구입니다. 

l) 마이다스신성장기업포커스증권투자신탁(주식)C-Pe2(★★★★) (6.6% 투자)

 

 

ㅁ 상장지수 펀드(ETF)

    ARIRANG 미국S&P500 ETF

           - Apple Inc(애플, 정보기술)

           - Microsoft Corp(마이크로소프트, 정보기술)

           - Amazon.com Inc(아마존, 정보기술, 소비재)

           - FaceBook Inc(페이스북, 정보기술)

           - Berkshire Hathaway Inc B(버크셔 해서웨이, 금융)

           - JPMorgan Chase & Co(제이피모건, 금융)

           - Alphabet Inc Class A(알파벳, 정보기술)

           - Alphabet Inc Class C(알파벳, 정보기술)

           - Johnson & Johnson(존슨앤존슨, 헬스케어)

           - Visa(비자, 금융)

    ARIRANG 미국나스닥기술주 ETF(미국 4차산업 핵심종목)

 

주식시장이 하락할 때, 펀드도 어쩔 수 없이 하락할 수 있다. 주식처럼 상승이 둔화되었을 때, 또는 떨어질 때, 원하는 상품에 입금하는 습관도 주식형 펀드에서 요구된다. 큰돈을 한번에 맡겨서 수익을 올릴지, 아니면 적립식이나 소액 거치식으로 가느냐는 자신이 선택해야 합니다.

주식형 펀드를 고를 때 조심해야 할 것은, 수익이 미미한 펀드라고 해서 무조건 무시하지 말고, 수익이 높다고 해서 무조건 믿지 말아야 한다.

가장 좋은 펀드는 오를 때 지수보다 조금 더 오르고, 떨어질 때는 지수보다 좀 덜 떨어지면서 지속적으로 지수의 상승률과 차이를 벌일 수 있는 펀드가 좋다.

주식시장이 안 좋아 너무 떨어질 때, 펀드 구매가 많아 진다고 합니다.

그 만큼 요즘 투자자들도 경륜이 많아 지면서, 수준이 높아졌기 때문이라고 하죠?

단기적인 투자에 너무 휘둘리면, 절대로 간접 투자를 못합니다. 이점 명심하셔서 1주에,, 1달에,,, 한번씩 기간을 정해 놓으시고, 펀드를 점검한다면, 주말의 여가 생활로 재테크를 하실 수도 있겠고요. 수익률 점검으로 내 펀드가 안녕 하신 지를 보는 것은 좋은 습관입니다.

하지만, 하루하루 수익에 연연하지 않기를 바랍니다.

 

다음에는 각 상품별 수익률을 격월 단위로 올려보겠습니다.

 

감사합니다.

 

도움받은 사이트: https://www.econowide.com/130

반응형

댓글()

KOA Studio실행시 OpenAPI OCX 오류

AI주식자동매매|2020. 6. 28. 23:32
반응형

opstarter

"버전처리를 받으시려면 현재 실행중인 OpenAPI OCX를 탑재한 그로그램을 종료하신 후 확인버튼을 눌러주시기 바랍니다. 그대로 진행시 버전처리가 정상적으로 실행되지 않습니다."

 

그다름 메세지는..

 

[c:\OpenAPI\khopenapi.ocx] 파일 삭제 실패 [183]

[c:\OpenAPI\opcomms.dll] 파일 삭제 실패 [183]

 

업그래이드확인

새로운 버젼으로 업그레드 되었습니다.

프로그램을 재시작해 주세요

 

c:\OpenAPI를 삭제하고 다시 설치해도 마찬가지입니다.

왜그럴까요?

 

결국 해결방법을 찾았습니다...

C:\OpenAPI\opversionup.exe 를 실행한 후

KOAStudioSA.exe 를 다시 실행하니 되네요.. 허

반응형

댓글()

AttributeError: module 'time' has no attribute 'clock' in Python 3.8

AI주식자동매매|2020. 6. 8. 00:05
반응형

 

파이썬 3.7에서는 문제 없이 잘 쓰던 기능이 3.8에서는 사용할 수 없다고 나옵니다.원인을 찾아보니..

 

https://stackoverflow.com/questions/58569361/attributeerror-module-time-has-no-attribute-clock-in-python-3-8

 

AttributeError: module 'time' has no attribute 'clock' in Python 3.8

I have written code to generate public and private keys. It works great at Python 3.7 but it fails in Python 3.8. I don't know how it fails in the latest version. Help me with some solutions. Her...

stackoverflow.com

 

time.clock() 함수는 Python 3.3 이후 버젼에서는 더이상 사용하지 않으니, time.perf_counter() 또는 time.process_time() 함수를 써야 한다고 한다.

(Contributed by Matthias Bussonnier in bpo-36895.)

 

결국, system.clock() 부분을 system.perf_counter()로 다음과 같이 고쳤습니다.

참조하세요~

반응형

댓글()

PyQt5 Mainwindow에 Qt Designer를 사용한 graph Widget 추가

카테고리 없음|2020. 6. 7. 21:20
반응형

Qt Designer로 설계할 때 PyQt5 응용프로그램에서 사용자 정의 위젯을 사용하는 방법에 대해 알아보기

Qt Designer는 PyQt5 GUI를 설계하기 위한 훌륭한 도구로, PyQt5 위젯과 레이아웃의 전체 범위를 사용하여 앱을 구성할 수 있다. 그러나 응용프로그램이 점점 더 복잡해짐에 따라 사용자 정의 위젯을 작성하거나 Qt Designer 내에서 위젯을 사용할 수 없는 PyQtGraph와 같은 PyQt5 라이브러리를 사용할 수 있다.

Qt Designer는 설계에서 사용자 정의 또는 외부 위젯을 나타내기 위해 placeholder(자리 표시자) 위젯을 사용하는 메커니즘을 지원한다. 본 과정에서는 Qt Designer 내에서 MainWindow에 PyQtGraph plot을 포함하기 위해 placeholder(자리 표시자)를 사용하는 과정을 설명한다.

 

위젯 승격(Widget Promote)

Qt Designer에서 placeholder(자리 표시자)를 사용하는 원칙은 매우 간단하다.

Qt Designer에서 UI를 정상적으로 생성하십시오.
추가할 사용자 지정 위젯을 나타내는 placeholder(자리 표시자) 위젯을 추가하십시오.
Qt에 UI를 작성할 때 placeholder(자리 표시자)를 실제 위젯으로 바꾸도록 지시하십시오.
Qt에서 이 최종 단계는 (기본 클래스를 promote하는 것과 같이) 'promote'이라고 한다.

추가하려는 사용자 지정 위젯이 기존 Qt 위젯의 하위 클래스인 경우 기본 클래스를 승격할 placeholder로 사용할 수 있다. 예를 들어 QPushButton에서 하위 분류된 사용자 지정 MyAwesomeButton 위젯이 있는 경우 QPushButton을 placeholder로 사용하여 MyAwesomeButton으로 승격한다. 이를 통해 Qt Designer 내에서 기본 클래스 속성, 이벤트 및 작업에 액세스할 수 있다.

사용할 명백한 기본 클래스가 없는 경우 모든 Qt Widget의 공통 기본 클래스인 "Widget"을 사용할 수 있다.

PyQtGraph

데이터 과학에 있어서 Python은 향후 대중적인 사용이 될 것이며, PyQt5를 통해서 대시보드와 분석 도구를 일반적인 사용Case가 될 것이다. 이러한 점에서 UI에 plot을 추가할 수 있다는 것은 매우 유용하며 Qt Designer에서 이 작업을 수행할 수 있다는 것은 훨씬 더 유용하다고 할 수 있다.

Python에는 많은 plotting library가 있으며, matplotlib가 가장 인기 있고 PyQt5에 대한 기본적인 지원을 제공한다. PyQtGraph는 Qt의 기본적인 QGraphicsScene을 사용하여 애플리케이션의 자연스러운 부분을 느끼는 빠른 줌, 스케일링, 드래그 드롭 동작을 제공하는 인기 있는 대안이다.

Ploting을 위해 PyQtGraph를 사용하든 maplotlib를 사용하든, plot canvas 위젯은 Qt Designer 내에서 사용할 수 없다. 하지만 본 과정에서는 사용자 지정 위젯으로 사용하는 방법을 안내하도록 하겠다.

PyQtGraph를 아직 설치하지 않은 경우 다음을 사용하여 설치할 수 있다.

>pip install pyqtgraph

Qt Designer

이제 Qt Designer를 사용하여 간단한 UI 디자인을 만들고 PyQtGraph 위젯의 placeholder를 추가하도록 하겠다. 먼저 Qt Designer를 열고 정상적으로 새 MainWindow를 생성한다.

Qt Creator —  widget type의 MainWindow 

PyQtGraph 위젯에 적합한 기본 클래스가 없으므로 기본 "Widget"을  선택하여 창 중앙에 끌어 놓는다.
그리고, 위젯 Object Name을  "graphWidget"이라는 이름을 지정하고, 파이썬 코드에서 그 이름으로 참조하도록 한다.

 

window에 widget을 추가하고 이름으로 "graphWidget"이라고 한다.

위젯을 마우스 오른쪽 버튼으로 누르고 위젯의 상황에 맞는 메뉴에서 승격 대상을 선택한다.
QWidget을 승격하면 PyQtGraph plot 위젯에서 지정된 하위 클래스로 교체해야 함을 나타낸다.

 

승격 메뉴가 보이도록 마우스 오른쪽 버튼을 클릭한다.

자리 표시자 위젯이 될 사용자 지정 위젯 클래스를 지정하는 대화상자가 표시된다.

헤더 파일은 클래스를 가져오는 데 사용되는 Python 모듈의 이름인 pyqtgraph다. 대체할 위젯의 클래스 이름을 "PlotWidget"으로 지정한다.

 

class 이름을 PlotWidget으로 지정하고 header파일 이름은 pyqtgraph로하여 widget을 승격시킨다.

짜잔! 그 위젯은 이제 plot이 가능한 canvas로 승격되었다. 하지만 Qt Designer 내에서는 어떤 변화도 볼 수 없을 것이다. MainWindow를 PyQt app과 동일한 디렉토리에 "mainwindow.ui"라는 이름으로 저장하자.

 

Loading the .ui file

이제 UI 정의를 포함하는 mainwindow.ui 파일이 있다. Python에서 이걸 로드해서 창과 사용자 지정 위젯을 보여줄 수 있다. 기본 앱 템플릿부터 시작해 봅시다.

우선, x와 y 데이타를 갖는 간단한 plot을 만드는 함수를 만들어보자.

 

그래서, 온도를 나타내는 temp와 시간을 나타내는 hour라는 두 개의 배열을 이용하여 plot() method를 추가하여 graph widget인 .plot() method를 사용하도록 했다.
이제 코드를 실행하여 다음을 확인하도록 하자.

 

더미 데이터를 보여주는 사용자 정의 PyQtGraph 위젯.

자! 이제 당신은 방금 당신의 첫 plot을 PyQtGraph에 삽입하는데 성공했을 것이다.

기본 PyQtGraph plot은 그리 예쁘지 않지만 표시된 데이터를 변경하기 위해 .plot()을 호출하여 사용할 수 있다.


다음 기회가 되면, 라인 색상, 스타일 및 대체 유형의 plot을 포함하여 좀 더 복잡한 PyQtGraph plot과 plot customization을 다루려 한다.

 

참조사이트: https://www.learnpyqt.com/courses/qt-creator/embed-pyqtgraph-custom-widgets-qt-app/

반응형

댓글()

Python의 독립적인 가상 실행 환경(Environment)을 위한 Anaconda env 설정 방법

반응형

아나콘다 패키지로 설치한 후, conda 명령어를 이용해서 env를 생성/삭제 및 관리한다.

 

1. anaconda 64bit 설치

  https://www.anaconda.com/products/individual#download-section

 

Individual Edition | Anaconda

🐍 Open Source Anaconda Individual Edition is the world’s most popular Python distribution platform with over 20 million users worldwide. You can trust in our long-term commitment to supporting the Anaconda open-source ecosystem, the platform of choice

www.anaconda.com

 

python 3.7버젼 64bbit를 선택한다.

repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe

주의: python 홈페이지에 가서 python을 다운받지 말자. Anaconda 설치를 하면 python이 자동으로 설치가 된다.

      이제 anaconda 홈페이지로 가서 다운을 받자. 64 bit 최신버전을 다운로드하도록 하자.

      https://youngjoongkwon.com/2018/01/26/windows-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-anaconda-tensorflow-%EC%84%A4%EC%B9%98%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-no-module-named-tensorflow-%EC%97%90%EB%9F%AC/

 

Windows 환경에서 Anaconda + Tensorflow 설치문제 해결하기 (No module named ‘tensorflow’ 에러 해결법)

python을 따로 설치한 다음 anaconda를 설치하고, tensorflow를 설치했다가 No module named ‘tensorflow’ 에러가 떴다. 물론 tensorflow는 실행할 수 없었다. 검색을 해보니 나와 비슷한 문제를 겪고있는 사람��

youngjoongkwon.com

 

2. Anaconda Prompt 실행

python version이 3.7.6임을 확인한다.

  tenserflow가 3.8버젼을 지원하지 않습니다. 3.7버젼도 3.7.6 안전한 검증된 버젼으로 설치를 권장합니다.

  (추가)

  anaconda 64bit 설치후, 제일 먼저 해주세요..
  >python -m pip install --upgrade pip

3. Python 3.8(최신) 버전의 ‘py38_32’라는 이름으로 32bit용 env를 생성합니다. 

   (키움과 같은 주식 API는 아직 32bit만 지원하므로, 32bit 가상환경을 별도로 만들어야 합니다.)

>set CONDA_FORCE_32BIT=1
>conda create -n py37_32 python=3.7 anaconda
>activate py37_32
>conda env list

4. 추가적으로 64bit용 가상환경도 별도설치하여 향후 64bit환경 개발시 사용하도록 한다.

>conda deactivate

>set CONDA_FORCE_64BIT=1
>conda create -n py38_64 python=3.8 anaconda
>activate py38_64

>pip install tensorflow  

   * Python을 anaconda에서 설치한 버젼과 달리, 별도로 설치할 경우,

     tensorflow가 설치되지 않습니다. 주의해 주세요~

5. Anaconda에서 생성한 env환경을 확인합니다. 

 

6. 가상환경 제거하기

>conda remove -n py37_32 --all

>conda remove -n py38_64 --all

 

7. 최신버젼의 tensorflow를 설치한다.

>pip install tensorflow
or 
>py -m pip install tensorflow
or
>python -m pip install --user --upgrade pip
반응형

댓글()

ValueError: invalid literal for int() with base 10

AI주식자동매매|2020. 5. 18. 10:06
반응형

파이썬 형변환에서 발생하는 오류입니다.

 

우리는 보통 형 변환시에는 하기 함수를 사용합니다.

문자형으로 바꿀 때는 str()

정수형으로 바꿀 때는 int()

실수형으로 바꿀 때는 float() 


문자열을 정수로 변환

>>> a = '10'

>>> int(a)

10

 

문자열을 실수로 변환

>>> b = '4.3'

>>> float(b)

4.3

 

정수를 문자열로 변환

>>> c = 7

>>> str(c)

'7'

 

실수를 문자열로 변환

>>> d = 2.71

>>> str(d)

'2.71'

 

문제 상황

 

하지만, 여기서 문제 상황은 조금 다릅니다.

>>> d = '51,800'

>>> int(d)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '51,800'

 

파이썬에서 다음 라인에서 에러가 걸렸습니다.

self.currentPrice = int(thirdColumnInRow.text()) 

 

thirdColumnInRow.text() 의 value가 '51,800'이기 때문에 바로 int()함수를 사용할 수 없기 때문입니다.

콤마(',')를 제거한 후 int()함수를 사용해야 합니다.

 

해결 방법

 

currentPrice = thirdColumnInRow.text().strip().replace(',', '')
self.currentPrice = int(currentPrice) 

 

이렇게 로직을 수정하니 깔끔하게 해결되었습니다.

반응형

댓글()

AttributeError: 'Kiwoom' object has no attribute 'OnEventConnect'

카테고리 없음|2020. 4. 13. 23:30
반응형

자동매매 프로그램 로직에서 키움접속이 안되어 API Setup을 수정 모드로 재설치했더니..

이런 에러가 발생합니다.

 

AttributeError: 'Kiwoom' object has no attribute 'OnEventConnect'

 

이럴때는 프로그램 추가삭제에서 APISetup.exe를 완전히 삭제하후,

APISetup 을 다시 실행해 주면 끝~~~

반응형

댓글()