Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -13,33 +13,39 @@ TALIB_PATTERNS = sorted([name for name in dir(talib) if name.startswith("CDL")])
|
|
| 13 |
def clean_ohlc(df):
|
| 14 |
"""
|
| 15 |
OHLC verisini TA-Lib için temizle:
|
| 16 |
-
-
|
| 17 |
-
-
|
| 18 |
-
-
|
|
|
|
| 19 |
"""
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
if not isinstance(df.index, pd.DatetimeIndex):
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
df['Date'] = pd.to_datetime(df['Date'])
|
| 35 |
-
df = df.set_index('Date')
|
| 36 |
-
except Exception:
|
| 37 |
-
pass
|
| 38 |
-
# Son kontrol
|
| 39 |
if len(df) == 0:
|
| 40 |
raise ValueError("Veri temizlendikten sonra boş kaldı.")
|
| 41 |
return df
|
| 42 |
|
|
|
|
| 43 |
def find_candlestick_patterns(df, pattern_name):
|
| 44 |
"""
|
| 45 |
Verilen formasyon adını kullanarak grafikte işaretleme yapan fonksiyon.
|
|
|
|
| 13 |
def clean_ohlc(df):
|
| 14 |
"""
|
| 15 |
OHLC verisini TA-Lib için temizle:
|
| 16 |
+
- Sütun isimlerini normalize eder (büyük-küçük farkı önemsiz)
|
| 17 |
+
- Open/High/Low/Close sütunlarını numeric'e çevirir
|
| 18 |
+
- NaN içeren satırları atar
|
| 19 |
+
- Index'i DatetimeIndex'e çevirir
|
| 20 |
"""
|
| 21 |
+
# Tüm sütun adlarını lowercase yap
|
| 22 |
+
df.columns = [c.lower() for c in df.columns]
|
| 23 |
+
|
| 24 |
+
# bazen 'adj close' falan da gelir, onları göz ardı ediyoruz
|
| 25 |
+
required = ['open', 'high', 'low', 'close']
|
| 26 |
+
for col in required:
|
| 27 |
+
if col not in df.columns:
|
| 28 |
+
raise ValueError(f"Veri setinde '{col}' sütunu yok. Mevcut: {list(df.columns)}")
|
| 29 |
+
|
| 30 |
+
# sadece gerekli sütunları al
|
| 31 |
+
df = df[required].copy()
|
| 32 |
+
|
| 33 |
+
# numeric dönüşüm
|
| 34 |
+
df = df.apply(pd.to_numeric, errors='coerce')
|
| 35 |
+
|
| 36 |
+
# eksikleri at
|
| 37 |
+
df = df.dropna(subset=required)
|
| 38 |
+
|
| 39 |
+
# index datetime değilse düzelt
|
| 40 |
if not isinstance(df.index, pd.DatetimeIndex):
|
| 41 |
+
df.index = pd.to_datetime(df.index, errors='coerce')
|
| 42 |
+
df = df.dropna(subset=['open', 'high', 'low', 'close'])
|
| 43 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
if len(df) == 0:
|
| 45 |
raise ValueError("Veri temizlendikten sonra boş kaldı.")
|
| 46 |
return df
|
| 47 |
|
| 48 |
+
|
| 49 |
def find_candlestick_patterns(df, pattern_name):
|
| 50 |
"""
|
| 51 |
Verilen formasyon adını kullanarak grafikte işaretleme yapan fonksiyon.
|