Блог им. 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»)
 
★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

теги блога ab_trader

....все тэги



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