Блог им. ab_trader

Програмка для скачивания котировок с Yahoo Finance

Архив с программой — здесь. В архиве экзешник, .ini файл настроек и файл со списком тикеров (tiker_list.txt). Алгоритм: правим файл настроек, пишем в файл со списком тикеров тикеры, запускаем экзешник. Заканчивается исполнение информационным окошком. На выходе получаем набор .csv файлов, лог файл.

Обязательно: .ini файл должен лежать в одной папке с экзешником, папки должны называться строго латиницей.

Описание настроек .ini файла:
LocalPath=C:\Yahoo_EOD\ — папка, в которую будут скачаны котировки. В ней же должен лежать tiker_list.txt
YahooServerPath=http://ichart.finance.yahoo.com — адрес сервера Yahoo (к сожалению, периодически они его меняют)
Suffix=_092112 — будет добавлен к имени файла с котировками (т.е. имя будет вида TIKER_Suffix.csv).
Delay=2 — задержка перед обращением программы к серверу за следующим тикером

Timeframe=d — d — дневки, w — недельки, m — месяцы
StartDate=1/1/2000 — начальная дата истории котировок
FinishDate=12/31/2011 — конечная дата истории котировок

UPD Добавил код:
 
#include <file.au3>
#include <Date.au3>
#include <Array.au3>
Local $aRecords
Local $aSDate
Local $aFDate
Local $sPathToIni
Local $sLocalPath
Local $sYServerPath
Local $sSuffix
Local $iDelay
Local $sTime
Local $sStartDate
Local $sFinishDate
Local $sTmp
$sPathToIni = @ScriptDir & '\downloader.ini'
$sLocalPath = IniRead ($sPathToIni, «main», «LocalPath», «C:\»)
$sYServerPath = IniRead ($sPathToIni, «main», «YahooServerPath», «ichart.finance.yahoo.com»)
$sSuffix = IniRead ($sPathToIni, «main», «Suffix», "_na")
$iDelay = 1000*IniRead ($sPathToIni, «main», «Delay», «10»)
$sTime = IniRead ($sPathToIni, «main», «Timeframe», «d»)
$sStartDate = IniRead ($sPathToIni, «main», «StartDate», «1/1/1900»)
$sFinishDate = IniRead ($sPathToIni, «main», «FinishDate», @MDAY & "/" & @MON & "/" & @YEAR)
$aSDate = StringSplit ($sStartDate, "/")
$aSDate[1] = $aSDate[1]-1
$aFDate = StringSplit ($sFinishDate, "/")
$aFDate[1] = $aFDate[1]-1
FileWriteLine ( $sLocalPath & «downloader.log», «Start EOD quotes downloading at » & _NowTime())
If Not _FileReadToArray($sLocalPath & «tiker_list.txt», $aRecords) Then
MsgBox(4096, «Error», " Error reading file to array Error = " & @error)
Exit
EndIf
For $i = 1 To $aRecords[0]
$sTmp = $sYServerPath & "/table.csv?s=" & $aRecords[$i] & "&d=" & $aFDate[1] & "&e=" & $aFDate[2] & "&f=" & $aFDate[3] & "&g="
$sTmp = $sTmp & $sTime &"&a=" & $aSDate[1] & "&b=" & $aSDate[2] & "&c=" & $aSDate[3] & "&ignore=.csv"
InetGet ( $sTmp, $sLocalPath & $aRecords[$i] & $sSuffix & ".csv")
FileWriteLine ( $sLocalPath & «downloader.log», «Downloaded » & $aRecords[$i] & " at " & _NowTime())
Sleep($iDelay)
Next
FileWriteLine ( $sLocalPath & «downloader.log», «Finish EOD quotes downloading at » & _NowTime())
MsgBox(4096, «Complete», «Downloading is complete»)
 
422 | ★36
20 комментариев
thx!
avatar
Было бы здорово еще исходник получить, если не жалко :)
avatar
Марсель Тазетдинов, добавил код. Писал на AutoIt.
avatar
ab_trader, спасибо
avatar
а для гугла финанс такого де нет?
Konstantin, нет. Я гляну, если переделок минимум, то перепишу. У гугла котировки уже приведенные с учетом сплитов или нет?
avatar
ab_trader, преведены… и самое главное все данные с ммвб и ртс есть изпаков веков…
там на графиках сплит буквой S обозначаетя
Konstantin, с гуглом простого решения у меня нет. и врет он похоже периодически, на кока-коле нарисовал мне пики там, где их не было согласно 8 другим дата провайдерам.
avatar
ab_trader, понятно. гляньте www.tradingview.com/ они данные с гугла берут… самое интересное что у них даже стрыфе фьючи есть… может подглядите как они это делают
Konstantin, точно у них цены с Гугла? я сравнил пару дней — у них цены на 30-40 центов для Коки ниже, чем на Гугле и Яхе. :)
avatar
ab_trader, точно… я просто заметил что в прошломмесяце гугл обьяил что теперь все тикеры с московской биржи доступны у них в финансе… и сразу же они в трэйдвбювеве появились
sam063rus, замечания безусловно полезные. Но у меня уже есть Notepad для правки текста, папка для котировок никуда не перемещается — путь надо прописать только один раз, а котировки я смотрю в Amibroker. Он чудесно затаскивает все csv- ки в свою базу. Поэтому было решено реализовать только необходимое — возможность скачивать сразу несколько тикеров.
avatar
нафиг это надо
avatar
Trader-journal, Яха дает только дневки и выше.
avatar

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
X5 проведёт вебкаст по результатам 2025 года
Друзья, всем привет! Рады пригласить вас на вебкаст, посвящённый финансовым результатам X5 за 2025 год. В ходе звонка мы подведём итоги 2025...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога ab_trader

....все тэги



UPDONW
Новый дизайн