import pandas as pd
import numpy as np
import random
import os

# Create directory for dataset
os.makedirs("data", exist_ok=True)

# Generate synthetic stock market data
np.random.seed(42)
n_samples = 1000
open_price = np.random.uniform(100, 500, n_samples)  # Opening price
high_price = open_price + np.random.uniform(0, 50, n_samples)  # High price
low_price = open_price - np.random.uniform(0, 50, n_samples)  # Low price
volume = np.random.randint(100000, 1000000, n_samples)  # Trading volume

# Simulate closing price (influenced by open, high, low, volume)
close_price = []
for i in range(n_samples):
    base_price = open_price[i] * 0.5 + high_price[i] * 0.3 + low_price[i] * 0.2
    noise = np.random.normal(0, 5)
    close_price.append(base_price + noise)

# Create DataFrame
data = {
    'open': open_price,
    'high': high_price,
    'low': low_price,
    'volume': volume,
    'close': close_price
}
df = pd.DataFrame(data)
csv_path = "data/finance_data.csv"
df.to_csv(csv_path, index=False)
print(f"Created {csv_path} with {len(df)} entries.")

# Print sample
print("\nSample of finance_data.csv:")
print(df.head())