📌 Doji(도지)란?
2025. 4. 1. 15:26ㆍPYTHON
반응형
**Doji(도지)**는 금융 차트에서 등장하는 캔들 패턴으로,
시가(Open)와 종가(Close)가 거의 같아 몸통이 짧거나 없는 캔들을 의미합니다.
즉, 매수세와 매도세가 팽팽하게 맞선 상태를 나타냅니다.
🔎 Doji 패턴을 판별하는 기본 조건
✅ 시가(Open)와 종가(Close)의 차이가 매우 작아야 함
✅ 위꼬리(High - max(Open, Close)) 또는 아래꼬리(min(Open, Close) - Low)가 길 수 있음
✅ 일반적으로 시가와 종가의 차이가 전체 캔들 길이 대비 5~10% 이내일 때 Doji로 판별
📌 Python에서 Doji 패턴 추출하는 방법
1️⃣ Pandas를 사용한 간단한 Doji 탐지
import pandas as pd
# 예제 데이터 생성
data = {
'Open': [100, 105, 110, 108, 107],
'High': [110, 112, 115, 112, 109],
'Low': [95, 102, 105, 100, 106],
'Close': [100.5, 105.2, 110.1, 108.2, 107.1]
}
df = pd.DataFrame(data)
# Doji 조건 설정 (종가와 시가 차이가 전체 캔들 길이의 5% 이하)
df['CandleLength'] = df['High'] - df['Low']
df['BodyLength'] = abs(df['Close'] - df['Open'])
df['Doji'] = df['BodyLength'] / df['CandleLength'] <= 0.05 # 몸통이 전체 캔들 길이의 5% 이하
# Doji 패턴이 있는 행 출력
print(df[df['Doji']])
✅ 결과: Doji가 발생한 날짜만 출력됩니다.
2️⃣ TA-Lib을 활용한 Doji 탐지
TA-Lib은 금융 데이터 분석을 위한 강력한 라이브러리입니다.
pip install ta-lib
import talib
import numpy as np
# 예제 데이터
open_prices = np.array([100, 105, 110, 108, 107], dtype=float)
high_prices = np.array([110, 112, 115, 112, 109], dtype=float)
low_prices = np.array([95, 102, 105, 100, 106], dtype=float)
close_prices = np.array([100.5, 105.2, 110.1, 108.2, 107.1], dtype=float)
# TA-Lib을 이용해 Doji 패턴 감지
doji_signals = talib.CDLDOJI(open_prices, high_prices, low_prices, close_prices)
# 결과 출력 (1이면 Doji 발생, 0이면 Doji 아님)
print(doji_signals)
✅ 결과: 1 값이 나오는 위치가 Doji 발생 지점입니다.
3️⃣ pandas_ta를 사용한 Doji 탐지
pandas_ta 라이브러리는 Pandas와 호환되는 기술적 분석 라이브러리입니다.
설치 방법:
pip install pandas_ta
import pandas as pd
import pandas_ta as ta
# 예제 데이터
data = {
'open': [100, 105, 110, 108, 107],
'high': [110, 112, 115, 112, 109],
'low': [95, 102, 105, 100, 106],
'close': [100.5, 105.2, 110.1, 108.2, 107.1]
}
df = pd.DataFrame(data)
# pandas_ta를 활용한 Doji 감지
df.ta.cdl_doji(append=True)
# Doji가 감지된 행 출력
print(df[df['CDL_DOJI'] != 0])
✅ 결과: CDL_DOJI 값이 0이 아닌 경우 Doji 발생!
✅ 결론
📌 Doji 패턴을 감지하는 방법은 여러 가지가 있으며,
Pandas, TA-Lib, pandas_ta 등의 라이브러리를 활용하면 쉽게 추출할 수 있습니다.
🚀 추천:
- 초보자 → Pandas로 직접 계산
- 빠른 분석 → TA-Lib
- Pandas와 호환 → pandas_ta
👉 Doji 패턴을 활용해 매매 전략을 세워보세요! 📊🔥
'PYTHON' 카테고리의 다른 글
FPDF란 무엇인가? (0) | 2025.05.09 |
---|---|
일단위 DB백업진행 (0) | 2025.04.09 |
✅ 서비스 중지 없이 MySQL 대용량 데이터(80GB) 동기화하는 방법 (1) | 2025.03.23 |
[PYTHON]asyncio: 파이썬 비동기 프로그래밍 완벽 가이드 (0) | 2025.02.27 |
[PYTHON]나만의 차트 및 데이터 추출방법 (TSI/SMI) (8) (0) | 2025.01.10 |