Metadata-Version: 2.4
Name: alphasquared-py
Version: 0.3.1
Summary: The unofficial Python client for the AlphaSquared API
Home-page: https://github.com/rhettre/alphasquared-py
Author: Rhett Reisman
Author-email: rhett@rhett.blog
License: MIT
Keywords: alphasquared,coinbase,gemini,kraken,orderbook,trade,bitcoin,ethereum,BTC,ETH,client,api,wrapper,exchange,crypto,currency,trading,trading-api,fear-and-greed-index
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# AlphaSquared Python Client

This is an unofficial Python client for the AlphaSquared API. It allows users to interact with the API to retrieve asset information, strategy values, and hypothetical data for cryptocurrency trading.

## Features

- Easy-to-use Python wrapper for the AlphaSquared API
- Supports authentication using API tokens
- Implements rate limiting to comply with API usage rules
- Provides methods to retrieve asset information, strategy values, and hypothetical data
- Includes error handling and logging functionality
- Fetch comprehensive asset data (price, risk, market cap, etc.)
- Get custom strategy values
- Built-in caching to reduce API calls
- Automatic rate limiting to comply with API rules
- Configurable logging with debug mode for development

## Installation

Install the package using pip:

```bash
pip install alphasquared-py
```

## Authentication

To use the AlphaSquared API, you need to obtain an API token from your AlphaSquared account dashboard. Once you have your token, you can authenticate as follows:

```python
from alphasquared import AlphaSquared

api = AlphaSquared("YOUR_API_TOKEN")
```

You can also enable debug mode for more detailed logging during development:

```python
api = AlphaSquared("YOUR_API_TOKEN", debug=True)
```

## Usage

### Retrieving Asset Information

```python
btc_info = api.get_asset_info("BTC")
print(btc_info)
```

### Getting Strategy Values

```python
strategy_values = api.get_strategy_values("My Custom Strat")
print(strategy_values)
```

### Fetching Hypothetical Data

```python
eth_hypotheticals = api.get_hypotheticals("ETH")
print(eth_hypotheticals)
```

### Fetching Comprehensive Asset Data

```python
btc_comprehensive = api.get_comprehensive_asset_data("BTC")
print(btc_comprehensive)
```

### Getting Strategy Action and Value for a Specific Risk Level

```python
action, value = api.get_strategy_value_for_risk("My Custom Strat", 50)
print(f"Action: {action}, Value: {value}")
```

### Getting Current Risk Level

```python
current_risk = api.get_current_risk("BTC")
print(current_risk)
```

### Getting Strategy Action and Value Based on Current Risk

This example demonstrates how to get the current risk for an asset, then use that risk level to determine the strategy action and value:

```python
# Get the current risk for BTC
btc_risk = api.get_current_risk("BTC")
print(f"Current BTC Risk: {btc_risk}")

# Define your strategy name in AlphaSquared
strategy_name = "My Custom Strat"

# Get the strategy action and value for the current risk
action, value = api.get_strategy_value_for_risk(strategy_name, btc_risk)
print(f"For risk {btc_risk}: Action = {action.upper()}, Value = {value}")
```

## Error Handling

The client includes built-in error handling. You can check for errors in the API responses:

```python
result = api.get_asset_info("INVALID_ASSET")
if api.has_error(result):
    print("An error occurred:", result["error"])
```

## Rate Limiting

The client automatically handles rate limiting to ensure compliance with the API's usage rules (6 requests per minute).

## Caching

The client uses caching to reduce the number of API calls. You can set the cache TTL (time-to-live) when initializing the client. The default cache TTL is 5 minutes.

```python
api = AlphaSquared("YOUR_API_TOKEN", cache_ttl=300)  # 5 minutes
```

## Logging

The client includes configurable logging functionality. By default, logging is set to WARNING level. You can enable debug mode for more detailed logging during development:

```python
api = AlphaSquared("YOUR_API_TOKEN", debug=True)
```

In production, sensitive information in request headers and responses is automatically redacted in logs.

## Documentation

For more information about the AlphaSquared API, consult the [official API documentation](https://alphasquared.io/api-docs).

## License

This project is licensed under the MIT License. See the LICENSE file for more information.

## Disclaimer

This project is not affiliated with, maintained, or endorsed by AlphaSquared. Use this software at your own risk. Trading cryptocurrencies carries a risk of financial loss. The developers of this software are not responsible for any financial losses or damages incurred while using this software.

## Support

For any issues, questions, or assistance, please open an issue on the GitHub repository or contact AlphaSquared support at admin@alphasquared.io.
