본문 바로가기

카테고리 없음

NASDAQ 100 종목 중 최근 20일 고가 경신 종목 찾기 - python, pandas, yfinance

터틀 그룹이 사용한 진입 기준 중 한가지로

 

최근 20일 고가를 돌파하는 경우

 

가 있습니다.

 

상승 추세를 예견한다고 보고 있습니다.

 

원래는 실시간 가격과 비교하는 것이 맞지만,

 

현재는 장이 끝난 시점이라서,

 

종가를 돌파 기준으로 판단하였습니다.

 

전체 코드는 다음과 같습니다.

import yfinance as yf
import pandas as pd

nasdaq100_tickers = pd.read_html('https://en.wikipedia.org/wiki/Nasdaq-100#Components')[4]['Symbol']

quotes = []

for idx, ticker in enumerate(nasdaq100_tickers):
  try:
    remaining = len(nasdaq100_tickers) - idx - 1
    print(f"checking quote {idx + 1}. remainding = {remaining}")

    data = yf.download(ticker, period="1mo")
    highest_close_20_days = data['Close'][:-1].rolling(window=20).max()

    last_close_price = data['Close'].iloc[-1].values[0]

    compare_price = highest_close_20_days.iloc[-1].values[0]
    if last_close_price > compare_price:
      quotes.append(ticker)
  except Exception as e:
    print(f"Exception: {e}")
    raise

print(f"total {len(quotes)} quotes found")
print(f"quotes: {quotes}")

 

1. 최근 20일 고가 가져오기

최근 20일 고가: 20일 간의 종가 중 가장 큰 종가

(20일 간 고가 평균이 아닙니다)

    data = yf.download(ticker, period="1mo")
    highest_close_20_days = data['Close'][:-1].rolling(window=20).max()

 

 

2. 최근 종가 가져오기

    last_close_price = data['Close'].iloc[-1].values[0]

 

다음 시간에는

20일 최고가 경신 시 상승 추세를 담보하는지

backtest 에 대해 알아보겠습니다.