fonte di dati storici sulle scorte [chiuso]


239

Sto cercando di creare un simulatore di borsa (forse alla fine diventare un'intelligenza artificiale predittiva), ma ho difficoltà a trovare i dati da utilizzare. Sto cercando una fonte (si spera gratuita) di dati storici sul mercato azionario.

Idealmente, sarebbe un set di dati a grana molto fine (secondo o minuto) con prezzo e volume di ogni simbolo su NASDAQ e NYSE (e forse altri se divento avventuroso). Qualcuno sa di una fonte per tali informazioni?

Ho trovato questa domanda che indica che Yahoo offre dati storici in formato CSV, ma non sono stato in grado di scoprire come ottenerli in un rapido esame del sito collegato.

Inoltre, non mi piace l'idea di scaricare frammentariamente i dati nei file CSV ... Immagino che Yahoo si arrabbierebbe e mi spegnerebbe dopo le prime migliaia di richieste.

Ho anche scoperto un'altra domanda che mi ha fatto pensare che avrei vinto il jackpot, ma sfortunatamente quel sito OpenTick sembra aver chiuso i battenti ... peccato, dal momento che penso che fossero esattamente quello che volevo.

Sarei anche in grado di utilizzare tutti i giorni dati che aprono / chiudono prezzo e volume di ogni simbolo, ma preferirei tutti i dati se riuscissi a ottenerli. Qualche altro suggerimento?


4
@rmeador, Yahoo non ti spegnerà, indipendentemente da quante richieste fai, ma Google ti spegnerà. Sono stato in grado di scaricare circa 4 GB di prezzi storici EOD da Yahoo in circa 5-6 ore senza essere chiuso. Sono circa 7.000 azioni con tutti i loro prezzi storici EOD da quando sono entrati nel mercato. Vedi la mia risposta per ulteriori informazioni e codice sorgente di esempio.
Kiril,

Sento che i dati EOD non sono abbastanza informativi. Se vuoi quotazioni e scambi tick-by-tick, credo che polygon.io sia il più economico.
Quinton Pike,

Risposte:


226

Consentitemi di aggiungere il mio 2 ¢, è il mio lavoro ottenere dati validi e puliti per un hedge fund, ho visto molti feed di dati e fornitori di dati storici. Si tratta principalmente di dati azionari statunitensi.

Per cominciare, se hai un po 'di soldi non preoccuparti di scaricare dati da Yahoo, ottieni i dati di fine giornata direttamente dai dati CSI , è qui che Yahoo ottiene i loro dati EOD e AFAIK. Hanno un'API in cui è possibile estrarre i dati in qualsiasi formato desiderato. Penso che l'abbonamento annuale per i dati sia di pochi $ 100 dollari.

Il problema principale con il download di dati da un servizio gratuito è che ottieni solo scorte ancora esistenti, questo si chiama pregiudizio di sopravvivenza e può darti risultati sbagliati se guardi molte scorte, perché includerai solo quelle che lo hanno reso così lontano e non quelli che sono stati eliminati.

Per giocare con alcuni dati intraday esaminerei IQFeed , forniscono diverse API per estrarre dati storici, anche se sono principalmente un equipaggiamento per feed in tempo reale. Ma qui ci sono alcune opzioni, alcuni broker forniscono persino download di dati storici tramite le loro API, quindi scegli il tuo veleno.

MA di solito tutti questi dati non sono molto chiari, una volta che inizi davvero a ripetere i test vedrai che alcune scorte mancano o appaiono come due simboli diversi, o le divisioni di scorte non sono adeguatamente contabilizzate, ecc. E poi ti rendi conto che storico anche i dati sui dividendi sono necessari e quindi inizi a correre in cerchio, mettendo insieme i dati da 100 diverse fonti di dati e così via. Quindi, per iniziare con un feed di dati "sconto", lo farai, ma non appena esegui backtest più completi potresti riscontrare problemi a seconda di ciò che fai. Se guardiamo, diciamo, alle scorte di S&P 500 questo non sarà un problema ma un feed intraday "economico" lo farà.

Ciò che non troverai sono dati intraday gratuiti. Voglio dire che potresti trovare alcuni esempi, sono sicuro che ci siano da qualche parte 5 anni di dati tick tick MSFT in giro, ma questo non ti porterà molto lontano.

Quindi, se hai bisogno di cose reali (libro degli ordini di livello II, tutte le zecche come sono successe in tutti gli scambi) una "conveniente", ma l'opzione eccellente è Nanex . In realtà ti spediranno un disco con terabyte di dati. Se ricordo bene sono circa $ 3k-4K per anno di dati. Ma credetemi, una volta capito quanto sia difficile ottenere buoni dati intraday, non penserete che si tratti di un sacco di soldi.

Non scoraggiarti, ma ottenere buoni dati è difficile, tanto difficile che molti hedge fund e banche spendono centinaia di migliaia di dollari al mese per ottenere dati di cui fidarsi. Ancora una volta, puoi iniziare da qualche parte e poi andare da lì, ma è bello vederlo un po 'nel contesto.


Modifica: la risposta sopra è dalla mia esperienza. Questo articolo di Caltech sui feed di dati disponibili fornirà ulteriori approfondimenti e in particolare raccomanda QuantQuote .


18
+1 per indicare i 3 livelli di dati (hist, intra, livello II) e per commenti approfonditi sulle risposte degli altri (completezza, pulizia, dimensioni dell'archiviazione, set di dati ...)
Peter Host,

2
CSI è fantastico ma, solo FYI, le scorte cancellate sono ora un servizio premium, non più incluso nei pacchetti di base. Cordiali saluti.
Olie,

1
CSI è fantastico ma il prezzo è costoso. Se si utilizza Unfair Advantage, si è vincolati alla loro applicazione. È noioso usarlo ogni giorno per aggiornare la cronologia. Se vuoi scaricare da http o ftp con CSI, devi pagare circa 200 € al mese. Siamo spiacenti, ma è troppo costoso.
davidxxx,

@davidh, CSI Unfair Advantage ha un'API ActiveX dove puoi esportare automaticamente tutti i dati del tuo abbonamento. Ci vuole circa un giorno per scrivere un robusto strumento esportatore ... Se conosci un'alternativa più economica con la stessa qualità di CSI, sentiti libero di pubblicare un'alternativa!
Lukebuehler,

Nota su QuantQuote: riesaminano / elaborano il tuo ordine entro 48 ore dall'acquisto. Nel caso in cui pensassi di avere accesso immediato.
fionbio,

94

QUESTA RISPOSTA NON È PIÙ PRECISA DALL'ALIMENTAZIONE DELLO YAHOO ALIMENTATO

Utilizzando l'approccio CSV di Yahoo sopra puoi anche ottenere dati storici! È possibile decodificare il seguente esempio:

http://ichart.finance.yahoo.com/table.csv?s=YHOO&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv

Essenzialmente:

sn = TICKER
a = fromMonth-1
b = fromDay (two digits)
c = fromYear
d = toMonth-1
e = toDay (two digits)
f = toYear
g = d for day, m for month, y for yearly

L'elenco completo dei parametri:

a   Ask
a2  Average Daily Volume
a5  Ask Size
b   Bid
b2  Ask (Real-time)
b3  Bid (Real-time)
b4  Book Value
b6  Bid Size
c   Change & Percent Change
c1  Change
c3  Commission
c6  Change (Real-time)
c8  After Hours Change (Real-time)
d   Dividend/Share
d1  Last Trade Date
d2  Trade Date
e   Earnings/Share
e1  Error Indication (returned for symbol changed / invalid)
e7  EPS Estimate Current Year
e8  EPS Estimate Next Year
e9  EPS Estimate Next Quarter
f6  Float Shares
g   Day's Low
h   Day's High
j   52-week Low
k   52-week High
g1  Holdings Gain Percent
g3  Annualized Gain
g4  Holdings Gain
g5  Holdings Gain Percent (Real-time)
g6  Holdings Gain (Real-time)
i   More Info
i5  Order Book (Real-time)
j1  Market Capitalization
j3  Market Cap (Real-time)
j4  EBITDA
j5  Change From 52-week Low
j6  Percent Change From 52-week Low
k1  Last Trade (Real-time) With Time
k2  Change Percent (Real-time)
k3  Last Trade Size
k4  Change From 52-week High
k5  Percent Change From 52-week High
l   Last Trade (With Time)
l1  Last Trade (Price Only)
l2  High Limit
l3  Low Limit
m   Day's Range
m2  Day's Range (Real-time)
m3  50-day Moving Average
m4  200-day Moving Average
m5  Change From 200-day Moving Average
m6  Percent Change From 200-day Moving Average
m7  Change From 50-day Moving Average
m8  Percent Change From 50-day Moving Average
n   Name
n4  Notes
o   Open
p   Previous Close
p1  Price Paid
p2  Change in Percent
p5  Price/Sales
p6  Price/Book
q   Ex-Dividend Date
r   P/E Ratio
r1  Dividend Pay Date
r2  P/E Ratio (Real-time)
r5  PEG Ratio
r6  Price/EPS Estimate Current Year
r7  Price/EPS Estimate Next Year
s   Symbol
s1  Shares Owned
s7  Short Ratio
t1  Last Trade Time
t6  Trade Links
t7  Ticker Trend
t8  1 yr Target Price
v   Volume
v1  Holdings Value
v7  Holdings Value (Real-time)
w   52-week Range
w1  Day's Value Change
w4  Day's Value Change (Real-time)
x   Stock Exchange
y   Dividend Yield

Questa pagina ha una tabella di tag speciali che possono essere utilizzati nell'URL.
user443854,

9
Un grosso problema nell'ottenere i dati da Yahoo, o qualunque servizio online, è che non si ottengono scorte cancellate, quindi ci si imbatte rapidamente nella propensione alla sopravvivenza. Meglio seguire Eric H. o il mio consiglio e andare direttamente al CSI.
Lukebuehler,

Questa pagina aveva una tabella di tag speciali che possono essere utilizzati nell'URL ... "Yahoo sostiene che l'utilizzo e la distribuzione dello strumento e il contenuto in ... costituiscono una violazione delle sezioni 6, 12 e 18 di i Termini di servizio (tra le altre disposizioni), generano una concorrenza sleale e inducono altri a violare i Termini di servizio ... Interferendo con questi rapporti contrattuali e commerciali, si sta potenzialmente danneggiando la capacità di altri utenti di ottenere vantaggi dei servizi forniti sul sito Yahoo Finance ". Pollice giù su Yahoo
Mustapha George,

Ho aggiunto i restanti switch dalle mie note, che si trovavano in quella pagina web. Presentare questi qui non sembra violare il ToS trovato qui: politiche.yahoo.com/us/it/yahoo/terms/product-atos/apiforydn/… Yahoo deve essere stata sconvolta dallo strumento di dati Excel che era anche disponibile su quel sito.
Fredrik E

2
Questo feed di dati non esiste più.
MichaelICE,

47

So che volevi "libero", ma prenderei seriamente in considerazione l' idea di ottenere i dati da csidata.com per circa $ 300 all'anno, se fossi in te.

È ciò che yahoo utilizza per fornire i propri dati.

Viene fornito con un'API decente e i dati sono (per quanto posso dire) molto puliti.

Ottieni 10 anni di storia quando ti abboni e poi aggiornamenti notturni in seguito.

Si prendono anche cura di ogni sorta di cose brutte come spaccature e dividendi per te. Se non hai ancora scoperto la gioia della pulizia dei dati, non ti renderai conto di quanto ne hai bisogno, fino alla prima volta che il tuo ATS (sistema di trading automatico) pensa che alcuni stock siano davvero economici, solo perché divisi 2 : 1 e non te ne sei accorto.


1
quali lingue sono supportate dalla loro API?
user443854,

1
hanno un'API ActiveX che puoi chiamare con codice c ++ o C # o qualsiasi altra cosa in Windows per accedere ai tuoi dati.
Lukebuehler,

1
Interessante. In che modo la suddivisione e la gestione dei dividendi differiscono da Yahoo?
Matthew Lock,

1
@MatthewLock Non ci penso al 100%, ma penso che Yahoo utilizzi un diverso fornitore di dati "eventi aziendali" e quindi utilizzi solo i dati CSI non elaborati modificati dagli eventi aziendali. Questo articolo un po 'vecchio fornisce alcuni spunti: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler

2
CSI è fantastico ma, solo FYI, le scorte cancellate sono ora un servizio premium, non più incluso nei pacchetti di base. Cordiali saluti.
Olie,

16

Un set di dati di ogni simbolo sul NASDAQ e NYSE su un intervallo di un secondo o di un minuto sarà enorme .

Diciamo che ci sono un totale di 4000 aziende quotate su entrambi i mercati (questo è probabilmente un aspetto molto basso poiché ci sono oltre 3200 aziende quotate sul NASDAQ). Per i dati a un secondo intervallo, supponendo che ci siano 6,5 ore di trading in un giorno, che ti darebbero 23400 punti dati al giorno per azienda, o circa 93.600.000 punti dati in totale per quel giorno. Supponendo 200 giorni di negoziazione in un anno, si tratta di circa 18.720.000.000 di punti dati per un solo anno.

Forse vuoi iniziare con un set più piccolo prima?


2
Stavo operando supponendo che la maggior parte delle società non sarebbe stata scambiata ogni secondo, quindi il numero di punti dati sarebbe stato significativamente inferiore. forse è una cattiva ipotesi. tuttavia, stavo pronosticando sull'ordine di 10s di GB all'anno ...
rmeador

Un paio di mesi di dati di borsa per circa 10 simboli sono arrivati ​​su 3 DVD. Anche i dati sono stati compressi.
Alan,

1
@rmeador è vero, ma anche alcuni titoli hanno un volume giornaliero molto maggiore di quanto ci siano secondi in un giorno, il che significa che scambiano più di una volta al secondo - e non tutti gli scambi sono garantiti allo stesso prezzo. Quindi dovresti decidere se sei interessato al prezzo a un intervallo o al trade
matt b

2
Se vuoi il tutto, ad es. Quotazioni di livello II di tutti gli scambi ecc. Sono poche TB per un anno in un formato compresso suuuuper (circa 5 GB al giorno di negoziazione). Se memorizzi solo dati minuscoli è davvero poco, circa 10 GB per 10 anni di tutte le scorte ...
lukebuehler

16

Introduzione:
da yahoo è possibile ottenere prezzi storici EOD (fine giornata) o prezzi in tempo reale. I prezzi EOD sono incredibilmente semplici da scaricare. Vedi il mio blog per spiegazioni su come ottenere i dati e per esempi di codice C #.

Sto scrivendo un "motore" di feed di dati in tempo reale che scarica e memorizza i prezzi in tempo reale in un database. Inizialmente il motore sarà in grado di scaricare i prezzi storici da Yahoo e Interactive Brokers e sarà in grado di archiviare i dati in un database di tua scelta: MS SQL, MySQL, SQLite, ecc. È open source, ma posterò di più informazioni sul mio blog quando mi avvicino al rilascio (entro un paio di giorni).

Un'altra opzione è il commerciante di eclissi ... ti consente di registrare i dati storici con granularità a partire da 1 minuto e memorizza i prezzi localmente in un file di testo. Fondamentalmente scarica i dati in tempo reale da Yahoo con un ritardo di 15 minuti. Dato che volevo una soluzione più solida e sto lavorando a un grande progetto scolastico per il quale abbiamo bisogno di dati, ho deciso di scrivere il mio motore di feed di dati (che ho menzionato sopra).

Codice di esempio:
ecco il codice di esempio C # che dimostra come scaricare dati in tempo reale:

public void Start()
{
    string url = "http://finance.yahoo.com/d/quotes.csv?s=MSFT+GOOG&f=snl1d1t1ohgdr";
    //Get page showing the table with the chosen indices
    HttpWebRequest request = null;
    IDatabase database =
        DatabaseFactory.CreateDatabase(
        DatabaseFactory.DatabaseType.SQLite);

    //csv content
    try
    {
        while (true)
        {
            using (Stream file = File.Create("quotes.csv"))
            {
                request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                request.Timeout = 30000;
                using (var response = (HttpWebResponse)request.GetResponse())
                using (Stream input = response.GetResponseStream())
                {
                    CopyStream(input, file);
                }
            }
            Console.WriteLine("------------------------------------------------");
            database.InsertData(Directory.GetCurrentDirectory() + "/quotes.csv");

            File.Delete("quotes.csv");
            Thread.Sleep(10000); // 10 seconds
        }
    }
    catch (Exception exc)
    {
        Console.WriteLine(exc.ToString());
        Console.ReadKey();
    }
}

Database:
sul lato database utilizzo una OleDbconnessione al file CSV per popolare un DataSete quindi aggiorno il mio database effettivo tramite il DataSet, in pratica rende possibile abbinare tutte le colonne del file CSV restituite da Yahoo direttamente al tuo database ( se il tuo database non supporta inserimenti batch di dati CSV, come SQLite). Altrimenti, l'inserimento dei dati è un one-liner ... basta inserire in batch il CSV nel database.

Puoi leggere di più sulla formattazione dell'URL qui: http://www.gummy-stuff.org/Yahoo-data.htm


epico vorrei averlo trovato prima.
ojblass,

Fornisce dati in tempo reale come hai suggerito? Dalla pagina, ha questo parametro "k1", ma l'ultima volta che ho controllato, ha ancora qualche ritardo.
Antony,

@Antony il più delle volte c'è un ritardo di qualche tipo, quindi dipende solo da quanto sei tollerante ai ritardi. Yahoo afferma di fornire dati in tempo reale, ma certamente non è per tutti i ticker. I ticker che non sono in tempo reale vengono ritardati fino a 15 minuti. Anche se si ottiene un server condiviso nello scambio, ci sarà ANCORA "un certo ritardo" . Quindi che tipo di ritardo sei disposto a tollerare?
Kiril,

Non è affidabile Dimmi, perché non funziona in questo momento per esempio: real-chart.finance.yahoo.com/… usato da finance.yahoo.com/q/…
mmm

9

NASDAQ offre 10 anni di dati EOD storici per ciascun simbolo

http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL

È possibile automatizzare il processo di download di questi dati.


Bella fonte. Hanno cambiato il sistema di richiesta, quindi ora tutte le richieste vengono elaborate con JS (ad esempio nasdaq.com/symbol/aapl/historical ). C'è un modo per automatizzarlo?
Anton Tarasenko,

Sì, è possibile automatizzarlo. È necessario utilizzare uno sniffer come Telerik e vedere come vengono ottenuti i dati (tramite un POST). Fintanto che invii correttamente le variabili post, dovresti ottenere i dati.
Nick_F

1
È ancora disponibile? Contiene dati intraday?
Lee,

8

Per i dati senza pregiudizi di sopravvivenza, l'unica fonte affidabile che ho trovato è QuantQuote ( http://quantquote.com )

I dati vengono forniti con una risoluzione al minuto, al secondo o in tick, collegati ai loro dati storici sullo stock .

C'è stato un suggerimento per Kibot sopra. Farei una rapida ricerca su Google prima di acquistare da loro, troverai molti post come questo con avvisi sui problemi di qualità dei dati di Kibot. Sta anche dicendo che la loro presunta sopravvivenza libera da pregiudizi sp500 ha solo 570 simboli per 14 anni. È praticamente impossibile, sp500 cambia di 1-2 simboli al mese ....


3
kibot ha solo 3 simboli gratuiti. il resto deve pagare! sta solo facendo pubblicità
rimbalzando

i dati giornalieri gratuiti di quantquote non sono documentati: non ci sono intestazioni di colonna nei file CSV e nessun documento.
user443854,

c'è documentazione, il formato è sostanzialmente lo stesso dei loro set di dati di risoluzione minuti.
user788171,

quantquote.com ha molti errori nei dati
Ivelin

Offrono dati minuziosi gratuiti per IBM dal 1998. Era abbastanza buono per me. Ho solo bisogno di un simbolo per testare la compressione: kibot.com/buy.aspx
Sergei Rodionov,

7

Purtroppo è difficile trovare dati storici sui ticker gratuiti. Ora che Opentick è morto, non conosco nessun altro provider.

In una vita precedente ho lavorato per un hedgefund che aveva un sistema di trading automatizzato e abbiamo usato abbondantemente dati storici.

Abbiamo usato TickData per la nostra fonte. I loro prezzi erano ragionevoli e i dati avevano una seconda risoluzione.


6

Abbiamo acquistato 12 anni di dati intraday da Kibot.com e siamo abbastanza soddisfatti della qualità.

Per quanto riguarda i requisiti di archiviazione: 12 anni di dati di 1 minuto per tutte le azioni statunitensi (oltre 8000 simboli) sono circa 100 GB.

Con i dati tick-by-tick la situazione è leggermente diversa. Se si registrano solo tempi e vendite, sarebbero circa 30 GB di dati al mese per tutte le azioni statunitensi. Se desideri memorizzare le offerte / chiedere modifiche insieme alle transazioni, puoi aspettarti circa 150 GB al mese.

Spero che aiuti. Per favore fatemi sapere se c'è qualcos'altro che posso aiutarvi con.


1
Sei ancora soddisfatto di KiBot @ boe100?
JaredBroad,

@ boe100 Hanno prezzi sia adeguati che non rettificati? Hanno beta e delta?
user443854,

Sono disponibili sia dati rettificati che non rettificati. È possibile aggiornare i dati utilizzando un'API HTTP o scaricare quotidianamente nuovi archivi dal server FTP. Non vengono calcolati beta o delta.
boe100,

@ boe100 potresti condividere i tuoi dati?
Tomasz Waszczyk,

2
@Tomasz haha, il tuo commento ha reso la mia giornata: D
Corneliu Maftuleac

6

Vorrei aggiungere una fonte che ho appena scoperto, trovata qui .

Ha molti dati storici di borsa in formato CSV ed è stato raccolto da Andy Pavlo, che secondo la sua homepage è un "Ricercatore presso il Dipartimento di Informatica della Carnegie Mellon University".


Questo è ottimo per chiunque stia semplicemente cercando di scherzare con un set abbastanza grande di dati storici sul mercato azionario.
Ciaran Gallagher,

1
Pagina web giù ...
Brethlosze,



4

Puoi utilizzare Yahoo per ottenere dati giornalieri (un set di dati molto più gestibile) ma devi strutturare gli URL. Vedere questo collegamento . Non stai facendo molte piccole richieste ma stai facendo meno richieste di grandi dimensioni. Molti software gratuiti usano questo così non dovrebbero spegnerti.

EDIT: Questo ragazzo lo fa, forse puoi dare un'occhiata alle chiamate che fa il suo software.


all'inizio pensavo che quel collegamento fosse promettente, ma non riesco a trovare come specificare i dati storici ... sembra che sia tutto in tempo reale. Mi sto perdendo qualcosa?
rmeador,

hai ragione. Ho aggiunto un altro link di qualcuno con software che fa le cose storiche, quindi so che è possibile. Forse dai un'occhiata alle chiamate che fa il suo software.
jimconstable

4

Yahoo è l'opzione più semplice per ottenere dati gratuiti preliminari. Il link descritto nella risposta di eckesicle potrebbe essere facilmente usato in un codice Python, ma prima hai bisogno di tutti i ticker. Userei il NYSE per questo esempio, ma questo può essere usato anche per diversi scambi.

Ho usato questa pagina wiki per scaricare tutti i ticker dell'azienda con il seguente script (non sono un pitone molto talentuoso, scusate se questo codice non è molto efficiente):

import string
import urllib2
from bs4 import BeautifulSoup

global f

def download_page(url):
    aurl = urllib2.urlopen(url)
    soup = BeautifulSoup(aurl.read())

    print url

    for row in soup('table')[1]('tr'):
        tds = row('td')
        if (len(tds) > 0):
            f.write(tds[1].string + '\n')


f = open('stock_names.txt', 'w')

url_part1 = 'http://en.wikipedia.org/wiki/Companies_listed_on_the_New_York_Stock_Exchange_'
url = url_part1 + '(0-9)'
download_page(url)

for letter in string.uppercase[:26]:
    url_part2 = letter
    url = url_part1 + '(' + letter + ')'

    download_page(url)

f.close()

Per scaricare ogni ticker ho usato un altro script abbastanza simile:

import string
import urllib2
from bs4 import BeautifulSoup


global f

url_part1 = 'http://ichart.finance.yahoo.com/table.csv?s='
url_part2 = '&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv'

print "Starting"

f = open('stock_names.txt', 'r')
file_content = f.readlines()
count = 1;
print "About %d tickers will be downloaded" % len(file_content)

for ticker in file_content:
    ticker = ticker.strip()
    url = url_part1 + ticker + url_part2
    
    try:
        # This will cause exception on a 404
        response = urllib2.urlopen(url)

        print "Downloading ticker %s (%d out of %d)" % (ticker, count, len(file_content))

        count = count + 1
        history_file = open('C:\\Users\\Nitay\\Desktop\\Historical Data\\' + ticker + '.csv', 'w')
        history_file.write(response.read())
        history_file.close()

    except Exception, e:
        pass

f.close()

Si noti che il principale svantaggio di questo metodo è che sono disponibili dati diversi per diverse società: le aziende che non dispongono di dati esistenti nelle date richieste (appena elencate) ti daranno una pagina 404.

Inoltre, tieni presente che questo metodo è utile solo per i dati preliminari: se vuoi davvero testare il tuo algoritmo dovresti pagare un po 'e utilizzare un fornitore di dati di fiducia come CSIData o altri


Inserire una dichiarazione globale nello spazio dei nomi globale non è necessario, comunque una buona risposta.
Luke Taylor,

1
Servizio inattivo ...
Brethlosze,

3

Perché non modellare un mercato azionario falso con Brownian Motion?

Un sacco di risorse per farlo. Facile da implementare.

http://introcs.cs.princeton.edu/java/98simulation/


1
:-) per renderlo più reale avresti bisogno di creare un movimento frazionario browniano e anche questo non è del tutto reale, per i dati di mercato falsi più realistici dovresti avere anche una dimensione temporale frattale ... aghi per dirlo diventa piuttosto complicato. Meglio semplicemente acquistare dati di mercato reali ...
lukebuehler,

Inoltre non aiuta che il movimento delle scorte non sia lognormale :)
Paul Milovanov,

3

Uso l'eodData.com. È abbastanza decente. Per 30 dollari al mese ricevi 30 giorni di barre da 1,5 e 60 minuti per tutti gli scambi negli Stati Uniti e 1 anno di dati EOD per la maggior parte degli altri.


2

Esplorerei finance.google.com (per le virgolette) o finance.yahoo.com.

Entrambi restituiranno pagine html per la maggior parte degli scambi in tutto il mondo, compresi quelli storici. Quindi, si tratta solo di analizzare l'HTML per estrarre ciò di cui hai bisogno.

L'ho fatto in passato, con grande successo. In alternativa, se non ti dispiace usare Perl - ci sono diversi moduli su CPAN che hanno fatto questo lavoro per te - cioè estraendo citazioni da Google / Yahoo.

Per ulteriori informazioni, vedi Cronologia delle citazioni


+1 per i moduli perl, rendono i dati super facili
Matthew Lock,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.