Teknik Analiz Dünyasına Hoşgeldiniz.

Paylaşmak ◄ ► Güzeldir

DİKKAT: Formüller, Sistemler eğitim amaçlıdır. Alım satım, olası anapara kaybı ve diğer kayıplar dahil olmak üzere "YÜKSEK RİSK" içerir.

Yayından kaldırmak istediğiniz formüller için algoritmabul@gmail.com ile iletişime geçebilirsiniz...

twitter adresim https://x.com/algoritmabul telegram adresimhttps://t.me/algoritmabul

  • DİKKAT: Formüller, Sistemler sadece eğitim amaçlıdır. Alım satım, olası anapara kaybı ve diğer kayıplar dahil olmak üzere "YÜKSEK RİSK" içerir.

ML - Python Vektör - Bileşke Trend Yönü Analizi

Machine Learning Algorithms - Makine Öğrenimi Algoritmaları BORSA

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
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 KuvvetiDestek 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

AnalizVektörle İlişkiKullanım Amacı
TrendYön ve BüyüklükYukarı, Aşağı veya Yatay trend belirleme
MomentumHı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
MABileşenUzun ve kısa vadeli trendleri analiz et
Destek-DirençKuvvet DengesiDirenç/destek kırılmalarını belirle
BileşkeToplam KuvvetTü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}")
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap