Если мошенники из ТелеТрейд Вас тоже обманули, то сообщите про это нам Вопросы возврата Ваших денег из Теле Трейда пишите на почту: [email protected] НУЖНЫ ЮРИСТЫ для Чардж Бэка, заинтересованным: [email protected]

Модуль quotes

Программный пакет на основе модуля quotes

Оформим структуру данных для работы с котировками в виде класса

Модуль quotes - задумывался мною как библиотека (или пакет), но взвесив все как следует решил что это будет программный пакет на основе модуля (или, опять же, пакета) quotes. Поэтому несколько изменим структуру продукта:

tree (1)tree (1)

В папке quotes будет располагаться библиотека, а в корневой папке проекта будут находиться скрипты, использующие эту библиотеку. Первый функционал, который мы сделаем доступным - это возможность загружать котировки с сайта finam, распаковывать эти данные и сохранять в файл для дальнейшего использования. Функцию загрузки котировок скопипастим из предыдущей статьи, а над остальным придется потрудиться. Оформим структуру данных для работы с котировками в виде класса. Назовем его stock. Итак, исходники quotes.py с комментариями:

# -*- coding: utf-8

загрузка котировокзагрузка котировок

import string

import urllib

# загрузка котировок

def get_quotes(df, mf, yf, dt, mt, yt, simb, period):

f = urllib.urlopen('http://195.128.78.52/GAZP_080201_100208.txt?d=d&market=1&em=' +

str(simb)+'&df='+str(df)+'&mf='+str(mf)+'&yf='+str(yf)+'&dt='+str(dt)+'&mt='

+str(mt)+'&yt='+str(yt)+'&p='+str(period)

+'&f=GAZP_080201_100208&e=.txt&cn=GAZP&dtf=4&tmf=4&MSOR=0&sep=1&sep2=1&datf=5&at=1')

quot = f.read()

return string.split(quot, '\\n')[1:-1]

# класс quote - котировки

class quote(object):

# инициализация: по умолчанию грузим газпром часовик

# обозначения периодов 1 - тики, 2 - минуты, 3 - 5 минут, 7 - 1 час, 8 - день

def __init__(self, period=7, simb=16842):

# "сырые" данные которовок - массив строк

self.raw_data = []

# развернутые данные - open, high, low, close, volume

self.open, self.high, self.low, self.close, self.volume = [], [], [], [], []

# номер торгового инструмента (по финаму)

self.simb = simb

# период

self.period = period

запись котировки в файлзапись котировки в файл

# распаковка "сырых" данных

def decomp(self):

self.open, self.hight, self.low, self.close, self.volume = [], [], [], [], []

for line in self.raw_data:

mix = string.split(line, ',')[2:7]

self.open.append(float(mix[0]))

self.high.append(float(mix[1]))

self.low.append(float(mix[2]))

self.close.append(float(mix[3]))

self.volume.append(int(mix[4]))

# грузим котировки из инета

def load_quotes(self, df, mf, yf, dt, mt, yt):

self.raw_data = get_quotes(df, mf, yf, dt, mt, yt, self.simb, self.period)

self.decomp()

# записываем котировки в файл (сырые)

def save(self, fname):

f = open(fname, 'w')

for line in self.raw_data:

f.write(line+'\\n')

f.close()

# грузим "сырые" котировки из файла

def load(self, fname):

f = open(fname, 'r')

quot = f.read()

f.close()

self.raw_data = string.split(quot, '\\n')[:-1]

self.decomp()
инициализируем объект класса quotesинициализируем объект класса quotes

А вот пример использования класса quote:

# -*- coding: utf-8

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

import quotes.quotes as quotes

# инициализируем объект класса quotes

# 8 - период сутки, по умолчанию ГАЗПРОМ

q = quotes.quote(8)

# период: с 1.01.2010 по 30.01.2010

# (напомню, нумерация месяцев здесь начинается с 0)

q.load_quotes(1, 0, 2010, 30, 0, 2010)

# выводим "сырые" данные

print q.raw_data

# вывод объемов по дням

print q.volume

# сохраняем котировки в файл

q.save('zzz.txt')

# делаем новый объект класса quotes

q2 = quotes.quote(8)

# загружаем котировки из только что сохраненного файла

q2.load('zzz.txt')

# выводим объемы по дням - все в норме

print q.volume


Обратная связь ОФИЦИАЛЬНОГО интернет-ресурса 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 - 2020 teletreid.com
Карта сайта