data-access.md
1 # Data Access Examples 2 3 This example demonstrates how to load, access, and work with market data in Planar strategies. Learn the essential patterns for handling OHLCV data effectively. 4 5 ## Overview 6 7 **What this example demonstrates:** 8 - Loading historical OHLCV data 9 - Accessing price and volume data 10 - Working with multiple timeframes 11 - Data validation and error handling 12 - Efficient data access patterns 13 14 **Complexity:** Beginner 15 **Prerequisites:** [Basic Strategy Structure](../../getting-started/first-strategy.md) 16 17 ## Complete Data Access Example 18 19 20 ## Multi-Timeframe Data Access 21 22 23 ## Efficient Data Loading Patterns 24 25 26 ## Usage Examples 27 28 ### Basic Usage 29 ```julia 30 # PlanarDev loaded in project 31 32 # Demonstrate basic data access patterns 33 println("Planar data access examples:") 34 35 # Show basic Julia functionality 36 println("Julia version: ", VERSION) 37 println("Planar project loaded successfully!") 38 39 # Show data organization structure 40 println("Data is organized as: exchange/pair/timeframe/arrays") 41 42 # Example of accessing data (when available) 43 # This would work with actual data: 44 # data_path = PlanarDev.Planar.Data.key_path("binance", "BTC/USDT", "1m") 45 # println("Data path: ", data_path) 46 ``` 47 48 ### Multi-Timeframe Usage 49 50 ### Efficient Data Usage 51 ```julia 52 # PlanarDev loaded in project 53 using Dates 54 55 # Demonstrate efficient data access patterns 56 println("Efficient data access examples:") 57 58 # Example 1: Check basic functionality 59 println("Julia environment ready!") 60 println("Current time: ", now()) 61 62 # Example 2: Show time-based data access pattern 63 current_time = now() 64 println("Current time: ", current_time) 65 66 # Example 3: Demonstrate data iteration pattern 67 for i in 1:3 68 @info "Run $i at time: $(current_time + Minute(i))" 69 # In real usage, you would access data here: 70 # data = get_data_at_time(zi, current_time + Minute(i)) 71 end 72 ``` 73 74 ## Common Data Access Patterns 75 76 ### Safe Data Access 77 78 ### Batch Data Processing 79 80 ## Performance Tips 81 82 1. **Cache Calculations**: Store expensive calculations in dictionaries 83 2. **Batch Operations**: Process multiple assets in parallel with `@async` 84 3. **Validate Data**: Always check for empty or invalid data 85 4. **Use Appropriate Ranges**: Access only the data you need 86 5. **Handle Errors**: Wrap data access in try-catch blocks 87 88 ## See Also 89 90 - **[Simple Indicators Example](simple-indicators.md)** - Building technical indicators 91 - **[Multi-Asset Strategies](#multi-asset)** - Working with multiple assets 92 - **[Data API Reference](../../data.md)** - Complete data API documentation 93 - **[Data Management Guide](../../guides/data-management.md)** - Comprehensive data guide