याहू वित्त से टिकर प्रतीकों की पूरी सूची कैसे प्राप्त करें? [बन्द है]


100

मैंने http://finance.yahoo.com के माध्यम से उपलब्ध सभी याहू टिकर प्रतीकों की एक पूरी (और दैनिक अद्यतन) सूची प्राप्त करने की एक विधि के लिए अंतहीन रूप से गुगली की है

याहू के पास दुनिया भर में बहुत से एक्सचेंजों के लिए स्टॉक, वायदा आदि की जानकारी है, और मैं उनके माध्यम से उपलब्ध सभी टिकर प्रतीकों की एक संयुक्त सूची चाहूंगा। मैंने YQL की कोशिश की है, लेकिन उनके पास "जहां प्रतीक = (या)" खंड प्रतिबंध है, इसलिए मैं प्रतीकों से * का चयन नहीं कर सकता।

इसलिए मूल रूप से, एक समय में एक ही प्रतीक या कई प्रतीकों के लिए विस्तृत जानकारी प्राप्त करना आसान है, लेकिन मैं अभी यह पता नहीं लगा सकता कि सभी उपलब्ध टिकर की सूची कैसे प्राप्त करें।

किसी की मदद कर सकते हैं, कृपया?


9
क्या आपको कोई खुशी मिली? मुझे यह पता चला: eoddata.com/symbols.aspx
Codek

धन्यवाद कोडक :-) नहीं, मुझे यह नहीं मिला और यह कार्य याओस प्रतीक सूची को ढूंढना था, किसी को नहीं, इसलिए दुर्भाग्य से ईओडैटस का उपयोग नहीं किया जा सकता है। फिर से धन्यवाद और एक शानदार सप्ताहांत है :-)
rassom

2
ओके नो प्रोब्स मैं केवल LSE प्रतीकों को चाहता था, इसलिए ऊपर वाले ने मेरे लिए मदद की - मेरा मानना ​​है कि एक्सचेंज के भीतर प्रतीकों जैसे याहू / एलएसई / गूगल फाइनेंस इत्यादि के अनुरूप हैं - इसके अलावा याहू के पास है। इसके अंत में .L और Google में यह LON है। यह हास्यास्पद है कि कैसे सभी मूल्य डेटा स्वेच्छा से उपलब्ध हैं, लेकिन प्रतीकों की सूची नहीं जो मुझे अभी नहीं मिली है!
कोड

अब आप 98k प्रतीकों को पकड़कर मेटाडेटा का उपयोग कर सकते हैं। ध्यान दें कि आपको क्वान्डल प्रतीक को मूल याहू चिन्ह पर वापस डिकोड करना है। INDEX_ को ^ और _ मिलता है। quandl.com/data/YAHOO/metadata
KIC

3
एक अजगर कार्यक्रम जो आपके लिए ऐसा कर सकता है: github.com/Benny-/Yahoo-ticker-symbol-downloader
André Pena

जवाबों:


13

Http://code.google.com/p/yahoo-finance-managed/ पर Yahoo.Finance API के लिए एक अच्छा C # रैपर है जो आपको वहां मिलेगा। दुर्भाग्य से टिकर सूची को डाउनलोड करने का कोई सीधा तरीका नहीं है, लेकिन निम्नलिखित वर्णमाला समूहों के माध्यम से पुनरावृत्ति करके सूची बनाता है:

        AlphabeticIDIndexDownload dl1 = new AlphabeticIDIndexDownload();
        dl1.Settings.TopIndex = null;
        Response<AlphabeticIDIndexResult> resp1 = dl1.Download();

        writeStream.WriteLine("Id|Isin|Name|Exchange|Type|Industry");

        foreach (var alphabeticalIndex in resp1.Result.Items)
        {
            AlphabeticalTopIndex topIndex = (AlphabeticalTopIndex) alphabeticalIndex;
            dl1.Settings.TopIndex = topIndex;
            Response<AlphabeticIDIndexResult> resp2 = dl1.Download();

            foreach (var index in resp2.Result.Items)
            {
                IDSearchDownload dl2 = new IDSearchDownload();
                Response<IDSearchResult> resp3 = dl2.Download(index);


                int i = 0;
                foreach (var item in resp3.Result.Items)
                {
                    writeStream.WriteLine(item.ID + "|" + item.ISIN + "|" + item.Name + "|" + item.Exchange + "|" + item.Type + "|" + item.Industry);
                }

            }
        }

इसने मुझे लगभग 4 मिनट में 75,000 प्रतिभूतियों की सूची दी।


24
क्या आप इस कोड को चला सकते हैं और आउटपुट की एक कॉपी पेस्टेबिन पर डाल सकते हैं, हममें से जो C # का उपयोग नहीं करते हैं?
जीरो

1
ऐसा लगता है कि वर्णमाला का परिणाम पूरा नहीं हुआ है। कई प्रतीक छूट गए।
लियांग

मैंने इस कोड को चलाने की कोशिश की लेकिन दुर्भाग्य से इसका कोई परिणाम नहीं निकला। कोई विचार?
सिंहपर्णी

3
मुझे नहीं लगता कि यह अब और काम करता है। उल्लिखित रैपर एपीआई biz.yahoo.com/i के लिए एक अनुरोध करता है जो कि परिवर्तित हो गया है (वित्त पर पुनः निर्देशित करता है।
ऋचाद्र

45

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। याहू इसकी पेशकश नहीं करता है, लेकिन आप एक दस्तावेज़ के माध्यम से देख सकते हैं। nyse.com की सूची पर लिखित बयान और .js फ़ाइल को खोजने के लिए जहां वे बस दिए गए पत्र के साथ शुरू होने वाली कंपनियों की सूची को एक js सरणी के रूप में संग्रहीत करते हैं। शाब्दिक। : आप भी से nasdaq.com यहाँ अच्छा साफ csv फ़ाइलें प्राप्त कर सकते हैं http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download (विनिमय = विनिमय = NYSE साथ NASDAQ की जगह nyse प्रतीकों के लिए)।


2
धन्यवाद इयान। मुझे याहू के लिए सूची की आवश्यकता है, क्योंकि उनके पास अमेरिका के बाहर भी टिकर हैं, इसलिए नैस्डैक दुर्भाग्य से पर्याप्त नहीं है।
रासोम

5
यह उत्कृष्ट है, धन्यवाद। आप सभी तीन अनुक्रमितों के लिए टिकर प्राप्त करने के लिए एक्सचेंज को "सभी" से बदल सकते हैं।
डारिन पीटरसन

इस तरह की सूची के साथ एक वेबसाइट के लिए लिंक होता है, लेकिन मैं विकल्प एक csv डाउनलोड करने के लिए नहीं दिख रहा है
hipoglucido

45

मैं इस URL का उपयोग करके कुछ ऐसा ही करने में कामयाब रहा:

http://query.yahooapis.com/v1/public/yql?q=select%20 *% 20from% 20 वर्ष .sectors) और env = दुकान% 3A% 2F% 2Fdatatables.org% 2Falltableswithkeys

यह याहू YQL एपीआई का उपयोग करके स्टॉक प्रतीकों की एक पूरी सूची डाउनलोड करता है, जिसमें स्टॉक नाम, स्टॉक प्रतीक और उद्योग आईडी शामिल है। ऐसा लगता है कि स्टॉक प्रतीक संशोधक किसी भी तरह का नहीं है। उदाहरण के लिए रोजर्स कम्युनिकेशंस इंक, यह केवल RCI-A.TO, RCI-B.TO आदि को RCI डाउनलोड करता है, मुझे अभी तक उस जानकारी के लिए कोई स्रोत नहीं मिला है - अगर किसी को डाउनलोड करने को स्वचालित करने का तरीका पता है, तो मैं यह सुनना पसंद है। इसके अलावा, स्टॉक सिंबल और जिस एक्सचेंज पर ट्रेड किया जाता है, उसके बीच किसी तरह के रिलेशन को डाउनलोड करने का तरीका खोजना अच्छा होगा, क्योंकि कुछ को कई एक्सचेंजों पर ट्रेड किया जाता है, या शायद मैं केवल टीएसएक्स या कुछ पर सामान देखना चाहता हूं। ।


9
या अगर json आपकी बात ज्यादा है: json
एंड्रयू लुह्रिंग

1
अच्छा है। कच्चे YQL: yahoo.finance.ind Industries से सेलेक्ट करें जहाँ id में (select Industry.id from yahoo.finance.sectors)
डेविड गिल्बर्टन

1
मेरा मानना ​​है कि उपरोक्त क्वेरी द्वारा लौटाया गया डेटा अंततः इस URL biz.yahoo.com/ic/ind_index.html से उपलब्ध लिंक से आता है (ये अतिरिक्त URL उपयोगी भी हो सकते हैं: biz.yahoo.com/p/s_conameu.html , biz .yahoo.com / p / sum_conameu.html )
richardr

13
यह अब काम नहीं कर रहा है :(
आंद्रे पेना

1
मुझे लगता है कि मेज "yahoo.finance.sectors" को हटा दिया गया है। लेकिन अभी भी डेटा के लिए एक स्रोत है - केवल एक वेबपेज। (वास्तव में, यदि आप yQL.finance.sectors से 'select *' को YQL कंसोल पर developer.yahoo.com/yql/console पर करते हैं , तो रिटर्न में एम्बेड किया गया वेब पेज का लिंक है - biz.yahoo.com/ic /ind_index.html। ) तो आपको क्या करना है उस पृष्ठ को प्राप्त करने के लिए कुछ कोड लिखें और फिर उसमें से डेटा को पार्स करें। यह आपको क्षेत्रों की सूची, उन क्षेत्रों में उद्योगों और उद्योग आईडी (और आप उद्योग आईडी के पहले अंक से एक सेक्टर आईडी बना सकते हैं) दे देंगे।
स्टीव ग्रीन

24

NASDAQ स्टॉक सूचियाँ ftp://ftp.nasdaqtrader.com/symboldirectory

2 फाइलें nasdaqlisted.txt और otherlisted.txt हैं | पाइप अलग हो गया। आपको सभी शेयरों की एक अच्छी सूची देनी चाहिए।


मेरे जैसे आलसी के लिए: ftp.nasdaqtrader.com/SymbolDirectory ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt ftp.nasdaqtrader.com/SymbolDirectory/otherlisted.txt
1mike12

nasdaqtraded.txt आपको क्या चाहिए, यह उन दोनों सूचियों का संयुक्त है।
थीस्लोटनॉट

14

मैं (यूएस और गैर-अमेरिकी) शेयरों और ईटीएफ के लिए टिकर प्रतीकों की सूची के साथ मदद करने में सक्षम हो सकता हूं।

याहू एक आय कैलेंडर प्रदान करता है जो उन सभी शेयरों को सूचीबद्ध करता है जो किसी दिन के लिए कमाई की घोषणा करते हैं। इसमें गैर-अमेरिकी स्टॉक शामिल हैं।

उदाहरण के लिए, आज यहां है: http://biz.yahoo.com/research/earncal/20120710.html

URL का अंतिम भाग वह दिनांक है (YYYYMMDD प्रारूप में) जिसके लिए आप आय कैलेंडर चाहते हैं। आप कई दिनों के माध्यम से लूप कर सकते हैं और उन दिनों में कमाई की सूचना देने वाले सभी शेयरों के प्रतीकों को परिमार्जन कर सकते हैं।

इस बात की कोई गारंटी नहीं है कि याहू के पास सभी स्टॉक्स के लिए डेटा है जो कमाई की रिपोर्ट करते हैं, खासकर जब से कुछ स्टॉक मौजूद नहीं हैं (दिवालियापन, अधिग्रहण, आदि), लेकिन यह शायद एक अच्छा शुरुआती बिंदु है।

यदि आप परिचित हैं R, तो आप ऐसा करने के लिए qmao पैकेज का उपयोग कर सकते हैं । ( इस पोस्ट को देखें ) यदि आपको इसे स्थापित करने में समस्या है।

ec <- getEarningsCalendar(from="2011-01-01", to="2012-07-01") #this may take a while
s <- unique(ec$Symbol)
length(s)
#[1] 12223
head(s, 20) #look at the first 20 Symbols
# [1] "CVGW"    "ANGO"    "CAMP"    "LNDC"    "MOS"     "NEOG"    "SONC"   
# [8] "TISI"    "SHLM"    "FDO"     "FC"      "JPST.PK" "RECN"    "RELL"   
#[15] "RT"      "UNF"     "WOR"     "WSCI"    "ZEP"     "AEHR"   

इसमें कोई ईटीएफ, वायदा, विकल्प, बांड, विदेशी मुद्रा या म्यूचुअल फंड शामिल नहीं होंगे।

आप यहां याहू से ईटीएफ की एक सूची प्राप्त कर सकते हैं: http://finance.yahoo.com/etf/browser/mkt जो केवल पहले 20 दिखाता है। आपको उस पृष्ठ के नीचे "सभी दिखाएँ" लिंक के URL की आवश्यकता है । आप यह पता लगाने के लिए पेज को खुरच सकते हैं कि कितने ईटीएफ हैं, फिर एक यूआरएल का निर्माण करें।

L <- readLines("http://finance.yahoo.com/etf/browser/mkt")
# Sorry for the ugly regex
n <- gsub("^(\\w+)\\s?(.*)$", "\\1", 
          gsub("(.*)(Showing 1 - 20 of )(.*)", "\\3",  
               L[grep("Showing 1 - 20", L)]))
URL <- paste0("http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=", n)
#http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=1442

अब, आप उस पृष्ठ पर तालिका से टिकर निकाल सकते हैं

library(XML)
tbl <- readHTMLTable(URL, stringsAsFactors=FALSE)
dat <- tbl[[tail(grep("Ticker", tbl), 1)]][-1, ]
colnames(dat) <- dat[1, ]
dat <- dat[-1, ]
etfs <- dat$Ticker # All ETF tickers from yahoo
length(etfs)
#[1] 1442
head(etfs)
#[1] "DGAZ" "TAGS" "GASX" "KOLD" "DWTI" "RTSA"

यह उन सभी मदद के बारे में है जो मैं पेश कर सकता हूं, लेकिन आप कुछ ऐसे वायदे प्राप्त कर सकते हैं जो वे इन पृष्ठों को स्क्रैप करके पेश करते हैं (ये केवल यूएस वायदा हैं)

http://finance.yahoo.com/indices?e=futures , http://finance.yahoo.com/futures?t=energy , http://finance.yahoo.com/futures?t=metals , http: //finance.yahoo.com/futures?t=grains , http://finance.yahoo.com/futures?t=livestock , http://finance.yahoo.com/futures?t=softs , http: // Finance.yahoo.com/futures?t=indices ,

और, अमेरिका और गैर-अमेरिकी सूचकांकों के लिए, आप इन पृष्ठों को परिमार्जन कर सकते हैं

http://finance.yahoo.com/intlindices?e=americas , http://finance.yahoo.com/intlindices?e=asia , http://finance.yahoo.com/intlindices?e=europe , http: //finance.yahoo.com/intlindices?e=africa , http://finance.yahoo.com/indices?e=dow_jones , http://finance.yahoo.com/indices?e=new_nork , http: // finance.yahoo.com/indices?e=nasdaq , http://finance.yahoo.com/indices?e=sp , http://finance.yahoo.com/indices?e=other , http: // वित्त। yahoo.com/indices?e=treasury , http://finance.yahoo.com/indices?e=commodities


2
जैसा कि आपने लिखा है, मुझे इस तरह से सभी टिकर नहीं मिल सकते हैं और मेरे प्रोजेक्ट के लिए या तो यह सब (पूरी लिस्ट) है या इससे कोई फर्क नहीं पड़ता। लेकिन पूरी तरह से जवाब के लिए बहुत बहुत धन्यवाद, जीएसआई। इसकी प्रशंसा करना! एक महान दिन है :-)
rassom

8

मैं कुछ दिनों के लिए इस पर शोध कर रहा हूं, अंतहीन लीड्स के बाद, जो करीब थे, लेकिन काफी नहीं, मैं जो था उसके बाद।

मेरी जरूरत 'प्रतीक, क्षेत्र, उद्योग' की एक सरल सूची के लिए है। मैं जावा में काम कर रहा हूं और किसी भी प्लेटफॉर्म के मूल कोड का उपयोग नहीं करना चाहता।

ऐसा लगता है कि अधिकांश अन्य डेटा, जैसे उद्धरण, आदि, आसानी से उपलब्ध हैं।

अंत में, 'finviz.com' को देखने के सुझाव का पालन किया। लगता है कि बस टिकट है। निम्नलिखित का उपयोग करके देखें:

http://finviz.com/export.ashx?v=111&t=aapl,cat&o=ticker यह लाइनों, csv शैली, एक शीर्ष लेख पंक्ति के साथ, टिकर प्रतीक द्वारा आदेश दिया के रूप में वापस आता है। आप टिकर जोड़ते रह सकते हैं। कोड में, आप स्ट्रीम पढ़ सकते हैं। या आप ब्राउज़र से पूछ सकते हैं कि फ़ाइल को खोलना है या सहेजना है।

http://finviz.com/export.ashx?v=111&&o=ticker ही CSV शैली है, लेकिन सभी उपलब्ध प्रतीकों खींचती है (एक बहुत, वैश्विक एक्सचेंजों के पार)

Ener निर्यात ’को 'स्क्रूनर’ से बदलें और डेटा ब्राउज़र में दिखाई देगा।

कई और विकल्प हैं जिनका आप उपयोग कर सकते हैं, एक साइट पर हर स्क्रूनेर तत्व के लिए।

अब तक, यह सबसे शक्तिशाली और सुविधाजनक प्रोग्रामेटिक तरीका है जिससे डेटा के कुछ टुकड़े प्राप्त किए जा सकते हैं अन्यथा मैं आसानी से प्राप्त नहीं कर सकता। और, ऐसा लगता है कि यह साइट अधिकांश के लिए एक ही स्रोत हो सकती है जो आपको वास्तविक या निकट-वास्तविक समय उद्धरणों के अलावा अन्य की आवश्यकता हो सकती है।


4
प्रत्येक url I को परिमित
PUG

मुझे एलीट व्यापारी सेवा की सदस्यता लेनी थी, लेकिन यह इसके लायक है। धन्यवाद।
vlmercado

7

योहू प्रतीकों / टिकर / स्टॉक की पूरी सूची नीचे वेबसाइट पर डाउनलोड (एक्सेल प्रारूप) के लिए उपलब्ध है। http://www.myinvestorshub.com/yahoo_stock_list.php

सूची 2016 को अपडेट किया गया: http://investexcel.net/all-yahoo-finance-stock-tickers/


3
यह सूची कितनी पुरानी है?
जेरोन

1
यह सूची अधूरी लगती है, उदाहरण के लिए GOOG इस पर नहीं है।
user592419

यह सूची 3000 प्रतीकों को काट देती है। यह अमेरिका के लिए वर्णमाला क्रम में है जो FDEF पर समाप्त होता है। 3000 से कम प्रतीकों वाले अन्य बाजार बेहतर लगते हैं, जैसे कि हांगकांग। यह कहा कि मुझे पता नहीं है कि यह कैसे पूरा / पूरा होता है।
काल्पनिक

2
अधूरा और अटपटा लगता है।
जेन्स ए। कोच

लिंक अब काम नहीं कर रहा है
toshro92

1

इसके लिए मेरे पास एक वर्कअराउंड सेक्टरों पर चलना था (जो उस समय आप कर सकते थे ... मैंने हाल ही में इसका परीक्षण नहीं किया है)।

आप अंत में अवरुद्ध हो जाते हैं जब आप इसे इस तरह से करते हैं, हालांकि, YQL प्रति दिन थ्रॉटल हो जाता है।

इससे बचने के लिए जब भी संभव हो CSV API का उपयोग करें।


1

मेरे पास एक ही समस्या थी, लेकिन मुझे लगता है कि मेरे पास सरल समाधान है (कोड मेरे आरओआर ऐप से है): yahoo.finance.sectors से उद्योग आईडी निकालें और इसे db में जोड़ें:

    select = "select * from yahoo.finance.sectors"
    generate_query select
    @data.each do |data|
      data["industry"].each do |ind|
        unless ind.kind_of?(Array)
          unless ind["id"].nil?
            id = ind["id"].to_i
            if id > 0
              Industry.where(id: id).first_or_create(name: ind["name"]).update_attribute(:name, ind["name"])
            end
          end
        end
      end
    end

उद्योग आईडी के साथ उनके प्रतीकों के साथ सभी कॉमेक्स निकालें:

    ids = Industry.all.map{|ind| "'#{ind.id.to_s}'" }.join(",")
    select = "select * from yahoo.finance.industry where id in"
    generate_query select, ids
    @data.each do |ts|
      unless ts.kind_of?(Array) || ts["company"].nil?
        if ts["company"].count == 2 && ts["company"].first[0] == "name"
          t = ts["company"]
          Ticket.find_or_create_by_symbol(symbol: t["symbol"], name: t["name"] ).update_attribute(:name, t["name"])
        else
          ts["company"].each do |t|
            Ticket.find_or_create_by_symbol(symbol: t["symbol"], name: t["name"] ).update_attribute(:name, t["name"])
          end
        end
      end
    end
  end

कनेक्शन हेल्पर:

def generate_query(select, ids = nil)
    if params[:form] || params[:action] == "sectors" || params[:controller] == "tickets"
      if params[:action] == "sectors" || params[:controller] == "tickets"
        if ids.nil?
          query= select
        else
          query= "#{select} (#{ids})"
        end
      else
        if params[:form][:ids]
          @conditions = params_parse params[:form][:ids]
          query = "#{select} (#{@conditions})"
        end
      end
      yql_execut(query)
    end
  end

  def yql_execut(query)
    # TODO: OAuth ACCESS (http://developer.yahoo.com/yql/guide/authorization.html)
    base_url = "http://query.yahooapis.com/v1/public/yql?&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q="
    dirty_data = JSON.parse(HTTParty.get(base_url +  URI.encode(query)).body)
    if dirty_data["query"]["results"] == nil
      @data, @count, @table_head = nil
    else
      @data = dirty_data["query"]["results"].to_a[0][1].to_a
      @count = dirty_data["query"]["count"]
      if @count == 1
        @table_head = @data.map{|h| h[0].capitalize}
      else
        @table_head = @data.to_a.first.to_a.map{|h| h[0].capitalize}
      end
    end
  end

गड़बड़ी के लिए खेद है, लेकिन यह मेरी परियोजना के लिए पहला परीक्षण संस्करण है और मुझे इसकी बहुत तेज़ी से आवश्यकता है। मेरे ऐप के लिए कुछ हेल्पर्स वेरैबल्स और अन्य चीजें हैं, इसके लिए क्षमा करें। लेकिन मेरे पास सवाल है: क्या आपके पास कई प्रतीक हैं? मेरे पास 5500 हैं।


5500 शायद केवल यूएस स्टॉक सिंबल होंगे (दुनिया भर में याहू फाइनेंस अधिक शामिल है - जैसा कि आप स्वीकार किए गए उत्तर में देख सकते हैं, उन्हें लगभग 75,000 प्रतीक मिले हैं! :) ... रूबी को अभी तक स्वीकार किए गए उत्तर नहीं बदला है। (मैं भी RoR का उपयोग कर रहा हूं), इसलिए यदि आप इसे काम करते हैं, अर्थात अधिक प्रतीक पाते हैं, तो कृपया मुझे बताएं। धन्यवाद! :-)
रासोम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.