Spaces:
Runtime error
Runtime error
| from lightweight_charts import Chart | |
| import pandas as pd | |
| import numpy as np | |
| class ChartMaker: | |
| def __init__(self): | |
| self.patterns = [ | |
| 'channel', 'triangle', 'head_shoulders', | |
| 'double_top', 'double_bottom', 'wedge', | |
| 'flag', 'pennant' | |
| ] | |
| self.indicators = [ | |
| 'ema', 'sma', 'rsi', 'macd', | |
| 'bollinger', 'ichimoku', 'pivot_points' | |
| ] | |
| def create_pattern_chart(self, ohlcv_data, patterns): | |
| chart = Chart() | |
| # Format OHLCV data for charting | |
| chart_data = [] | |
| for index, row in ohlcv_data.iterrows(): | |
| data_point = { | |
| 'time': row['time'] if isinstance(row['time'], int) else int(row['time'].timestamp() * 1000), | |
| 'open': float(row['open']), | |
| 'high': float(row['high']), | |
| 'low': float(row['low']), | |
| 'close': float(row['close']), | |
| 'volume': float(row['volume']) | |
| } | |
| chart_data.append(data_point) | |
| # Create main price series | |
| chart.create_series('price', 'Candlestick', chart_data) | |
| # Add volume series | |
| volume_data = [{ | |
| 'time': d['time'], | |
| 'value': d['volume'] | |
| } for d in chart_data] | |
| chart.create_series('volume', 'Histogram', volume_data) | |
| # Add patterns as overlays | |
| for pattern in patterns: | |
| if pattern['type'] in self.patterns and 'coordinates' in pattern: | |
| chart.create_series( | |
| f"pattern_{pattern['type']}", | |
| 'Line', | |
| pattern['coordinates'], | |
| { | |
| 'color': 'rgba(76, 175, 80, 0.5)', | |
| 'lineWidth': 2, | |
| 'title': f"{pattern['type']} ({pattern.get('confidence', 0):.2f})" | |
| } | |
| ) | |
| return chart | |
| def generate_all_variations(self, ohlcv_data): | |
| charts = [] | |
| for pattern in self.patterns: | |
| pattern_chart = self.create_pattern_chart(ohlcv_data, [{'type': pattern}]) | |
| charts.append({ | |
| 'type': pattern, | |
| 'chart': pattern_chart | |
| }) | |
| return charts | |