ab_trader
ab_trader личный блог
22 сентября 2012, 23:46

Програмка для скачивания котировок с 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»)
 
20 Комментариев
  • riseup
    23 сентября 2012, 00:47
    thx!
  • Marsel Tazetdinov
    23 сентября 2012, 01:24
    Было бы здорово еще исходник получить, если не жалко :)
  • Константин Дубровин
    23 сентября 2012, 05:29
    а для гугла финанс такого де нет?
      • Константин Дубровин
        23 сентября 2012, 09:27
        ab_trader, преведены… и самое главное все данные с ммвб и ртс есть изпаков веков…
        там на графиках сплит буквой S обозначаетя
      • Константин Дубровин
        23 сентября 2012, 09:30
        ab_trader, понятно. гляньте www.tradingview.com/ они данные с гугла берут… самое интересное что у них даже стрыфе фьючи есть… может подглядите как они это делают
          • Константин Дубровин
            25 сентября 2012, 08:00
            ab_trader, точно… я просто заметил что в прошломмесяце гугл обьяил что теперь все тикеры с московской биржи доступны у них в финансе… и сразу же они в трэйдвбювеве появились
  • Трейдер Нубас
    23 сентября 2012, 21:32
    нафиг это надо

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн