Skip to content

Quick Start

Stock Data

from financelib import Stock

# Search for a stock by name or symbol
result = Stock.search_stock("Garanti")
print(result)

# Get real-time price with colored terminal output
Stock.get_live_stock_state("THYAO.IS")

# Get historical data as a DataFrame
stock = Stock("THYAO.IS")
df = stock.get_historical_data(period="3mo", interval="1d")
print(df.tail())

# Access common BIST stocks
print(Stock.COMMON_STOCKS)

Technical Analysis

from financelib import Stock
from financelib.trading.algo_trade import rsi, macd, sma, bollinger_bands

stock = Stock("THYAO.IS")
df = stock.get_historical_data(period="6mo")
close = df["Close"]

# Calculate indicators
rsi_values = rsi(close, period=14)
macd_line, signal_line = macd(close)
upper, middle, lower = bollinger_bands(close)
moving_avg = sma(close, period=50)

print(f"RSI: {rsi_values.iloc[-1]:.2f}")
print(f"MACD: {macd_line.iloc[-1]:.4f}")

News

from financelib import NewsAPIQuery

# Requires NEWS_API_APIKEY environment variable
query = NewsAPIQuery()
articles = query.search_articles("Bitcoin", sources_from_ids=["bbc-news"])
for article in articles:
    print(article["title"])

Database Storage

from financelib.database.sqlite import SQLite
from financelib.database.models import NewsModel

with SQLite("my_data") as db:
    article = NewsModel(
        title="BIST Rallies",
        content="Turkish stocks surged today...",
        source="Bloomberg",
    )
    db.insert_article(article)

    results = db.fetchall("SELECT * FROM news")
    print(results)

Configure Logging

import logging
from financelib import setup_logging

# Enable debug logging
setup_logging(level=logging.DEBUG)