| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Hey there, Trader! 👋 Ready to connect your Python apps to the TradeStation universe? This library makes it easy-peasy.
Think of it as your friendly Pythonic remote control for TradeStation's API. Build trading bots, analyze data, manage your account – all with clean, asynchronous Python code.
Open your terminal and let's get this library installed.
# Option 1: Install directly from PyPI (Easiest 🌟)
pip install tradestation-api-python
# Option 2: Clone the project (for developers)
git clone https://github.com/mxcoppell/tradestation-api-python.git
cd tradestation-api-python
# Then install using Poetry (Recommended for development ✨)
poetry install
# OR: Use pip if you prefer
# pip install -e .Let's fetch a stock quote right now!
cp .env.sample .env
# Now edit .env with your details!import asyncio
import os
from dotenv import load_dotenv
from src.client.tradestation_client import TradeStationClient
async def get_a_quote():
# Load secrets from .env file
load_dotenv()
print(f"Using Environment: {os.getenv('ENVIRONMENT')}")
# Create the client (it reads your .env automatically!)
client = TradeStationClient()
try:
print("Asking TradeStation for an AAPL quote...")
# Use the market data service to get a quote snapshot
quote_response = await client.market_data.get_quote_snapshots("AAPL")
if quote_response and quote_response.Quotes:
aapl_price = quote_response.Quotes[0].Last
print(f"----> Got it! AAPL last price: ${aapl_price}")
else:
print("Hmm, couldn't get the quote. Error:", getattr(quote_response, 'Errors', 'Unknown error'))
except Exception as e:
print(f"Whoops! Something went wrong: {e}")
finally:
print("Closing the connection.")
# Always close the client when you're finished!
await client.close()
if __name__ == "__main__":
asyncio.run(get_a_quote())Want more? Check out the examples/QuickStart directory for scripts you can run immediately!
Curious how it's organized?
.
├── docs/ # You are here! (Hopefully useful docs)
├── examples/ # Ready-to-run example scripts!
│ ├── QuickStart/ # Start here!
│ ├── Brokerage/ # Account & order history examples
│ ├── MarketData/ # Price, quote, & symbol examples
│ └── OrderExecution/ # Placing & managing orders examples
└── src/ # The heart of the library
├── client/ # The main TradeStationClient
├── services/ # API sections (MarketData, Brokerage, etc.)
├── streaming/ # WebSocket streaming code
├── ts_types/ # Data models (Pydantic types)
└── utils/ # Helpers (Auth, Rate Limiting, etc.)
The library needs your API keys to talk to TradeStation. The easiest way is the .env file (shown in Quick Start).
Other ways:
client = TradeStationClient({
"client_id": "your_id",
"refresh_token": "your_token",
"environment": "Simulation"
})client = TradeStationClient(
refresh_token="your_token",
environment="Live" # CLIENT_ID still needs to be in env or config
)See Authentication Guide for the full scoop.
Ready for more details?
Got ideas or found a bug? Feel free to open an issue or submit a pull request!
This project is licensed under the MIT License - see the LICENSE file for details.
Happy Trading! 🎉
| Back | FazBrowse Home | New Git URL |