File size: 849 Bytes
8bd5de4 | 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 | from dotenv import load_dotenv
load_dotenv()
import pandas as pd
import numpy as np
from indicators.technical import compute_indicators
from signals.scorer import compute_signal
import config
# build synthetic data (sufficient length)
N=400
rng = pd.date_range('2023-01-01', periods=N, freq='h')
price = np.cumsum(np.random.randn(N))*2 + 100
high = price + np.random.rand(N)*2
low = price - np.random.rand(N)*2
openp = price + np.random.randn(N)*0.5
close = price
volume = (np.random.rand(N)*1000).astype(int)
df = pd.DataFrame({'open':openp,'high':high,'low':low,'close':close,'volume':volume}, index=rng)
ind = compute_indicators(df)
last = ind.iloc[-1]
score,signal,reasons = compute_signal(last, config.INDICATOR_WEIGHTS, news_score=None)
print('Signal:', signal, 'Score:', score)
print('Top reasons:')
for r in reasons[:8]:
print('-', r)
|