в Алготрейдинг

Качалка данных для finance.yahoo.com

Автор: Максим Стешенко.

Всем привет. Написал программу, которая скачивает дневные котировки с finance.yahoo.com и отображает их графики.

Работает она следующим образом:

1)Задаете начальную и конечную даты

2)Указываете название ценной бумаги или тикер (можно выбрать из всплывающего окна с подсказкой)

3)Исторические данные скачиваются в папку downloads в формате txt

Существует возможность открыть график ценной бумаги, либо просмотреть его не скачивая саму бумагу. Также поддерживается обновление исторических данных всех тикеров вместе, либо по отдельности. Более подробно о функционале написано в справке (File — Help).

Используемые библиотеки:

1)jfreecharts – для отображения графиков

2)org.json – для работы с форматом данных JSON

Вы можете скачать код и библиотеки с https://github.com/SteshenkoMA/StockDownloader

Те, кто не знаком с программированием найдут в папке /src/dist/ уже собранную программу (StockDownloader_1.1.jar), готовую к запуску.

Это первая версия и содержит неочевидные ошибки, поэтому я советую Вам изучить код, который снабжен соответствующими комментариями, и предостерегаю от использования её в принятии торговых решений. Буду рад критике, пожеланиям, советам. Спасибо.

P.S.

Сама идея написать такую программу пришла отсюда:

/post/tyanem-dnevnye-dannye-s-yahoofinance-kod-na-java-536

а также:

http://www.cognitum-research.com/ru/cognitum-updater-description

Комментарии:

Леонид Альтман: Пардон, не нашёл «в папке /src/dist/ уже собранную программу».

Максим Стешенко: Леонид Альтман, Вам необходимо:

1) скачать архив со всеми файлами (Download ZIP).
2) скопировать содержимое на локальный диск.
3) найти в папке «dist» файл StockDownloader_1.0.jar . Это и есть готовая программа.
4) для запуска приложений, написанных на языке Java, Вам потребуется Java JRE, которое позволяет запускать такие программы на компьютере.
Скачать Java JRE можно здесь:

а) http://www.java.com/ru/download/manual.jsp
б) www.oracle.com/technetwork/java/javase/downloads/index.html

Павел Дуков: Максим, большое спасибо!

Дамир Хайруллин: приветствую. помогите настроить прогу.прежние настройки не работают. есть ли кто может поправить настройки? может эта инфа поможет настроить. github.com/dennislwy/YahooFinanceAPI stackoverflow.com/questions/44030983/yahoo-finance-url-not-working/44036220 help.infinitekind.com/discussions/problems/32473-stock-prices-not-updating/page/1 www.bogleheads.org/forum/viewtopic.php?t=221889

mehanizator: там теперь надо вытаскивать пару cookie/crumb прежде чем запрос слать. просто замена url не сработает.

Дамир Хайруллин: mehanizator, как это сделать? я имею ввиду, как вытащить эту пару cookie/crumb перед отправкой запроса? сам я точно не справлюсь.

mehanizator: https://stackoverflow.com/questions/44030983/yahoo-finance-url-not-working

Дамир Хайруллин: mehanizator, сам я не смогу настроить.наверное, этот адрес теперь рабочий.https://query1.finance.yahoo.com/v7/finance/download/SPY?period1=1492449771&period2=1495041771&interval=1d&events=history&crumb=9GaimFhz.WU . мне бы или эту прогу запустить или quotes updater.

Дамир Хайруллин: mehanizator, как оказалось, Ваш код взят за основу в этой проге. узнал из ссылки в статье. значит Вы наверняка сможете настроить код программы. не могли бы внести нужные изменения в код для закачки котировок.

mehanizator: Почему бы не попросить автора программы доработать код?

Дамир Хайруллин: так я в фейсбуке уже написал Максиму Стешенко. жду теперь ответа. также жду ответа от dima.seda, автора программы quotes updater. может, я написал однофамильцам или не по адресу. пока только Вы на связи. не думаю что они будут против изменений в программах. программы,все таки бесплатны.

Дамир Хайруллин: mehanizator, только на Вас надежда.помогите заменит адреса или заменить что надо в этом файле .ini. надеюсь вы разбираетесь в таких кодах. как мне кажется, код не сложный. этот файл из программы Quotes Updater.

[main]

url1=http://query1.finance.yahoo.com/table.csv?s=%s&a=%02d&b=%d&c=%d&d=%02d&e=%d&f=%d&g=d&ignore=.csv
url2=http://query1.finance.yahoo.com/d/quotes.csv?s=%s&f=sd1ohgl1v
connect_timeout=30
proxy_enable=0
proxy_port=0
proxy_server=
proxy_user=
proxy_password=
not_deltemp=0

[History]
ABT=ABT
ABX=ABX
ACHC=ACHC
ACIA=ACIA
ADNT=ADNT
ADPT=ADPT
AEM=AEM
AG=AG
AGQ=AGQ
AKG=AKG
ALOG=ALOG
ALXN=ALXN

mehanizator: это не код, это настройки.
изменением настроек не решается проблема, нужно дописывать код.
обратитесь к автору кода.

Дамир Хайруллин: mehanizator пишет:обратитесь к автору кода

только как с ними связаться. не выходят они на связь. а Ваш код с этой страницы(/post/tyanem-dnevnye-dannye-s-yahoofinance-kod-na-java-536) как использовать? я смог бы, например, готовый макрос вставить в файл excel, а с этим кодом как получить котировки? к тому же, и в этот код нужно вносить изменения.

mehanizator: уже никак, потому что яху поменяло все.

Дамир Хайруллин: понял.вопросов больше нет.

Vitas: хмм, интересно новая качалка данных с яху, который не дает теперь просто так качать, многих заинтересует? 😉

Дамир Хайруллин: Vitas пишет:
интересно новая качалка данных с яху многих заинтересует?

не поверю что только мне нужна. может, кому нужна, по плюсику поставите.

Максим Стешенко: Всем привет. Программа исправлена. Использовал другой способ загрузки котировок: http://blog.bradlucas.com/posts/2017-06-04-yahoo-finance-quote-download-java/

Дамир Хайруллин: приветствую, Максим.спасибо что оживили программу.работает не задумываясь.у меня вопрос есть. получается что Вашей программой начал пользоваться только сейчас(до этого пользовался программой Quotes Updater). думал что можно скачать котировки сразу нескольких тикеров. есть ли способ добавить возможность скачивать сразу нескольких тикеров, например, 500 тикеров за раз. чтобы при открытии программы все тикеры,которые скачивал до последнего закрытия программы, появились в окне под надписями ticker, date from, date to.то есть не вносить их по новой в это окно. открыл программу, выставил период и нажал кнопку .или создать файлы ТХТ в папке downloads с нужными тикерами и программа бы определяла бы необходимые тикеры и закачивала только их.можно ли так сделать? или придется все менять в коде? я извиняюсь за свою хотелку, но все же ответьте.

Максим Стешенко: Здравствуйте, Дамир. Я написал данную програму в обучающих целях и не планирую заниматься её развитием.Так как код выложен в свободный доступ, и подробно откомментирован, то советую обратиться к фрилансу, возможно, кто-то добавит нужный Вам функционал за символическую сумму.

Vitas: жизнь стала чудесатая теперь в yahoo
сплиты заложены в цены, но колонка которая называется Adjusted Close на самом деле просто Close и наоборот. разница в учете дивидендов, сплиты учтены. OHL верны относительно того, что называется Adjusted Close. свой вариант скоро выложу; есть подозрение что yahoo будет целенаправленно бороться со скачиванием, но есть один прием 😉