터틀 그룹이 사용한 진입 기준 중 한가지로
최근 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 에 대해 알아보겠습니다.