API Reference
This section provides comprehensive documentation for all Planar.jl modules and functions. Each module page includes function signatures, detailed descriptions, working code examples, and usage patterns.
Quick Navigation
Core Trading Components
- Strategies - Strategy base classes, interfaces, and core functionality
- Engine - Core execution engine for backtesting, paper trading, and live trading
- Executors - Order execution and trade management
- Instances - Strategy instance management and asset handling
Data Management
- Data - Data structures, persistence, and OHLCV data handling
- Fetch - Data fetching and retrieval utilities
- Processing - Data processing and transformation functions
- Collections - Specialized collection types and utilities
Exchange Integration
- Exchanges - Exchange interfaces and connectivity
- CCXT Integration - CCXT library integration and utilities
- Instruments - Financial instrument definitions and management
Analysis & Optimization
- Metrics - Performance metrics and analysis
- Optimization - Parameter optimization and hyperparameter tuning
- Strategy Tools - Utilities for strategy development
- Strategy Statistics - Statistical analysis of strategy performance
Visualization & Utilities
- Plotting - Charting and visualization functions
- DataFrame Utils - DataFrame manipulation utilities
- Python Integration - Python interoperability functions
- Miscellaneous - Additional utility functions and helpers
Getting Started with the API
Basic Usage Pattern
Most Planar functions follow these common patterns:
# Activate PlanarInteractive project
import Pkg
Pkg.activate("PlanarInteractive")
try
using PlanarInteractive
@environment!
# Example API usage patterns
println("Common Planar API patterns:")
# Load a strategy (example)
println("s = strategy(:MyStrategy) # Load strategy")
# Access strategy data (examples)
println("assets_list = assets(s) # Get assets")
println("exchange_info = exchange(s) # Get exchange")
println("current_cash = freecash(s) # Get cash")
# Work with data (examples)
println("ohlcv_data = load_ohlcv(s) # Load OHLCV data")
println("fetch_ohlcv!(s) # Fetch new data")
# Note: Real usage requires proper strategy configuration
catch e
@warn "PlanarInteractive not available: $e"
endCommon Function Categories
- Strategy Functions: Functions that operate on
Strategyobjects - Data Functions: Functions for loading, processing, and managing market data
- Order Functions: Functions for creating and managing orders
- Analysis Functions: Functions for calculating metrics and statistics
- Utility Functions: Helper functions for common operations
Function Naming Conventions
- Functions ending with
!modify their arguments in-place - Functions starting with
isreturn boolean values - Functions starting with
getretrieve information - Functions starting with
setmodify configuration or state
Error Handling
Most API functions use Julia's standard error handling:
Performance Considerations
- Use in-place functions (ending with
!) when possible to avoid allocations - Batch operations when working with multiple assets
- Consider using
@asyncfor independent operations - Cache frequently accessed data
See Also
- Getting Started Guide - Introduction to Planar
- Strategy Development Guide - Building trading strategies
- Data Management Guide - Working with market data
- Troubleshooting - Common issues and solutions
Contributing to API Documentation
If you find missing or incorrect information in the API documentation, please:
- Check the source code for the most up-to-date function signatures
- Test any code examples before submitting changes
- Follow the established documentation format and style
- Include working examples for new functions
For more information on contributing, see the Contributing Guide.