แหล่งที่มาของข้อมูลหุ้นในอดีต [ปิด]


239

ฉันกำลังพยายามสร้างตัวจำลองการลงทุนในตลาดหุ้น (บางทีในที่สุดก็อาจกลายเป็น AI ที่ทำนายไว้) แต่ฉันมีปัญหาในการค้นหาข้อมูลที่จะใช้ ฉันกำลังมองหาแหล่งข้อมูลการลงทุนในตลาดหุ้นที่ผ่านมา (ฟรีหวังว่า)

เป็นการดีที่มันจะเป็นชุดข้อมูลที่ละเอียดมาก (ช่วงเวลาที่สองหรือนาที) ที่มีราคาและปริมาณของทุกสัญลักษณ์ใน NASDAQ และ NYSE (และบางทีอาจเป็นอย่างอื่นถ้าฉันชอบผจญภัย) ไม่มีใครรู้แหล่งที่มาของข้อมูลดังกล่าวหรือไม่

ฉันพบคำถามนี้ซึ่งระบุว่า Yahoo เสนอข้อมูลย้อนหลังในรูปแบบ CSV แต่ฉันไม่สามารถค้นหาวิธีการตรวจสอบเว็บไซต์ที่เชื่อมโยงอย่างคร่าว ๆ

ฉันไม่ชอบความคิดในการดาวน์โหลดข้อมูลเป็นส่วนย่อยในไฟล์ CSV ... ฉันคิดว่า Yahoo จะทำให้เสียและปิดฉันหลังจากคำขอสองสามพันครั้งแรก

ฉันค้นพบอีกคำถามหนึ่งที่ทำให้ฉันคิดว่าฉันไปถึงแจ็คพอต แต่น่าเสียดายที่เว็บไซต์ OpenTick ดูเหมือนจะปิดประตูแล้ว ... แย่มากเนื่องจากฉันคิดว่าพวกเขาเป็นสิ่งที่ฉันต้องการ

ฉันยังสามารถใช้ข้อมูลที่เป็นเพียงราคาเปิด / ปิดและปริมาณของสัญลักษณ์ทุกวันได้ แต่ฉันต้องการข้อมูลทั้งหมดถ้าฉันได้รับ ข้อเสนอแนะอื่น ๆ ?


4
@rmeador, Yahoo จะไม่ปิดคุณไม่ว่าคุณจะร้องขอกี่ครั้งก็ตาม แต่ Google จะปิดคุณ ฉันสามารถดาวน์โหลดข้อมูลเกี่ยวกับ EOD ราคา 4GB จาก Yahoo ในเวลาประมาณ 5-6 ชั่วโมงโดยไม่ต้องปิดเครื่อง นั่นคือประมาณ 7,000 หุ้นที่มีราคาย้อนหลัง EOD ตั้งแต่เข้าตลาด ดูคำตอบของฉันสำหรับข้อมูลเพิ่มเติมและตัวอย่างซอร์สโค้ด
คิริล

ฉันรู้สึกว่าข้อมูล EOD ไม่ได้ให้ข้อมูลเพียงพอ หากคุณต้องการราคาและการซื้อขาย tick-by-tick ฉันเชื่อว่าpolygon.ioนั้นถูกที่สุด
Quinton Pike

คำตอบ:


226

ให้ฉันเพิ่ม 2 ¢เป็นหน้าที่ของฉันในการรับข้อมูลที่ดีและสะอาดสำหรับกองทุนป้องกันความเสี่ยงฉันได้เห็นฟีดข้อมูลจำนวนมากและผู้ให้บริการข้อมูลประวัติ นี่คือส่วนใหญ่เกี่ยวกับข้อมูลหุ้นสหรัฐ

เริ่มต้นด้วยหากคุณมีเงินไม่ต้องกังวลกับการดาวน์โหลดข้อมูลจาก Yahoo ให้รับข้อมูลสิ้นวันโดยตรงจากข้อมูล CSIนี่คือสิ่งที่ Yahoo ได้รับข้อมูล EOD ของพวกเขาเช่น AFAIK พวกเขามี API ที่คุณสามารถดึงข้อมูลเป็นรูปแบบที่คุณต้องการ ฉันคิดว่าการสมัครสมาชิกรายปีสำหรับข้อมูลคือไม่กี่ดอลลาร์ $ 100

ปัญหาหลักของการดาวน์โหลดข้อมูลจากบริการฟรีคือคุณจะได้รับหุ้นที่ยังมีอยู่เท่านั้นเรียกว่าSurvivorship Biasและสามารถให้ผลลัพธ์ที่ผิดถ้าคุณดูหุ้นหลายตัวเพราะคุณจะใส่เฉพาะที่มีอยู่ ไกลและไม่ใช่รายการที่ไม่อยู่ในรายการ

สำหรับการเล่นกับข้อมูลระหว่างวันที่ฉันดูเป็นIQFeedจะมี API หลายตัวเพื่อดึงข้อมูลประวัติแม้ว่าจะเป็นชุดสำหรับฟีดตามเวลาจริง แต่ที่นี่มีตัวเลือกค่อนข้างน้อยโบรกเกอร์บางรายยังให้ดาวน์โหลดข้อมูลประวัติผ่าน API ของพวกเขาดังนั้นเพียงแค่เลือกพิษของคุณ

แต่โดยปกติแล้วข้อมูลทั้งหมดนี้จะไม่สะอาดมากเมื่อคุณเริ่มการทดสอบจริง ๆ คุณจะเห็นว่ามีบางหุ้นที่ขาดหายไปหรือปรากฏเป็นสัญลักษณ์ที่แตกต่างกันสองตัว ข้อมูลการจ่ายเงินปันผลก็เป็นสิ่งจำเป็นเช่นกันดังนั้นคุณจึงเริ่มทำงานเป็นวงกลมรวบรวมข้อมูลจากแหล่งข้อมูลที่แตกต่างกัน 100 แหล่งและอื่น ๆ ดังนั้นในการเริ่มต้นด้วยฟีดข้อมูล "ส่วนลด" จะทำ แต่ทันทีที่คุณรัน backtests ที่ครอบคลุมมากขึ้นคุณอาจพบปัญหาขึ้นอยู่กับสิ่งที่คุณทำ หากคุณเพียงแค่ดูสมมติว่าหุ้น S&P 500 สิ่งนี้จะไม่เป็นปัญหามากนักและฟีดระหว่างวันที่ "ถูก" จะทำ

สิ่งที่คุณจะไม่พบคือข้อมูลระหว่างวันฟรี ฉันหมายความว่าคุณอาจพบตัวอย่างฉันแน่ใจว่ามีบางแห่ง 5 ปีของข้อมูลเห็บ MSFT ที่ลอยไปมา แต่นั่นจะไม่ทำให้คุณไปไกลนัก

แล้วถ้าคุณต้องการสิ่งที่จริง (ที่สั่งจองในระดับที่สองเห็บทั้งหมดที่พวกเขาได้ที่เกิดขึ้นในการแลกเปลี่ยนทั้งหมด) หนึ่ง "แพง" ยังยอดเยี่ยมตัวเลือกNanex พวกเขาจะจัดส่งไดรฟ์ที่มีข้อมูลเทราไบต์ให้คุณจริงๆ ถ้าฉันจำได้ถูกต้องข้อมูลจะอยู่ที่ประมาณ $ 3k-4K ต่อปี แต่เชื่อฉันเถอะเมื่อคุณเข้าใจว่ามันยากแค่ไหนที่จะได้รับข้อมูลระหว่างวันที่ดีคุณจะไม่คิดว่านี่เป็นเงินจำนวนมากเลย

ไม่ใช่เพื่อกีดกันคุณ แต่การได้รับข้อมูลที่ดีนั้นเป็นเรื่องยากดังนั้นความจริงที่ว่ากองทุนเฮดจ์ฟันด์และธนาคารหลายแห่งใช้เงินหลายแสนดอลลาร์ต่อเดือนเพื่อรับข้อมูลที่พวกเขาสามารถเชื่อถือได้ อีกครั้งคุณสามารถเริ่มต้นที่ไหนสักแห่งแล้วไปจากที่นั่น แต่เป็นการดีที่จะได้เห็นมันในบริบท


แก้ไข: คำตอบข้างต้นมาจากประสบการณ์ของฉันเอง นี้เขียนขึ้นจากคาลเทคเกี่ยวกับฟีดข้อมูลที่มีอยู่จะให้ข้อมูลเชิงลึกมากขึ้นและโดยเฉพาะอย่างยิ่งแนะนำQuantQuote


18
+1 สำหรับการชี้ให้เห็นข้อมูล 3 ระดับ (hist, intra, level II) และสำหรับความเห็นที่ลึกซึ้งเกี่ยวกับคำตอบของผู้อื่น (ความสมบูรณ์, ความสะอาด, ขนาดการจัดเก็บ, ชุดข้อมูล ... )
Host Host

2
CSI นั้นยอดเยี่ยม แต่เพียง FYI หุ้นที่ถูกเพิกถอนขณะนี้เป็นบริการพรีเมี่ยมไม่รวมอยู่ในแพ็คเกจพื้นฐานอีกต่อไป เพียงแค่ FYI
Olie

1
CSI ยอดเยี่ยม แต่ราคาแพง หากคุณใช้ Unfair Advantage คุณจะผูกพันกับแอปพลิเคชันของพวกเขา มันน่าเบื่อที่จะใช้มันทุกวันเพื่ออัปเดตประวัติของคุณ หากคุณต้องการดาวน์โหลดจาก http หรือ ftp ด้วย CSI คุณต้องจ่ายประมาณ 200 €ต่อเดือน ขออภัยมันแพงเกินไป
davidxxx

@davidh, CSI Unfair Advantage มี ActiveX API ซึ่งคุณสามารถส่งออกข้อมูลทั้งหมดของการสมัครสมาชิกของคุณโดยอัตโนมัติ ใช้เวลาประมาณหนึ่งวันในการเขียนเครื่องมือผู้ส่งออกที่มีประสิทธิภาพ ... หากคุณรู้จักตัวเลือกที่ถูกกว่าที่มีคุณภาพเดียวกับ CSI คุณสามารถโพสต์ทางเลือกได้!
lukebuehler

หมายเหตุเกี่ยวกับ QuantQuote: พวกเขาจะตรวจสอบ / ประมวลผลคำสั่งซื้อของคุณภายใน 48 ชั่วโมงหลังจากการซื้อ ในกรณีที่คุณคิดว่าคุณสามารถเข้าถึงได้ทันที
fionbio

94

คำตอบนี้ไม่ถูกต้องอีกต่อไปตามที่ YHOHOO ป้อนมาให้มีอยู่

การใช้วิธีการ CSV ของ Yahoo ข้างต้นคุณสามารถรับข้อมูลในอดีตได้! คุณสามารถทำวิศวกรรมย้อนกลับตัวอย่างต่อไปนี้:

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

เป็นหลัก:

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

รายการพารามิเตอร์ที่สมบูรณ์:

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

หน้านี้มีแท็กพิเศษของตารางที่สามารถใช้ใน URL
user443854

9
ปัญหาใหญ่ในการรับข้อมูลจาก Yahoo หรือบริการออนไลน์ใดก็ตามคือคุณไม่ได้รับการเพิกถอนหุ้นดังนั้นคุณจะรีบเข้าสู่อคติที่รอดชีวิตอย่างรวดเร็ว ดีกว่า follw Eric H. หรือคำแนะนำของฉันและตรงไปที่ CSI
lukebuehler

หน้านี้เคยมีแท็กพิเศษของตารางที่สามารถใช้ใน URL ... "Yahoo เชื่อว่าการใช้และการกระจายของเครื่องมือและเนื้อหาที่อยู่ที่ ... ถือเป็นการฝ่าฝืนส่วนที่ 6, 12 และ 18 ของ ข้อกำหนดในการให้บริการ (ท่ามกลางบทบัญญัติอื่น ๆ ) ก่อให้เกิดการแข่งขันที่ไม่เป็นธรรมและกำหนดให้ผู้อื่นละเมิดข้อกำหนดในการให้บริการ ... โดยการรบกวนความสัมพันธ์ตามสัญญาและธุรกิจเหล่านี้ ประโยชน์ของบริการที่มีให้ที่เว็บไซต์การเงินของ Yahoo " Thumbs down บน Yahoo
Mustapha George

ฉันเพิ่มสวิตช์ที่เหลือจากบันทึกย่อของฉันซึ่งเคยพบในหน้าเว็บนั้น การนำเสนอสิ่งเหล่านี้ที่นี่ดูเหมือนจะไม่ฝ่าฝืนต่อ ToS ที่พบที่นี่: Policies.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/ ...... Yahoo ต้องโกรธเกี่ยวกับเครื่องมือข้อมูล Excel ที่เคยเป็นเช่นนี้ด้วย พร้อมใช้งานบนไซต์นั้น
Fredrik E

2
ฟีดข้อมูลนี้ไม่มีอีกแล้ว
MichaelICE

47

ฉันรู้ว่าคุณต้องการ "ฟรี" แต่ฉันต้องการพิจารณารับข้อมูลอย่างจริงจังจากcsidata.comประมาณ $ 300 / ปีถ้าฉันเป็นคุณ

มันเป็นสิ่งที่ yahoo ใช้เพื่อให้ข้อมูลของพวกเขา

มันมาพร้อมกับ API ที่เหมาะสมและข้อมูลนั้น (เท่าที่ฉันบอกได้) สะอาดมาก

คุณจะได้รับประวัติ 10 ปีเมื่อคุณสมัครรับข้อมูลจากนั้นอัปเดตทุกคืนหลังจากนั้น

พวกเขายังดูแลทุกสิ่งที่น่ารังเกียจเช่นแยกและเงินปันผลให้คุณ หากคุณยังไม่ได้ค้นพบความสุขที่ทำความสะอาดข้อมูลคุณจะไม่เข้าใจว่าคุณต้องการสิ่งนี้มากน้อยเพียงใดจนกระทั่งครั้งแรกที่ ATS (ระบบการซื้อขายอัตโนมัติ) ของคุณคิดว่าหุ้นบางตัวราคาถูกจริงๆ : 1 และคุณไม่ได้สังเกต


1
API รองรับภาษาใดบ้าง
user443854

1
พวกเขามี ActiveX API ซึ่งคุณสามารถโทรด้วยรหัส c ++ หรือ C # หรืออะไรก็ได้ใน windows เพื่อรับข้อมูลของคุณ
lukebuehler

1
น่าสนใจ การแยกและการจัดการเงินปันผลแตกต่างจาก Yahoo อย่างไร
Matthew Lock

1
@ MatthewLock ฉันไม่ได้ 100% เกี่ยวกับเรื่องนี้ แต่ฉันคิดว่า Yahoo ใช้ผู้ให้บริการข้อมูล "กิจกรรมองค์กร" ที่แตกต่างกันและจากนั้นใช้ข้อมูล CSI ดิบที่ปรับปรุงโดยกิจกรรมองค์กร บทความเก่า ๆ นี้ให้ข้อมูลเชิงลึก: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler

2
CSI นั้นยอดเยี่ยม แต่เพียง FYI หุ้นที่ถูกเพิกถอนขณะนี้เป็นบริการพรีเมี่ยมไม่รวมอยู่ในแพ็คเกจพื้นฐานอีกต่อไป เพียงแค่ FYI
Olie

16

ชุดข้อมูลของสัญลักษณ์ใน NASDAQ และ NYSE ในช่วงที่สองหรือทุกนาทีจะเป็นขนาดใหญ่

สมมติว่ามี บริษัท ทั้งหมด 4000 บริษัท ที่จดทะเบียนในตลาดหลักทรัพย์ทั้งสองแห่ง (อาจเป็นในด้านที่ต่ำมากเนื่องจากมีบริษัท มากกว่า 3200 บริษัทจดทะเบียนใน NASDAQ) สำหรับข้อมูลในช่วงเวลาที่สองสมมติว่ามี 6.5 ชั่วโมงการซื้อขายต่อวันซึ่งจะให้ 23400 จุดข้อมูลต่อวันต่อ บริษัท หรือประมาณ 93,600,000 จุดรวมในหนึ่งวัน สมมติว่า 200 วันทำการในหนึ่งปีนั่นคือจุดข้อมูลประมาณ 18,720,000,000 จุดในเวลาเพียงหนึ่งปี

คุณอาจต้องการเริ่มด้วยชุดที่เล็กกว่าก่อน?


2
ฉันทำงานภายใต้สมมติฐานที่ว่า บริษัท ส่วนใหญ่จะไม่ทำการซื้อขายทุกวินาทีดังนั้นจำนวนจุดข้อมูลจะลดลงอย่างมีนัยสำคัญ อาจเป็นข้อสมมติฐานที่ไม่ดี ยังคงฉันได้รับการคาดการณ์เกี่ยวกับคำสั่งของ 10s ของ GB ต่อปี ...
rmeador

หนึ่งในสองสามเดือนของข้อมูลสต็อกสำหรับเช่นสัญลักษณ์ 10 ตัวมาในดีวีดี 3 แผ่น ข้อมูลถูกบีบอัดข้อความเช่นกัน
อลัน

1
@ rmeador นั้นเป็นเรื่องจริง แต่ก็มีบางหุ้นที่มีปริมาณรายวันมากกว่าที่มีวินาทีในหนึ่งวันซึ่งหมายความว่าพวกเขาซื้อขายมากกว่าหนึ่งวินาทีต่อวินาทีและไม่ใช่การค้าทั้งหมดที่รับประกันว่าจะมีราคาเดียวกัน ดังนั้นคุณต้องตัดสินใจว่าคุณสนใจราคาเป็นช่วงเวลาหรือที่การค้า
ด้าน b

2
หากคุณต้องการทุกสิ่งเช่นการเสนอราคาระดับ II ของการแลกเปลี่ยนทั้งหมด ฯลฯ มันเป็น TB ไม่กี่ปีในรูปแบบการบีบอัด suuuuper (ประมาณ 5GB ต่อวันซื้อขาย) ถ้าคุณจะเก็บข้อมูลนาทีมันน้อยจริงๆประมาณ 10GBs 10 ปีของหุ้นทั้งหมด ...
lukebuehler

16

คำแนะนำ:
จาก yahoo คุณสามารถรับราคาย้อนหลัง EOD (สิ้นวัน) หรือราคาเรียลไทม์ ราคา EOD นั้นง่ายมากที่จะดาวน์โหลด ดูบล็อกของฉันสำหรับคำอธิบายเกี่ยวกับวิธีการรับข้อมูลและตัวอย่างรหัส C #

ฉันอยู่ในขั้นตอนการเขียนฟีดข้อมูล "เอ็นจิ้น" แบบเรียลไทม์ที่ดาวน์โหลดและเก็บราคาตามเวลาจริงในฐานข้อมูล เอ็นจิ้นแรกจะสามารถดาวน์โหลดราคาย้อนหลังได้จาก Yahoo และ Interactive Brokers และมันจะสามารถเก็บข้อมูลในฐานข้อมูลที่คุณเลือกได้: MS SQL, MySQL, SQLite ฯลฯ เป็นโอเพ่นซอร์ส แต่ฉันจะโพสต์เพิ่มเติม ข้อมูลในบล็อกของฉันเมื่อฉันเข้าใกล้บล็อก (ภายในสองสามวัน)

อีกตัวเลือกคือผู้ค้า eclipse ... ช่วยให้คุณสามารถบันทึกข้อมูลประวัติด้วยความละเอียดที่ต่ำเพียง 1 นาทีและเก็บราคาไว้ในไฟล์ข้อความ โดยทั่วไปจะดาวน์โหลดข้อมูลเรียลไทม์จาก Yahoo ด้วยความล่าช้า 15 นาที เนื่องจากฉันต้องการโซลูชันที่มีประสิทธิภาพมากขึ้นและฉันกำลังทำงานในโครงการโรงเรียนขนาดใหญ่ที่ต้องการข้อมูลฉันจึงตัดสินใจเขียนเครื่องมือป้อนข้อมูลของตัวเอง (ซึ่งฉันได้กล่าวไว้ข้างต้น)

โค้ดตัวอย่าง:
นี่คือตัวอย่างโค้ด C # ที่สาธิตวิธีการดาวน์โหลดข้อมูลแบบเรียลไทม์:

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();
    }
}

ฐานข้อมูล:
ในด้านฐานข้อมูลฉันใช้การOleDbเชื่อมต่อกับไฟล์ CSV เพื่อเติมข้อมูลDataSetและจากนั้นฉันอัปเดตฐานข้อมูลจริงของฉันผ่านทางDataSetโดยทั่วไปจะทำให้ตรงกับคอลัมน์ทั้งหมดจากไฟล์ CSV ที่ส่งคืนจาก Yahoo โดยตรงไปยังฐานข้อมูลของคุณ ถ้าฐานข้อมูลของคุณไม่รองรับการแทรกแบตช์ของข้อมูล CSV เช่น SQLite) มิฉะนั้นการแทรกข้อมูลเป็นเพียงบรรทัดเดียว ... เพียงแบตช์แทรก CSV ลงในฐานข้อมูลของคุณ

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการจัดรูปแบบของ URL ได้ที่นี่: http://www.gummy-stuff.org/Yahoo-data.htm


มหากาพย์ฉันต้องการฉันพบสิ่งนี้ก่อนหน้านี้
ojblass

นั่นให้ข้อมูลตามเวลาจริงตามที่คุณแนะนำจริงหรือไม่ จากหน้านั้นจะมีพารามิเตอร์นี้ "k1" แต่ครั้งสุดท้ายที่ฉันตรวจสอบก็ยังมีความล่าช้า
Antony

@Antony ส่วนใหญ่มีความล่าช้าในการเรียงลำดับบางอย่างดังนั้นมันก็ขึ้นอยู่กับว่าคุณอดทนกับความล่าช้าอย่างไร Yahoo บอกว่าพวกเขาให้ข้อมูลแบบเรียลไทม์ แต่แน่นอนว่าไม่ใช่สำหรับทิกเกอร์ทั้งหมด ทิกเกอร์ที่ไม่ใช่เวลาจริงจะล่าช้าถึง 15 นาที แม้ว่าคุณจะได้รับเซิร์ฟเวอร์ร่วมอยู่ในการแลกเปลี่ยนที่จะยังคงมี"ความล่าช้าบาง" ดังนั้นความล่าช้าแบบไหนที่คุณยอมทน
คิริล

มันไม่น่าเชื่อถือ บอกฉันว่าทำไมตอนนี้ถึงใช้งานไม่ได้เช่น: real-chart.finance.yahoo.com/ใช้จากfinance.yahoo.com/q/…
mmm

9

NASDAQ เสนอข้อมูล EOD ในอดีตเป็นเวลา 10 ปีสำหรับแต่ละสัญลักษณ์

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

คุณสามารถทำการดาวน์โหลดข้อมูลนี้โดยอัตโนมัติ


แหล่งที่ดี พวกเขาเปลี่ยนระบบคำขอดังนั้นตอนนี้คำขอทั้งหมดจะถูกประมวลผลด้วย JS (เช่นnasdaq.com/symbol/aapl/historical ) มีวิธีใดที่จะทำให้เป็นอัตโนมัติหรือไม่?
Anton Tarasenko

ใช่เป็นไปได้ที่จะทำให้เป็นอัตโนมัติ คุณต้องใช้ดมกลิ่นเช่น Telerik และดูว่าข้อมูลได้รับ (ผ่าน POST) ตราบใดที่คุณส่งตัวแปรโพสต์ที่ถูกต้องคุณควรได้รับข้อมูล
Nick_F

1
ยังใช้งานได้ไหม มีข้อมูลระหว่างวันหรือไม่?
Lee

8

สำหรับข้อมูลฟรีของผู้รอดชีวิตแหล่งข้อมูลที่น่าเชื่อถือเพียงแหล่งเดียวที่ฉันพบคือ QuantQuote ( http://quantquote.com )

ข้อมูลมาในนาที, วินาทีหรือความละเอียดของเห็บเชื่อมโยงไปยังพวกเขาข้อมูลหุ้นในอดีต

มีข้อเสนอแนะสำหรับ kibot ข้างต้น ฉันจะทำการค้นหา google อย่างรวดเร็วก่อนที่จะซื้อจากพวกเขาคุณจะพบโพสต์มากมายเช่นนี้พร้อมคำเตือนเกี่ยวกับปัญหาคุณภาพข้อมูล kibot มันยังบอกด้วยว่าพวกมันที่รอดชีวิตจากอคติอิสระ sp500 มีเพียง 570 สัญลักษณ์เป็นเวลา 14 ปี ว่าเป็นไปไม่ได้สวยมาก SP500 เปลี่ยนแปลง 1-2 สัญลักษณ์ต่อเดือน ....


3
kibot มีสัญลักษณ์ฟรีเพียง 3 ตัวเท่านั้น ส่วนที่เหลือต้องจ่าย! เขาเพิ่งทำโฆษณา
bouncingHippo

ข้อมูลรายวันของ Quantquote ฟรีไม่มีเอกสาร: ไม่มีส่วนหัวคอลัมน์ในไฟล์ csv และไม่มีเอกสารใด ๆ
user443854

มีเอกสารประกอบรูปแบบโดยทั่วไปเหมือนกับชุดข้อมูลความละเอียดนาที
user788171

quantquote.com มีข้อผิดพลาดมากมายในข้อมูล
Ivelin

พวกเขาเสนอข้อมูลอย่างละเอียดฟรีสำหรับ IBM ตั้งแต่ปี 1998 มันดีพอสำหรับฉัน ฉันต้องการเพียงหนึ่งสัญลักษณ์เพื่อทดสอบการบีบอัด: kibot.com/buy.aspx
Sergei Rodionov

7

น่าเสียดายที่ข้อมูลประวัติสัญลักษณ์ที่ให้บริการฟรีนั้นหาได้ยาก ตอนนี้ opentick นั้นตายไปแล้วฉันก็ไม่รู้จากผู้ให้บริการรายอื่น

ในช่วงก่อนหน้านี้ฉันทำงานให้กับ Hedgefund ที่มีระบบการซื้อขายอัตโนมัติและเราใช้ข้อมูลย้อนหลังอย่างล้นเหลือ

เราใช้ TickData สำหรับแหล่งที่มาของเรา ราคาของพวกเขาสมเหตุสมผลและข้อมูลมีความละเอียดย่อยที่สอง


6

เราซื้อข้อมูลระหว่างวัน 12 ปีจากKibot.comและค่อนข้างพอใจกับคุณภาพ

สำหรับความต้องการในการจัดเก็บข้อมูล 12 ปีของข้อมูล 1 นาทีสำหรับทุกหน่วยงานในสหรัฐอเมริกา (มากกว่า 8000 สัญลักษณ์) ประมาณ 100GB

ด้วยสถานการณ์ข้อมูลที่ติ๊กต่อสัญญาจะแตกต่างกันเล็กน้อย หากคุณบันทึกเวลาและการขายเท่านั้นนั่นจะเป็นข้อมูลประมาณ 30GB ต่อเดือนสำหรับตราสารทุนในสหรัฐอเมริกาทั้งหมด หากคุณต้องการจัดเก็บการเสนอราคา / ถามการเปลี่ยนแปลงพร้อมกับการทำธุรกรรมคุณสามารถคาดหวังประมาณ 150GB ต่อเดือน

ฉันหวังว่านี่จะช่วยได้. โปรดแจ้งให้เราทราบหากมีสิ่งใดที่ฉันสามารถช่วยคุณได้


1
ยังคงพอใจกับ KiBot @ boe100 หรือไม่
JaredBroad

@ boe100 พวกเขามีทั้งปรับและราคาปรับ? พวกเขามี betas และ deltas หรือไม่
user443854

มีทั้งข้อมูลที่ปรับและไม่ได้ปรับปรุง สามารถอัปเดตข้อมูลของคุณโดยใช้ HTTP API หรือดาวน์โหลดไฟล์เก็บถาวรใหม่จากเซิร์ฟเวอร์ FTP ทุกวัน ไม่มีการคำนวณ betas หรือ delta
boe100

@ boe100 คุณสามารถแบ่งปันข้อมูลของคุณได้ไหม?
Tomasz Waszczyk

2
@Tomasz ฮ่า ๆ ความคิดเห็นของคุณทำให้วันของฉัน: D
Corneliu Maftuleac

6

ผมขอเพิ่มแหล่งที่ฉันเพิ่งค้นพบพบที่นี่

มันมีข้อมูลสต็อกในอดีตจำนวนมากในรูปแบบ CSV และรวบรวมโดย Andy Pavlo ซึ่งตามหน้าแรกของเขาคือ "ผู้ช่วยศาสตราจารย์ในภาควิชาวิทยาการคอมพิวเตอร์ที่มหาวิทยาลัย Carnegie Mellon"


นี่เป็นสิ่งที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการดูยุ่งเหยิงด้วยข้อมูลการลงทุนในตลาดหุ้นที่มีขนาดใหญ่พอ
Ciaran Gallagher

1
หน้าเว็บลง ...
Brethlosze


5

Mathematica nowoadays ยังมีการเข้าถึงราคาหุ้นทั้งในอดีตและปัจจุบันดู http://reference.wolfram.com/mathematica/ref/FinancialData.html หากคุณมีสำเนาของมัน


5
ขั้นตอนเวลาที่เล็กที่สุดคือday
kirill_igum

ขอบคุณที่แจ้งให้เราทราบ - มันไม่ยอดเยี่ยมจริงๆ ...
Tom Wenseleers

4

คุณสามารถใช้ yahoo เพื่อรับข้อมูลรายวัน (ชุดข้อมูลที่จัดการได้มากขึ้น) แต่คุณต้องจัดโครงสร้าง URL ดูลิงค์นี้ คุณไม่ได้ทำคำขอน้อยมากที่คุณกำลังทำคำขอขนาดใหญ่น้อยลง ซอฟต์แวร์ฟรีจำนวนมากใช้สิ่งนี้ดังนั้นพวกเขาจึงไม่ควรปิดตัวลง

แก้ไข: ผู้ชายคนนี้ทำบางทีคุณอาจจะได้เห็นสายที่ซอฟต์แวร์ของเขาทำ


ตอนแรกฉันคิดว่าลิงก์นั้นดูมีแนวโน้ม แต่ฉันไม่สามารถหาวิธีระบุข้อมูลในอดีตได้ ... ดูเหมือนว่ามันจะเป็นแบบเรียลไทม์ ฉันพลาดอะไรไปรึเปล่า?
rmeador

คุณพูดถูก ฉันได้เพิ่มลิงค์ของใครบางคนพร้อมซอฟต์แวร์ที่ทำสิ่งประวัติศาสตร์เพื่อให้ฉันรู้ว่ามันเป็นไปได้ อาจจะดูการโทรของซอฟต์แวร์ของเขา
jimconstable

4

Yahoo เป็นตัวเลือกที่ง่ายที่สุดในการรับข้อมูลเบื้องต้นฟรี ลิงค์ที่อธิบายไว้ในคำตอบของ eckesicle สามารถใช้งานได้ง่ายในโค้ดไพ ธ อน แต่คุณต้องใช้ทิกเกอร์ทั้งหมดก่อน ฉันจะใช้ NYSE สำหรับตัวอย่างนี้ แต่สามารถใช้สำหรับการแลกเปลี่ยนที่แตกต่างกันเช่นกัน

ฉันใช้หน้าวิกินี้เพื่อดาวน์โหลดทิกเกอร์ของ บริษัท ทั้งหมดด้วยสคริปต์ต่อไปนี้ (ฉันไม่ใช่ Pythonist ที่มีความสามารถมากขอโทษด้วยถ้ารหัสนี้ไม่มีประสิทธิภาพมาก):

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()

สำหรับการดาวน์โหลดแต่ละทิกเกอร์ฉันใช้สคริปต์อื่นที่คล้ายกันมาก:

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()

ขอให้สังเกตว่าข้อเสียที่สำคัญของวิธีนี้คือมีข้อมูลที่แตกต่างกันสำหรับ บริษัท ต่าง ๆ - บริษัท ที่ไม่มีข้อมูลอยู่ในวันที่ร้องขอ (รายการใหม่) จะได้รับหน้า 404

โปรดทราบว่าวิธีนี้เหมาะสำหรับข้อมูลเบื้องต้นเท่านั้น - หากคุณต้องการทดสอบอัลกอริทึมของคุณจริง ๆ คุณควรจ่ายบิตและใช้ผู้ให้บริการข้อมูลที่เชื่อถือได้เช่น CSIData หรืออื่น ๆ


การใส่การประกาศโกลบอลในเนมสเปซส่วนกลางนั้นไม่จำเป็น แต่เป็นการตอบสนองที่ดีอยู่ดี
ลุคเทย์เลอร์

1
บริการลง ...
Brethlosze

3

ทำไมไม่สร้างโมเดลตลาดหุ้นปลอมด้วย Brownian Motion

ทรัพยากรมากมายสำหรับการทำ ใช้งานง่าย

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


1
:-) เพื่อทำให้เป็นจริงยิ่งขึ้นคุณจะต้องสร้างการเคลื่อนไหวแบบบราวเนียนแบบเศษส่วนและแม้จะไม่จริงสำหรับข้อมูลตลาดปลอมที่เหมือนจริงมากที่สุดคุณจะต้องมีมิติเวลาเศษส่วน ... เข็มจะบอกว่ามัน ค่อนข้างซับซ้อน ดีกว่าแค่ซื้อข้อมูลตลาดจริง ...
lukebuehler

นอกจากนี้ยังไม่ได้ช่วยให้การเคลื่อนไหวของสต็อกไม่ใช่ lognormal :)
Paul Milovanov

3

ฉันใช้ eodData.com มันค่อนข้างราคาที่เหมาะสม สำหรับ 30 ดอลลาร์ต่อเดือนคุณจะได้รับ 30 วันที่ 1,5 และ 60 นาทีบาร์สำหรับการแลกเปลี่ยนในสหรัฐฯและข้อมูล EOD 1 ปีสำหรับผู้อื่น


2

ฉันจะรวบรวมข้อมูล Finance.google.com (สำหรับเครื่องหมายคำพูด) - หรือ finance.yahoo.com

ทั้งสองนี้จะส่งคืนหน้า html สำหรับการแลกเปลี่ยนส่วนใหญ่ทั่วโลกรวมถึงประวัติ จากนั้นเป็นเรื่องของการแยกวิเคราะห์ HTML เพื่อแยกสิ่งที่คุณต้องการ

ฉันเคยทำสิ่งนี้มาแล้วด้วยความสำเร็จที่ยิ่งใหญ่ อีกทางเลือกหนึ่งถ้าคุณไม่สนใจการใช้ Perl มีหลายโมดูลใน CPAN ที่ทำงานให้คุณ - นั่นคือการดึงราคาจาก Google / Yahoo

สำหรับข้อมูลเพิ่มเติมโปรดดูที่ประวัติการอ้างอิง


+1 ศัตรูโมดูล perl พวกเขาทำให้ได้รับข้อมูลที่ง่ายสุด ๆ
Matthew Lock

1

อดีตโครงการของฉันกำลังจะใช้ข้อมูลที่สามารถดาวน์โหลดได้อย่างอิสระจากEODData


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.