Skip to main content

Core Python SDK for technical analysis — OHLCV data, indicators, pattern detection, screening, and risk assessment.

Project description

motosan-ta-sdk

CI PyPI Python License: MIT

Core Python SDK for technical analysis — 20 indicators, pattern detection, screening, and risk assessment. Strict parity with pandas-ta reference vectors.

Installation

pip install motosan-ta-sdk

# With disk caching support
pip install motosan-ta-sdk[cache]

Quick Start

from ta_sdk import YFinanceProvider, sma, ema, rsi, macd, atr, check_stage2, detect_vcp

provider = YFinanceProvider()
ohlcv = provider.get_ohlcv("AAPL", period="1y", interval="1d")
df = ohlcv.df

# Indicators
sma_50 = sma(df["close"], 50)
ema_21 = ema(df["close"], 21)
rsi_14 = rsi(df["close"], 14)
macd_line, signal, hist = macd(df["close"])
atr_14 = atr(df["high"], df["low"], df["close"], 14)

# Screen for Stage 2 trend
result = check_stage2(df)
print(f"Stage 2: {result['passes']} ({result['score']}/{result['max_score']})")

# Detect VCP pattern
vcp = detect_vcp(df)
print(f"VCP: {vcp.detected} (confidence: {vcp.confidence:.0%})")

Indicators (20 total)

Moving Averages (7): SMA, EMA, KAMA, DEMA, TEMA, HMA, SMMA Momentum (10): RSI, MACD, Stochastic, CCI, Williams %R, MFI, ROC, Aroon, TSI, Fisher Transform, TRIX Volatility (6): ATR, Bollinger Bands, ADX, Keltner Channels, Donchian Channels, Supertrend Volume (2): OBV, CMF

All indicators use SMA-seeded EMA / Wilder's RMA to match pandas-ta output.

Top-Level Exports

from ta_sdk import (
    # Data
    OHLCVData, Quote, PatternResult, AnalysisReport,
    YFinanceProvider, BinanceProvider, MultiProvider,
    # Indicators — Moving Averages
    sma, ema, kama, dema, tema, hma, smma,
    # Indicators — Momentum
    rsi, macd, aroon, tsi, fisher_transform, trix,
    # Indicators — Volatility
    atr, bollinger_bands,
    # Indicators — Volume
    obv, cmf,
    # Screeners
    check_stage2, check_entry_signal,
    # Patterns
    detect_vcp, detect_cup_handle, detect_double_bottom,
    # Analysis
    analyze_stock,
)

Additional indicators available via direct module import:

from ta_sdk.indicators.momentum import stochastic, cci, roc, williams_r, mfi
from ta_sdk.indicators.volatility import adx, keltner, donchian, supertrend

Module Overview

Module Description Key Exports
data Data providers, models, caching YFinanceProvider, BinanceProvider, MultiProvider, CachedProvider
indicators.moving_averages Moving averages sma, ema, kama, dema, tema, hma, smma
indicators.momentum Momentum oscillators rsi, macd, stochastic, cci, roc, williams_r, mfi, aroon, tsi, fisher_transform, trix
indicators.volatility Volatility & trend atr, bollinger_bands, adx, keltner, donchian, supertrend
indicators.volume Volume indicators obv, cmf
screeners Stock screening criteria check_stage2, check_entry_signal
patterns Chart pattern detection detect_vcp, detect_cup_handle, detect_double_bottom
analysis Full analysis & reports analyze_stock
risk Risk management calc_position_size, calc_rr_ratio

Data Providers

Provider Class Markets API Key
Yahoo Finance YFinanceProvider US, TW Not required
Binance BinanceProvider Crypto Not required
FMP FMPProvider US (fundamentals) Required
Multi MultiProvider Auto-routed --
Cached CachedProvider Wraps any provider --

MultiProvider

Routes symbols to the correct provider automatically based on symbol format:

from ta_sdk import YFinanceProvider, BinanceProvider, MultiProvider
from ta_sdk.data.models import Market

multi = MultiProvider()
multi.register(Market.US, YFinanceProvider())
multi.register(Market.TW, YFinanceProvider())
multi.register(Market.CRYPTO, BinanceProvider())

multi.get_ohlcv("AAPL")      # Auto-detected as US
multi.get_ohlcv("2330.TW")   # Auto-detected as TW
multi.get_ohlcv("BTCUSDT")   # Auto-detected as Crypto

CachedProvider

Wraps any DataProvider with disk-based caching. Requires the [cache] extra.

from ta_sdk.data.cached_provider import CachedProvider

cached = CachedProvider(
    provider=YFinanceProvider(),
    cache_dir=".ta_cache",
    ohlcv_ttl=3600,   # 1 hour
    quote_ttl=60,      # 1 minute
)
ohlcv = cached.get_ohlcv("AAPL")

Supported Markets

Market Example Symbol Provider Currency Timezone
US Stocks AAPL YFinance USD America/New_York
TW Stocks 2330.TW YFinance TWD Asia/Taipei
Crypto BTCUSDT Binance USDT UTC

Requirements

  • Python >= 3.12
  • pandas >= 2.2
  • numpy >= 1.26
  • yfinance >= 0.2.36
  • python-binance >= 1.0.19
  • requests >= 2.31
  • diskcache >= 5.6 (optional, for [cache] extra)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

motosan_ta_sdk-0.4.1.tar.gz (37.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

motosan_ta_sdk-0.4.1-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file motosan_ta_sdk-0.4.1.tar.gz.

File metadata

  • Download URL: motosan_ta_sdk-0.4.1.tar.gz
  • Upload date:
  • Size: 37.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for motosan_ta_sdk-0.4.1.tar.gz
Algorithm Hash digest
SHA256 212214325f6924e882b3e66881e394e70cc7654b5c1186a37e7d8b11df02d04f
MD5 e252af4ddce5c919db64f9d03fbdcd8b
BLAKE2b-256 159fb2d635b557c01704e13d5cb5c6c05e1e07036587c6606503cfa2b7c35bcb

See more details on using hashes here.

File details

Details for the file motosan_ta_sdk-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: motosan_ta_sdk-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for motosan_ta_sdk-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 664ff3267da88242b76a76b3777ae7c8dff34993a809ff61c787dcc0355e3167
MD5 197e458e53a0459fa1520b5be1b48e07
BLAKE2b-256 632c69944287b93fea68b6ddd9f239a7e0ef2529721a7545e62e1b6b90a85595

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page