반응형 파이썬171 Python Exception 발생시 해당 소스, 라인 출력하기 Python Exception 발생시 해당 소스, 라인 출력하기 예외처리(try-except)를 하지 않고 에러가 발생하는 경우에는 어느 라인이 문제가 되었는지 바로 나옵니다. 하지만 예외처리를 핸들링한 경우 에러는 처리하되 어디서 문제가 되었는지는 찾기 어려울 수도 있습니다. 예를 들어 아래 소스의 경우는 누가 봐도 try에서 실행하는 4/0 이 부분이 문제가 됩니다. try: if 4/0: print('success') else: print('fail') except Exception as e: print(e) # division by zero 하지만 프로그램이 다른 프로그램을 호출하는 경우 또는 한 프로그램이 몇 천 라인이 넘는 경우에는 위처럼 직관적으로 저기가 문제다. 라고 찾기 어려울 수도 있습.. 2020. 3. 3. Python으로 Larry Williams의 변동성 돌파 전략 백테스팅 - 2 / 비트코인 / 가상화폐 자동매매 이전글에 이어서 백테스팅을 진행해보겠습니다. 이 포스팅에서는 백테스팅 패키지(zipline, backtrader 등)을 사용하지 않고 간단하게나마 직접 구현해보겠습니다. 먼저 BackTest 클래스에 필요한 변수들을 보겠습니다. class VolatilityBackTest(object): def __init__(self, hourly_data, daily_data, start_cash): self.hourly_data = hourly_data # 시간단위 데이터 self.daily_data = daily_data # 일단위 데이터 self.position = None # 진입 포지션 self.start_cash = start_cash # 초기 현금 자산 self.cash = self.start_cash .. 2020. 3. 1. Python으로 Larry Williams의 변동성 돌파 전략 백테스팅 - 1 / 비트코인 / 가상화폐 자동매매 이번 포스팅은 래리 윌리엄스(Larry Williams)의 변동성 돌파 전략을 백테스팅 하는 과정을 담아보겠습니다. 전략을 사용할 마켓은 가상화폐(비트코인)입니다. 먼저 변동성 돌파 전략에 대해 알아보겠습니다. 이 전략에 대해서 알아보는 제일 좋은 방법은 강환국님의 유튜브를 보는 것이라고 생각합니다만 간단히 설명드리자면 코인의 현재가격이 오늘 시가 + Range * K의 합보다 크면 매수하고 다음날 시가에 매도하는 전략입니다. 여기서 Range는 전일 고가 - 전일 저가이며 K는 0.5를 사용하는 것이 좋다고 하시지만 고정적으로 K를 0.5로 설정하는 것이 아니라 마켓 상황에 따라 달리 두는 것이 더 유연한 방법 같습니다. 그럼 언제 매수하는지 예를 들어 확인해보겠습니다. 2020-03-01 리플의 현재.. 2020. 3. 1. Python으로 LINE Notify 사용하기 / 메신저 알림 보내기 Cloud, local PC에서 Python 프로그램을 구동시키다 특정 조건에 도달하면 알림을 보내는 기능이 필요할 때가 있습니다. Trading logs 및 exception 내용을 전달할 매체를 찾아보니 다음과 같았습니다. 1.카카오톡 2.텔레그램 3.라인 하나씩 살펴보니 카카오톡 같은 경우는 내가 나에게 보내는 것이라 메세지는 잘 전달할 수 있되 알림이 오지 않습니다. > 탈락 텔레그램은 써보니 익숙치가 않아서 탈락 라인을 선택했습니다. 라인을 이용해서 알림을 보내는 것은 정말 놀랄 정도로 쉽습니다. 하나씩 따라해보겠습니다. 1. Mobile에 LINE application 다운로드 2.회원가입 전화번호로 가입 이후 LINE Notify 사용을 위해 이메일 등록이 필요합니다. 설정 > 계정 > 이메.. 2020. 2. 16. Python Map에 대한 이해 Python 내장 함수인 map은 리스트의 원소마다 특정한 함수를 적용시키는 역할을 합니다. 먼저 map 사용 없이 리스트의 모든 원소를 두배로 만들어보겠습니다. a = [1,2,3,4,5] for idx, val in enumerate(a): a[idx]*=2 print(a) # [2, 4, 6, 8, 10] 반복문 for를 사용하여 리스트의 원소에 하나씩 접근해 2를 곱해주고 다시 저장하는 모습입니다. 하지만 이렇게 코드를 만들면 흔히들 Python답지 못한 코드라고 합니다. 저것도 하나의 방법이긴하지만 더 간단하고 직관적인 방법이 있기 때문에 그렇습니다. 다음은 map을 사용하여 동일하게 원소마다 2를 곱해보겠습니다. 이를 위해서는 위에서 말한 특정 함수(Input마다 2를 곱해주는 함수)가 필요합.. 2020. 2. 14. 이전 1 ··· 24 25 26 27 28 29 30 ··· 35 다음 반응형