Если мошенники из ТелеТрейд Вас тоже обманули, то сообщите про это нам Можете писать мне на данную почту: [email protected]
Чат - Напишите нам
Прочитайте сообщение !
Сожалеем, но оператор в данный момент отсутствует, в связи с этим очень просим Вас указать свой е-майл в форме связи далее.
Специалист [ИМЯ] уже в чате …
Специалист [ИМЯ] - выйдет на связь
Оператор ответит Вам примерно через одной минуты.
Напишите пожалуйста свой е-майл в форме связи далее, для того чтобы мы могли Вам написать.
Ваша информация принята, скоро с Вами свяжемся - ДЕНЬГИ НЕ ПЕРЕДАВАЙТЕ!!!
Напишите пожалуйста свой е-майл в форме связи далее, для того чтобы мы могли Вам написать.

Создание локальной базы котировок

Локальная база котировок для работы над модулем quotes

Исполняться скрипт будет относительно долго, поэтому в качестве индикации будем выводить наименование загружаемой акции

quotesquotes
Интернет всвязи с отдаленностью есть не всегда, поэтому для беспрепятственного продолжения работы над модулем quotes было решено создать локальную базу котировок.

В модуле quotes на настоящий момент вроде все для сегодняшней задумки есть, но... Но было бы неплохо дополнить его функцией получения символьного наименования торгового инструмента (акции) по его "финамовскому" номеру .

Полный список этих номеров для акций ММВБ можно получить если на странице http://www.finam.ru/analysis/quoteonline/default.asp слева выбрать сектор (ММВБ), чуть правее нажать "Выбрать все", и уже внизу клацнуть по "Показать". Тогда и увидим картинку как на скриншоте ниже:

"финамовский" номер"финамовский" номер

Сохраним html-код в файл mmvb.txt в папку модуля (в UTF-8, конечно), посмотрим на него и подумаем - как его можно распарсить для составления массива типа <номер-имя>, если типовой элемент выглядит следующим образом:

типовой элементтиповой элемент

Ну конечно с помощью регулярных выражений:

import re

"финамовский номер" - "название акции""финамовский номер" - "название акции"

# загрузка соответствий "финамовский номер" - "название акции"

def get_symbols(fname):

f = open(fname, 'r')

txt = f.read()

f.close()

symbols = re.findall(r'<a href="/analysis/charts/default.asp\\?id=([^"]+)" target=_blank>([^<]+)</a>', txt)

return symbols

Так как данный код понадобится нам в дальнейшем, поместим его в модуль quotes. В результате выполнения этой функции мы получим список 2-х элементных списков (во сказанул :) ), где 1-й элемент - номер ценной бумаги, а 2-й - ее наименование (если быть точным, 0-й и 1-й). Напишем функцию определения наименования акции по ее номеру (отмечу, что в случае передачи несуществующего "финамовского" номера, функцией будет возвращена пустая строка):

# определяем наименование акции по ее "финамовскому" номеру

def get_symb_name(symbols, number):

res = ''

for symb in symbols:

if int(symb[0]) == number:

res = symb[1]

break

return res

Эту функцию тоже поместим в модуль quotes и проверим ее работоспособность файлом test.py :

# -*- coding: utf-8

# загружаем модуль quotes

import quotes.quotes as quotes

# файл сохраненный с сайта "Финам"

fname = 'quotes/mmvb.txt'

# получаем массив инструментов с номерами

symbols = quotes.get_symbols(fname)

# определяем инструмент с номером 16842 - Газпром

создание локальной базы котировоксоздание локальной базы котировок

print quotes.get_symb_name(symbols, 16842)

Функция работает исправно, а значит настало время написать скрипт создания локальной базы котировок. Изменяемыми параметрами скрипта являются путь к каталогу, в который будут сохраняться файлы котировок, путь к файлу с соответствиями "номер акции" - "название акции", временной период, а так же интервал. Исполняться скрипт будет относительно долго, поэтому в качестве индикации будем выводить наименование загружаемой акции, какая она по счету и сколько их (акций) всего.

# -*- coding: utf-8

# загружаем модуль quotes

import quotes.quotes as quotes

# каталог для хранения файлов котировок

folder = 'data/'

# файл с сайта "Финам"

qlist = 'quotes/mmvb.txt'

# выгребаем данные с 1.01.2009 по 31.12.2009

df, mf, yf, dt, mt, yt = 1, 0, 2009, 31, 11, 2009

# работаем с днями

period = 8

symbols = quotes.get_symbols(qlist)

i, n  = 0, len(symbols)

for symb in symbols:

i += 1

q = quotes.quote(period, int(symb[0]))

print 'Загружаем', symb[1], ' (', i, 'из', n, ')'

q.load_quotes(df, mf, yf, dt, mt, yt)

q.save(folder + symb[0] + '_' + str(period) + '.csv')

Запускаем скрипт:

каталог для хранения файлов котировоккаталог для хранения файлов котировок

Оформляем код в виде функции (она будет называться make_data_quotes ) и отправляем туда же :) (в модуль quotes). Тогда скрипт загрузки котировок будет таким:

# -*- coding: utf-8

модуль quotesмодуль quotes

# загружаем модуль quotes

import quotes.quotes as quotes

# каталог для хранения файлов котировок

folder = 'data/'

# файл с сайта "Финам"

qlist = 'quotes/mmvb.txt'

# выгребаем данные с 1.01.2009 по 31.12.2009

#df, mf, yf, dt, mt, yt = 1, 0, 2009, 31, 11, 2009

period = (1, 0, 2009, 31, 11, 2009)

# работаем с днями

interval = 8

# делаем локальную базу котировок

quotes.make_data_quotes(folder, qlist, interval, period)


Обратная связь ОФИЦИАЛЬНОГО интернет-ресурса TeleTrade RU

Юр. лицо: Teletrade D.J. Limited - форма собственности ООО согласно законов Сент-Винсент и Гренадины (островной оффшор)
На территории Российской Федерации деятельность ведется В ОБХОД ЗАКОНА!!! (без лицензий Центробанка РФ и других финансовых контролирующих органов России)
Номер телефона TeleTrade в России: 8 (800) 555-84-59 (по Российской Федерации звонок бесплатный, обман на денежки круглосуточный)
ОФИЦИАЛЬНЫЙ АДРЕС TeleTrade (Teletrade D.J. Limited): Сент-Винсент и Гренадины, Кингстаун, James Street, First St. Vinsent Bank Ltd Building, 1 этаж
Загружаю карту...
Лицензия TeleTrade (Teletrade D.J. Limited) - ОТСУТСТВУЕТ !!!
Если так случилось и кидалы из ТелеТрейд (Teletrade D.J. Limited) Вас кинули, то обязательно сообщайте об этой неприятности нам на официальную почту: [email protected]

Наши официальные e-mail адреса:
[email protected] (направление приема жалоб на ДЦ ТелеТрейд , Белозерова Мария)
[email protected] (группа обработки жалоб на сервис teletreid.com, Именова Лидия)

Официальные социальные сети:
Официальный канал на You Tube

© 2017 - 2024 teletreid.com
Карта сайта