/ docs / src / reference / examples / data-access.md
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