투자.재테크

[백테스트] KODEX 200 | 양봉 시 종가 매수, 다음날 시가 매도

헬로덱 2024. 9. 28. 15:36
반응형

KODEX 200 데이터를 이용해서 당일 양봉 시에 종가에 매수하여 다음날 시가에 매도하는 백테스트를 수행해 보았습니다.

매수매도 전략

매수 : 양봉시 종가 매수
매도 : 매수 다음날 시가 매도

파이썬으로 데이터 받기

import yfinance as yf

def save_stock_data_to_excel(ticker: str, file_name: str):
    try:
        # 주식 데이터를 가져옵니다.
        stock = yf.Ticker(ticker)

        # 과거 최대치 데이터를 다운로드합니다.
        data = stock.history(period='max')

        # 시간대 정보를 제거합니다.
        data.index = data.index.tz_localize(None)

        # 3일 종가기준 이동평균 계산
        data['3-Day MA'] = data['Close'].rolling(window=3).mean()

        # 5일 종가기준 이동평균 계산
        data['5-Day MA'] = data['Close'].rolling(window=5).mean()

        # 20일 종가기준 이동평균 계산
        data['20-Day MA'] = data['Close'].rolling(window=20).mean()

        # 데이터프레임을 엑셀 파일로 저장합니다.
        data.to_excel(file_name, sheet_name=ticker)
        print(f"Data for {ticker} saved to {file_name}")
    except Exception as e:
        print(f"An error occurred: {e}")

# 사용자로부터 티커 입력 받기
ticker_symbol = input("Enter the stock ticker symbol (e.g., AAPL for US stocks or 005930 for Korean stocks): ")

# 한국 주식이면 KOSPI/KOSDAQ 형식으로 변경
if ticker_symbol.isdigit() and len(ticker_symbol) == 6:
    # KOSPI로 가정하고 .KS 추가 (필요에 따라 .KQ로 변경 가능)
    ticker_symbol += ".KS"

# 파일 이름 생성
file_name = f"{ticker_symbol}_historical_data2.xlsx"

# 주가 데이터를 엑셀로 저장
save_stock_data_to_excel(ticker_symbol, file_name)

KODEX 200 티커인 069500 입력

엑셀로 추가 테스트

위 파이썬 프로그램으로 받은 엑셀파일에서 양봉 시에 종가로 매수하고 다음날 시가에 매도하는 백테스트를 해보았습니다. 
다음에는 프로그램을 수정해서 바로 나올 수 있게 하면 될 것 같습니다.

백테스트 결과

2017년 1월 29일~2024년 9월 27일 데이터에 대한 수행결과

누적수익률 : 2.78배(수수료 적용 X)
바이 앤 홀드 : 2.65배

결론

KODEX 200에는 먹히지 않는 전략

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형