- Katılım
- 23 Eki 2020
- Mesajlar
- 1,823
1. Trend Yönü ve Hareket Gücü
Vektör Kavramı → Fiyat Hareketi (Trend)
- Bir hisse senedi fiyatı belirli bir yönde (yukarı, aşağı veya yatay) hareket eder. Bu, vektör mantığına çok benzer.
- Fiyatın yönü (trend yönü) ve fiyatın değişim miktarı (büyüklük) vektörel bir düşünce tarzıyla analiz edilebilir.
- Örneğin, fiyat 5 gün boyunca her gün 2 TL artarsa, bu hareket yukarı doğru bir vektör olarak düşünülebilir.
- Yön belirleme:
- Eğer bir hisse fiyatı yukarı yönlü bir trenddeyse, bu, vektörlerin yukarı yönlü toplam etkisine benzer.
- Eğer bir hisse fiyatı aşağı yönlü bir trenddeyse, bu, vektörlerin aşağı yönlü etkisine benzer.
- Kullanılan göstergeler:
- Trend Çizgileri: Fiyat hareketlerini belirli bir açıyla gösteren çizgilerdir. Bu çizgiler vektörlerin yönüne benzer.
- Hareketli Ortalamalar (MA, EMA): Hareketli ortalama, fiyatın belirli bir süre boyunca genel yönünü (trendi) belirler. Hareketli ortalamalar yükseliyorsa, fiyat yukarı doğru bir "vektör" oluşturur.
2. Momentum ve İvme (Acceleration)
Vektör Kavramı → Momentum ve İvme
- Momentum, bir varlığın hızla yükselip yükselmediğini veya düşüp düşmediğini belirler. Bu, kuvvetin bir cisme etki etmesiyle kazandığı hızlanma (fizikteki ivme) gibidir.
- Fiyat artışı veya düşüşü hızlandığında, bu değişim vektörlerin birleşik etkisine benzer.
- Örneğin, hisse fiyatı 10 TL’den 15 TL’ye 2 günde çıkarsa, bu güçlü bir yukarı yönlü ivme (momentum) anlamına gelir.
- Kullanılan göstergeler:
- Momentum Göstergesi (Momentum Indicator): Fiyatın belirli bir süre içindeki değişim hızını ölçer. Eğer momentum pozitifse, yukarı yönlü bir vektörel hareket var demektir.
- Göreceli Güç Endeksi (RSI): RSI, bir varlığın aşırı alınıp satılmasını değerlendirir ve bu da "yukarı/aşağı vektörlerin" net etkisini gösterebilir.
- Hızlanma (Acceleration) Göstergeleri: Fiyat değişim hızının artıp artmadığını (ivmeyi) gösterir.
- Örneğin, fiyat 3 gün boyunca 2 TL, 4 TL ve 6 TL artarsa, bu artışın hızlandığı anlamına gelir.
3. Destek ve Direnç Seviyeleri
Vektör Kuvveti → Destek ve Direnç
- Kuvvetlerin birbirine karşı dengelenmesi kavramı, destek ve direnç seviyeleriyle ilişkilendirilebilir.
- Eğer bir fiyat bir "direnç seviyesine" (örneğin 100 TL) ulaşırsa, bu, yukarı doğru bir kuvvetin (alıcıların gücü) aşağı doğru bir kuvvetle (satıcıların gücü) dengelendiği bir noktadır.
- Direnç kırılamadığında, yukarı yönlü kuvvet yetersiz kalır ve fiyat aşağı düşer.
- Destek seviyesi ise fiyatın düştüğünde alıcı kuvvetlerin devreye girerek fiyatı yukarı çektiği noktadır.
- Kullanılan göstergeler:
- Destek ve Direnç Çizgileri: Bu çizgiler, fiyatın karşılaştığı "kuvvet" olarak düşünülebilir. Eğer destek seviyesi kırılırsa, bu, aşağı yönlü kuvvetin (satış baskısının) galip geldiği anlamına gelir.
- Fibonacci Geri Çekilme Düzeyleri: Belirli seviyelerde destek/direnç bulmak için kullanılır. Bu seviyeler, fiyatın "denge noktasını" belirler.
4. Vektörlerin Bileşenleri ile İlişkilendirme
Vektör Bileşenleri → Çoklu Göstergelerle Karar Verme
- Fiyatın yönünü belirlemek için genellikle birden fazla gösterge (örneğin, RSI, MACD, EMA) kullanılır.
- Bu göstergeler, birbiriyle bağlantılı farklı bileşenlerdir. Tıpkı bir vektörün x ve y bileşenleri gibi, bu göstergelerin bir araya gelmesiyle net bir "trend yönü" belirlenir.
- Kullanılan göstergeler:
- MACD (Hareketli Ortalama Yakınsama Iraksama): Fiyat trendinin yönünü gösterir. Sinyal hattı ile MACD hattı arasındaki fark bir "momentum" bileşeni olarak düşünülebilir.
- Hareketli Ortalama Bileşenleri: 20 günlük, 50 günlük ve 200 günlük hareketli ortalamalar, kısa, orta ve uzun vadeli trendlerin "bileşenleri" olarak düşünülebilir.
5. Vektörlerin Toplanması ile İlişkilendirme
Vektör Toplamı → Fiyatın Net Hareketi
- Piyasa verileri üzerinde birden fazla etki (örneğin haber, faiz oranları, yatırımcı duygusu) olabilir.
- Bu etkiler vektörel kuvvetler gibi düşünülebilir ve fiyat üzerinde bir bileşke etki oluştururlar.
- Eğer piyasa olumlu bir haber alırsa (örneğin, iyi finansal rapor), yukarı yönlü bir vektörel kuvvet oluşur.
- Ancak, aynı anda olumsuz bir gelişme (örneğin, faiz artırımı) olursa, bu aşağı yönlü bir kuvvet ekler.
- Sonuç: Bu kuvvetlerin bileşimi net fiyat hareketini oluşturur.
- Kullanılan göstergeler:
- Haberlerin Etkisi: Beklenmedik haberlerin (örneğin, faiz oranı değişikliği) fiyat üzerindeki etkisi yukarı/aşağı kuvvet olarak düşünülebilir.
- Gösterge Kombinasyonları: Örneğin, RSI aşırı alım sinyali verirken, MACD alım sinyali verirse, bu iki sinyalin bileşeni yukarı yönlü bir hareketi temsil eder.
Analiz Özeti
Analiz | Vektörle İlişki | Kullanım Amacı |
---|---|---|
Trend | Yön ve Büyüklük | Yukarı, Aşağı veya Yatay trend belirleme |
Momentum | Hız (V) | Fiyatın hızını ölçmek (yükseliş/düşüş) |
İvme | İvme (a) | Fiyat değişim hızının değişimi |
MA | Bileşen | Uzun ve kısa vadeli trendleri analiz et |
Destek-Direnç | Kuvvet Dengesi | Direnç/destek kırılmalarını belirle |
Bileşke | Toplam Kuvvet | Tüm sinyalleri birleştirerek karar ver |
Kod:
import os
import pandas as pd
# 1️⃣ Dosya dizini
directory_path = r'D:\new\isyatirim\isyatirim'
# 2️⃣ Tüm CSV dosyalarını al
csv_files = [os.path.join(directory_path, file) for file in os.listdir(directory_path) if file.endswith(('.csv', '.CSV'))]
# 3️⃣ Son üç gününde Composite_Trend = 1 olanları tutacak boş bir DataFrame oluştur
final_results = pd.DataFrame()
# 4️⃣ Her bir CSV dosyasını sırayla işle
for file in csv_files:
try:
df = pd.read_csv(file, encoding='ISO-8859-1')
df.columns = df.columns.str.strip() # Kolon isimlerinin başındaki/sonundaki boşlukları kaldır
# === 1. Trend Yönü Analizi (Günlük değişim) ===
df['Trend'] = df['Close'].diff()
df['Trend_Direction'] = df['Trend'].apply(lambda x: 1 if x > 0 else (-1 if x < 0 else 0))
# === 2. Momentum (10 günlük) ===
df['Momentum'] = df['Close'] - df['Close'].shift(10)
# === 3. İvme (Acceleration) (Momentum değişimi) ===
df['Acceleration'] = df['Momentum'].diff()
# === 4. Hareketli Ortalama (MA) (20 ve 50 günlük) ===
df['MA_20'] = df['Close'].rolling(window=20).mean()
df['MA_50'] = df['Close'].rolling(window=50).mean()
df['MA_Direction'] = df['MA_20'] - df['MA_50']
df['MA_Direction_Signal'] = df['MA_Direction'].apply(lambda x: 1 if x > 0 else (-1 if x < 0 else 0))
# === 5. Destek ve Direnç Seviyeleri (20 günlük) ===
df['Resistance'] = df['High'].rolling(window=20).max()
df['Support'] = df['Low'].rolling(window=20).min()
# Destek veya direnç kırıldığında sinyal üret
df['Breakout'] = df.apply(lambda row: 'Resistance Break' if row['Close'] > row['Resistance']
else ('Support Break' if row['Close'] < row['Support'] else 'No Break'), axis=1)
# === 6. Composite Trend Hesaplama (Trend_Direction + MA_Direction_Signal) ===
df['Composite_Trend'] = df['Trend_Direction'] + df['MA_Direction_Signal']
df['Composite_Trend'] = df['Composite_Trend'].apply(lambda x: 1 if x > 0 else (-1 if x < 0 else 0))
# === 7. Son üç gününü kontrol et ===
last_rows = df.iloc[-3:].copy() # Son üç satırı al
last_rows['Source_File'] = os.path.basename(file) # Dosya ismini ekle
# Son üç günde Composite_Trend = 1 olanları filtrele (Son üç günün her üçü de 1 olacak)
if (last_rows['Composite_Trend'] == 1).all():
final_results = pd.concat([final_results, last_rows], ignore_index=True)
except Exception as e:
print(f"Hata: {file} dosyası işlenirken bir sorun oluştu. Hata: {e}")
# 8️⃣ Sonuçları Excel dosyasına kaydet
excel_output_path = 'D:\\new\\vektor\\final_results_last_three_days.xlsx'
final_results.to_excel(excel_output_path, index=False)
print(f"Sonuçlar başarıyla kaydedildi: {excel_output_path}")