XNO API Library for Financial Data
Project description
XNO API Library
XNO API is a Python package for retrieving financial data and performing quantitative analysis, specifically optimized for the Vietnamese financial market. It provides a clean, modular interface to access data on stocks, derivatives, and backtesting tools for PnL and performance metrics.
📌 Key Features
- 🔎 Simple interface to retrieve real-time and historical data for Vietnamese stocks and derivatives
- 📈 Built-in support for performance metrics: Sharpe, Sortino, Max Drawdown, and more
- 📊 Optimized PnL backtesting tools for derivatives with Vietnam-specific fee structures
- 🧪 Compatible with pandas, NumPy for custom strategies and analysis
- 🖼️ Easily extensible for visual output of strategies and metrics
📦 Installation
Install via pip:
pip install xnoapi
Or clone this repo:
git clone https://github.com/xnoproject/xnoapi.git
pip install ./xnoapi
After installation:
from xnoapi import client
from xnoapi.vn.data import stocks, derivatives
from xnoapi.vn.metrics import Metrics, Backtest_Derivates
client(apikey="your_api_key")
📚 Documentation
- Online Docs: https://xnoapi.readthedocs.io
- 📄 PDF version
🚀 Usage Example
Retrieve and analyze Vietnamese stock & derivative data:
from xnoapi import client
from xnoapi.vn.data import stocks, derivatives
client(apikey="your_api_key")
# List of liquid stocks
stocks.list_liquid_asset()
# Historical data for VIC (Vingroup)
vic = stocks.get_hist("VIC", "1D")
# Historical data for VN30F1M derivative
vn30f1m = derivatives.get_hist("VN30F1M", "1m")
🧠 Available Modules
📊 Financial Data
-
xnoapi.vn.data.stockslist_liquid_asset(): List of high-liquidity Vietnamese stocks.get_hist(asset, frequency): Historical OHLCV data.
-
xnoapi.vn.data.derivativesget_hist(asset, frequency): Derivative market data (e.g., VN30F1M).
📈 Metrics & Analytics
xnoapi.vn.metrics.Metrics:- Includes: Sharpe Ratio, Sortino Ratio, Max Drawdown, Avg Gain/Loss, Hit Ratio...
xnoapi.vn.metrics.Backtest_Derivates:- Backtesting logic for trading strategies with support for fee modeling.
🧪 Examples
Strategy Evaluation with Metrics
from xnoapi.vn.metrics import Metrics, Backtest_Derivates
from xnoapi.vn.data import derivatives
import numpy as np
def gen_position(df):
# Volume-based signal generation
return df.assign(
position=np.sign(df["Close"] - df["Close"].rolling(20).median())
)
# Get 1-minute historical data
df = derivatives.get_hist("VN30F1M", "1m")
df_pos = gen_position(df)
# Run backtest
backtest = Backtest_Derivates(df_pos, pnl_type="raw")
metrics = Metrics(backtest)
# Print Sharpe Ratio
print(metrics.sharpe())
# Plot PNL
backtest.daily_PNL().plot()
🤝 Credits
Maintained by the XNO Team.
Special thanks to contributors and financial data providers supporting the Vietnamese retail quant community.
📄 License
This project is licensed under the MIT License.
See LICENSE for full details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xnoapi-0.1.15.tar.gz.
File metadata
- Download URL: xnoapi-0.1.15.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44502ee7a02bcdbf43ff08b080c267f4202dd5657c88ccafec103f4a900766b8
|
|
| MD5 |
38e2f79b354a7f6633767a3aab8806ce
|
|
| BLAKE2b-256 |
0471f9e2837f790ef1a0a38192db9add498bf66490f99568be322f665a69e9f2
|
File details
Details for the file xnoapi-0.1.15-py3-none-any.whl.
File metadata
- Download URL: xnoapi-0.1.15-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71ddd8ca032ec88f0a4183cfdab3ecd7096524831cea84de9cc6150757783ccb
|
|
| MD5 |
8768096440b7bc990b7b8edbcdb2fc74
|
|
| BLAKE2b-256 |
a9e810d903333abe7b06b4a6f3993f2f4b8c8c9688985fd148bc8a72fc9180f6
|