INVESTAR / StockAnalysisInPython

456 stars 412 forks source link

6장 TripleScreen.py에서 2가지 문제 #72

Open enteritis opened 3 years ago

enteritis commented 3 years ago

안녕하세요. 삼중창 시스템 코드를 실행하면서 2가지 문제가 있어 질문을 드립니다.

  1. 삼중창 시스템 코드를 그대로 실행하는 경우 아래와 같은 문제가 있었습니다.

C:\myPackage>python TripleScreen.py File "TripleScreen.py", line 40 elif df.ema130.values[i-1] > df.ema130.values[i] and \ ^ SyntaxError: unexpected character after line continuation character

역슬래쉬()에 대해 찾아보니, '구문이 길어질 때, 다음 줄까지 구문을 잇겠다는 것을 의미'한다고 하여, 해당 역슬래쉬를 제거하고 코드를 이어 붙이니 문제가 해결되었습니다.

if df.ema130.values[i-1] < df.ema130.values[i] and \
    df.slow_d.values[i-1] >= 20 and df.slow_d.values[i] < 20:
    plt.plot(df.number.values[i], 250000, 'r^') 
elif df.ema130.values[i-1] > df.ema130.values[i] and df.slow_d.values[i-1] <= 80 and df.slow_d.values[i] > 80:
    plt.plot(df.number.values[i], 250000, 'bv')
  1. 위의 코드를 수정한 후 실행하니 다음의 문제가 발생하였습니다.

C:\myPackage>python TripleScreen.py Traceback (most recent call last): File "TripleScreen.py", line 4, in from mpl_finance import candlestick_ohlc ModuleNotFoundError: No module named 'mpl_finance'

line 4를 주석 처리하고, line 5의 주석 처리를 제거하였더니 문제가 해결되었습니다.

from mpl_finance import candlestick_ohlc

from mplfinance.original_flavor import candlestick_ohlc

두 가지 문제를 해결한 후에 책의 결과를 얻을 수 있었습니다.

INVESTAR commented 3 years ago

소스코드와 관련된 내용을 공유해 주셔서 감사합니다.

  1. \ 문자는 구문이 길어질 때 다음 줄까지 구문을 잇겠다는 의미로 사용하는 것이 맞습니다. 제가 깃허브에 올라가 있는 코드를 확인해 보니 40 라인의 \ 문자 뒤에 공백문자들이 존재하길래 소스코드에서 \ 문자 뒤에 있는 공백문자들을 제거한 후 다시 업로드 해두었습니다. 독자님이 하신 것처럼 \ 문자를 제거하고 한 줄로 이어 붙여도 무방합니다.

  2. 구버전인 mpl_finance를 설치하신 분은 4 라인의 from mpl_finance import candlestick_ohlc을 사용하시고 신버전인 mplfinance를 설치하신 분은 5 라인의 from mplfinance.original_flavor import candlestick_ohlc을 사용하시면 됩니다.

enteritis commented 3 years ago

소스코드와 관련된 내용을 공유해 주셔서 감사합니다.

  1. \ 문자는 구문이 길어질 때 다음 줄까지 구문을 잇겠다는 의미로 사용하는 것이 맞습니다. 제가 깃허브에 올라가 있는 코드를 확인해 보니 40 라인의 \ 문자 뒤에 공백문자들이 존재하길래 소스코드에서 \ 문자 뒤에 있는 공백문자들을 제거한 후 다시 업로드 해두었습니다. 독자님이 하신 것처럼 \ 문자를 제거하고 한 줄로 이어 붙여도 무방합니다.
  2. 구버전인 mpl_finance를 설치하신 분은 4 라인의 from mpl_finance import candlestick_ohlc을 사용하시고 신버전인 mplfinance를 설치하신 분은 5 라인의 from mplfinance.original_flavor import candlestick_ohlc을 사용하시면 됩니다.

답변 주셔서 정말 감사합니다. 저서가 파이썬을 공부하는데 큰 도움이 되었습니다.