Previsione del sentiment
/forecasts/sentiment
Dove è probabile che vada il sentiment di un asset nelle prossime 72 ore, come intervallo di esiti con le relative probabilità. series fornisce, ogni 4 ore, i post bullish, bearish, neutral e totali attesi in quel passo e il sentiment_signal alla sua fine, sulla scala /sentiment. chance_higher_24h e chance_higher_72h forniscono la probabilità che il segnale chiuda sopra current_sentiment_signal; i loro flag _confident indicano quando tale probabilità pende chiaramente da una parte.
Le previsioni si aggiornano entro un minuto dalla pubblicazione di nuovi post sull'asset e almeno ogni 15 minuti. refresh=true ricalcola sui dati più recenti in circa 5 secondi; se impiega più di 20, ricevi la previsione più recente con refreshed: false, al costo di 5. Gli asset senza previsione restituiscono status: not_forecastable con un reason; /forecasts/assets elenca gli asset che ne hanno una.
Costa 5 crediti, o 10 con refresh=true. Le risposte not_forecastable sono gratuite, fino a 30 all'ora per account; oltre tale soglia questo endpoint restituisce 429 fino al cambio dell'ora.
Il pagamento tramite wallet non è disponibile per questa operazione; usa l'autenticazione dell'account. guida al pagamento x402.
Parametri
Asset ID da /assets o /search, ad esempio NVDA, GLD, SPX o bitcoin. Va inviato con l'asset_class restituito insieme ad esso.
Example:NVDA
Classe dell'asset indicato da asset_id: equity (azioni ed ETF), commodity, index o crypto. Va inviata l'asset_class restituita da /assets o /search insieme all'asset_id.
equitycommodityindexcrypto
Example:equity
true ricalcola la previsione sui dati più recenti: 10 crediti, circa 5 secondi. Il valore predefinito è false.
Example:false
Esempio cURL
curl --get \
--url 'https://nebula-api.hiddensystems.ai/api/v1/public/forecasts/sentiment' \
--data-urlencode 'asset_id=NVDA' \
--data-urlencode 'asset_class=equity' \
--header 'X-API-Key: YOUR_API_KEY'
Risposte
Tipo di media application/json
as_of
Inizio UTC della previsione: la fine degli ultimi 15 minuti completi su cui è stata calcolata. Null quando l'asset non è mai stato valutato.
chance_higher_24h
La probabilità che il segnale di sentiment sia superiore a current_sentiment_signal tra 24 ore, da 0 a 1.
chance_higher_24h_confident
True quando chance_higher_24h è inferiore a 0.3 o superiore a 0.7: la previsione pende chiaramente da una parte. Più vicino a 0.5, interpretala come assenza di una direzione chiara.
chance_higher_72h
La probabilità che il segnale di sentiment sia superiore a current_sentiment_signal tra 72 ore, da 0 a 1.
chance_higher_72h_confident
True quando chance_higher_72h è inferiore a 0.3 o superiore a 0.7: la previsione pende chiaramente da una parte. Più vicino a 0.5, interpretala come assenza di una direzione chiara.
current_sentiment_signal
Il segnale di sentiment ad as_of, sulla scala /sentiment: post bullish meno post bearish nelle 24 ore precedenti, con i post recenti pesati di più. Ogni percorso parte da qui e le probabilità si misurano rispetto a questo valore. Può differire leggermente dall'ultimo punto di /sentiment, che è orario.
horizon_hours
Quanto avanti si spinge la previsione, in ore: sempre 72.
reason
Perché l'asset non può essere previsto: too_little_history, stale_data o missing_price. Null quando status è ok.
too_little_historystale_datamissing_pricenull
refreshed
True quando questa richiesta ha rieseguito la previsione (refresh=true e la riesecuzione è terminata in tempo); false quando è l'ultima previsione pianificata.
sample_paths
24 percorsi possibili per il segnale di sentiment, ciascuno allineato con series. Tracciali per mostrare l'ampiezza degli esiti.
series
array<object>
La previsione ogni 4 ore da as_of: 18 passi, dal più vecchio.
series
La previsione ogni 4 ore da as_of: 18 passi, dal più vecchio.
series[].bearish_posts
object
I post bearish attesi in questo singolo passo di 4 ore, bot esclusi: come i post dell'intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].bearish_posts
I post bearish attesi in questo singolo passo di 4 ore, bot esclusi: come i post dell'intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].bearish_posts.mean
Il numero atteso di post bearish nel passo.
series[].bearish_posts.p10
Il 10° percentile dei post bearish nel passo.
series[].bearish_posts.p25
Il 25° percentile dei post bearish nel passo.
series[].bearish_posts.p50
Il 50° percentile dei post bearish nel passo.
series[].bearish_posts.p75
Il 75° percentile dei post bearish nel passo.
series[].bearish_posts.p90
Il 90° percentile dei post ribassisti nello step.
series[].bullish_posts
object
I post rialzisti attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].bullish_posts
I post rialzisti attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].bullish_posts.mean
Il numero atteso di post rialzisti nello step.
series[].bullish_posts.p10
Il 10° percentile dei post rialzisti nello step.
series[].bullish_posts.p25
Il 25° percentile dei post rialzisti nello step.
series[].bullish_posts.p50
Il 50° percentile dei post rialzisti nello step.
series[].bullish_posts.p75
Il 75° percentile dei post rialzisti nello step.
series[].bullish_posts.p90
Il 90° percentile dei post rialzisti nello step.
series[].neutral_posts
object
I post neutrali attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].neutral_posts
I post neutrali attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti.
series[].neutral_posts.mean
Il numero atteso di post neutrali nello step.
series[].neutral_posts.p10
Il 10° percentile dei post neutrali nello step.
series[].neutral_posts.p25
Il 25° percentile dei post neutrali nello step.
series[].neutral_posts.p50
Il 50° percentile dei post neutrali nello step.
series[].neutral_posts.p75
Il 75° percentile dei post neutrali nello step.
series[].neutral_posts.p90
Il 90° percentile dei post neutrali nello step.
series[].sentiment_signal
object
Il segnale di sentiment alla fine dello step, sulla scala di /sentiment: dove è probabile che si trovi la linea.
series[].sentiment_signal
Il segnale di sentiment alla fine dello step, sulla scala di /sentiment: dove è probabile che si trovi la linea.
series[].sentiment_signal.mean
Il segnale di sentiment atteso alla fine dello step.
series[].sentiment_signal.p10
Il 10° percentile del segnale di sentiment alla fine dello step.
series[].sentiment_signal.p50
Il 50° percentile del segnale di sentiment alla fine dello step.
series[].sentiment_signal.p90
Il 90° percentile del segnale di sentiment alla fine dello step.
series[].sentiment_signal.quantiles
21 quantili del segnale di sentiment alla fine dello step: i percentili 0, 5, 10, ... 100, dal più basso. Interpola tra di essi per ottenere la probabilità di ricadere in un qualsiasi intervallo.
series[].timestamp
Ora UTC in cui termina lo step: as_of più 4, 8, ... 72 ore.
series[].total_posts
object
I post (rialzisti, ribassisti e neutrali insieme) attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti. I suoi percentili si riferiscono al totale stesso, quindi non sono la somma dei percentili dei tre tipi.
series[].total_posts
I post (rialzisti, ribassisti e neutrali insieme) attesi in questo singolo step di 4 ore, bot esclusi: come i post per intervallo di /sentiment, non i suoi conteggi sulle 24 ore precedenti. I suoi percentili si riferiscono al totale stesso, quindi non sono la somma dei percentili dei tre tipi.
series[].total_posts.mean
Il numero atteso di post (rialzisti, ribassisti e neutrali insieme) nello step.
series[].total_posts.p10
Il 10° percentile dei post (rialzisti, ribassisti e neutrali insieme) nello step.
series[].total_posts.p25
Il 25° percentile dei post (rialzisti, ribassisti e neutrali insieme) nello step.
series[].total_posts.p50
Il 50° percentile dei post (rialzisti, ribassisti e neutrali insieme) nello step.
series[].total_posts.p75
Il 75° percentile dei post (rialzisti, ribassisti e neutrali insieme) nello step.
series[].total_posts.p90
Il 90° percentile dei post (rialzisti, ribassisti e neutrali insieme) nello step.
status
ok, oppure not_forecastable quando l'asset non può essere previsto (i campi di riepilogo sono allora null e la serie è vuota; reason ne indica il motivo).
oknot_forecastable
turning
1 mentre il sentiment sta virando al rialzo (le ultime ore sono chiaramente più rialziste dell'ultimo giorno), -1 mentre sta virando al ribasso, 0 altrimenti.
-101null
{
"as_of": "2026-09-14T09:15:00Z",
"chance_higher_24h": 0.74,
"chance_higher_24h_confident": true,
"chance_higher_72h": 0.61,
"chance_higher_72h_confident": false,
"current_sentiment_signal": 128.6,
"horizon_hours": 72,
"reason": null,
"refreshed": false,
"sample_paths": [
[
133.2,
141.7
],
[
126.4,
118.9
]
],
"series": [
{
"bearish_posts": {
"mean": 18,
"p10": 9.9,
"p25": 13.5,
"p50": 17.1,
"p75": 21.6,
"p90": 27.9
},
"bullish_posts": {
"mean": 46,
"p10": 25.3,
"p25": 34.5,
"p50": 43.7,
"p75": 55.2,
"p90": 71.3
},
"neutral_posts": {
"mean": 29,
"p10": 16,
"p25": 21.8,
"p50": 27.6,
"p75": 34.8,
"p90": 45
},
"sentiment_signal": {
"mean": 131.4,
"p10": 92.9,
"p50": 129.6,
"p90": 175.5,
"quantiles": [
21.6,
70.2,
92.9,
104.8,
113.1,
119.4,
124.2,
127.6,
130.5,
132.7,
134.5,
136.4,
138.7,
141.3,
144.9,
149.2,
155.1,
163.8,
179.4,
202.6,
287.3
]
},
"timestamp": "2026-09-14T13:15:00Z",
"total_posts": {
"mean": 93,
"p10": 51.2,
"p25": 69.8,
"p50": 88.4,
"p75": 111.6,
"p90": 144.2
}
},
{
"bearish_posts": {
"mean": 19,
"p10": 10.5,
"p25": 14.3,
"p50": 18.1,
"p75": 22.8,
"p90": 29.5
},
"bullish_posts": {
"mean": 50,
"p10": 27.5,
"p25": 37.5,
"p50": 47.5,
"p75": 60,
"p90": 77.5
},
"neutral_posts": {
"mean": 31,
"p10": 17.1,
"p25": 23.3,
"p50": 29.5,
"p75": 37.2,
"p90": 48.1
},
"sentiment_signal": {
"mean": 137.6,
"p10": 99.1,
"p50": 135.79999999999998,
"p90": 181.7,
"quantiles": [
21.6,
70.2,
92.9,
104.8,
113.1,
119.4,
124.2,
127.6,
130.5,
132.7,
134.5,
136.4,
138.7,
141.3,
144.9,
149.2,
155.1,
163.8,
179.4,
202.6,
287.3
]
},
"timestamp": "2026-09-14T17:15:00Z",
"total_posts": {
"mean": 100,
"p10": 55,
"p25": 75,
"p50": 95,
"p75": 120,
"p90": 155
}
}
],
"status": "ok",
"turning": 0
}