Spaces:
Runtime error
Runtime error
File size: 2,327 Bytes
5913c8f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
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
|