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.5.0.tar.gz (58.6 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.5.0-py3-none-any.whl (49.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: motosan_ta_sdk-0.5.0.tar.gz
  • Upload date:
  • Size: 58.6 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.5.0.tar.gz
Algorithm Hash digest
SHA256 1135ec356a2a14a27f895f674a7da2972a0388d282b77e9a2ebf621c046bd183
MD5 66b2b5ddfcd84158b40d516adfc239a6
BLAKE2b-256 168ae967f5972c7bb186e7cbff07b0586189449b120f82aa545e0e88aed4f940

See more details on using hashes here.

File details

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

File metadata

  • Download URL: motosan_ta_sdk-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 49.5 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e741df1466c739ae9189e93455b96ac117dcf17146a42c4ab21dd537ccff056
MD5 733faa0f06e6d01b12adfbcb589d6d00
BLAKE2b-256 f2f066472e3156796a2bd9ea05abb20500414e6fa3661a53e4e64a31d3a3d5f6

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