Sergey Gorokhov (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 12 13 14 15 16 17 18 19 20 21 22 ... 78 След.
Порядок отслеживания процесса выполнения транзакций
 
PFelix,
давайте еще раз, есть биржевой айсберг, а есть наш разработанный через отдельный модуль.
Вы про какой говорите?
Порядок отслеживания процесса выполнения транзакций
 
Цитата
PFelix написал:
полностью не перечитал.

На бирже по ФР и ВР есть биржевые айсберги, они поддерживаются в QUIK, если их у Вас нет, надо просить брокера.
Порядок отслеживания процесса выполнения транзакций
 
Цитата
PFelix написал:
Если есть,  -- Где такие заявки "хранятся" (брокер / биржа)?

В QUIK есть свои собственные айсберг заявки, это отдельный алго-модуль
Они хранятся на сервере QUIK
И они работают как с ФОРТС так и с другими рынками.
Порядок отслеживания процесса выполнения транзакций
 
Цитата
PFelix написал:
Есть такое на FORTS?
Это вопрос к биржевому протоколу.
Порядок отслеживания процесса выполнения транзакций
 
Цитата
PFelix написал:
Есть ли в "арсенале" QLUA нечто специально "заточненное", чтобы программно "понять", что "данный" сервер какие-то нужные скрипту "параметры" НЕ транслирует?
такой возможности нет.
Можно толь проверить получает ли скрипт данные или нет.
Если не получает значит что то не так.
Порядок отслеживания процесса выполнения транзакций
 
PFelix,
Стопы хранятся на сервере брокера и их обрабатывает непосредственно сервер QUIK по поступающей с биржи информации.
Таким образом, если забыть про то зачем в принципе созданы стопы, то по сравнению с лимитками они лучше тем что транзакция уходит до биржи сразу с сервера QUIK.
Например это полезно как раз если канал от терминала до брокера слишком медленный.
Если интересуют какие-то другие аспекты "обработки" готовы ответить на конкретные вопросы.
стал ли Квик быстрее?
 
Цитата
Женя Логинов написал:
В ваших мануалах указывается, что для снижения нагрузок и проч, квик не передаёт отдельно каждое обновление по котировкам, а накапливает данные с одинаковыми параметрами цены, и выдаёт разом все... я так понял.
Термин "накапливает" тут неуместен, он не накапливает а передает срезами, т.е. раз в период.
Это значит раз в период шлюз отправляет запрос на биржу и получает ответ в виде текущей картины стакана.

Цитата
Женя Логинов написал:
В общем ключевой момент 300мс и он был в вашем мануале. Не помню с точностью до страницы, но я его не выдумал.  
Речь идет про параметр таймаута между запросами, сейчас в дистрибутиве он установлен в 100мс
Как оно настроено у брокера, вопрос к брокеру.
Не изменяется отображение линии независимо от указанного в Settings, Нужно поменять тип линии, но этого не происходит.
 
Цитата
VNG_nemo написал:
Это была шутка? Сергей, все осталось без изменения. В диалоговом окне редактирования линия указана дашдот, а на чарте сплошная.
Это не шутка, линия TYPE_DASHDOT масштабируется вместе с графиком. т.е. если на графике много свечек то визуально будет сплошная линия, если мало свечек то будет видно точка тире.
Цитата
VNG_nemo написал:
Кроме того, прошу Вас ответить на вопрос выше - как такое может быть, что на Н4 и ниже все норм, а при переходе на дневки и выше массив перестает переиндексироваться.
ответ уже был см выше.
Не изменяется отображение линии независимо от указанного в Settings, Нужно поменять тип линии, но этого не происходит.
 
Цитата
VNG_nemo написал:
Локализовал проблему о которой писАл выше. Если в код Init()  в цикл добавить отладочные выражения, то видно, что в строке tposixByTime[tDT[k]] = k не происходит присваивания и длина массива равна нулю, хотя с массивом tDT[k] все ОК, и его длина при проверке после выхода из цикла равна количеству свечей. В чем засада?
З.Ы. На ТФ Н4 все работает, на дневном - нет.
Код
      for  k =  0 ,NmbrOfCandles -  1    do 
      count  =  count  +   1 ;  if  count  >   100000   then   break   end ;
 --преобразуем в POSIX-формат поле datetime 
 --транспонируем таблицу - индексируем по времени       
      tDT[k]  =  os.time (t[k].datetime);
      tposixByTime[tDT[k]]  =  k;
       if  k =  =  1   then  
          message ( "Init_tDT_ "  .. tostring(tDT[k]))
       end 
       if  k =  = NmbrOfCandles -  1   then 
          message ( "Init_tDT_tposixByTime_ "  .. tostring( # tDT) .. " " .. tostring( # tposixByTime))
       end       
    end 
  

Это уже особенность самого lua

Если указать так
Код
tposixByTime={}
tposixByTime[2] = 1;
tposixByTime[3] = 2;
 message("tposixByTime="..tostring(#tposixByTime))


то будет ноль.
если так:
Код
tposixByTime={}
tposixByTime[1] = 1;
tposixByTime[2] = 2;
 message("tposixByTime="..tostring(#tposixByTime))


то будет два.

объяснение в документации на Lua
Цитата
2.5.5 – The Length Operator
The length operator is denoted by the unary operator #. The length of a string is its number of bytes (that is, the usual meaning of string length when each character is one byte).

The length of a table t is defined to be any integer index n such that t[n] is not nil and t[n+1] is nil; moreover, if t[1] is nil, n can be zero. For a regular array, with non-nil values from 1 to a given n, its length is exactly that n, the index of its last value. If the array has "holes" (that is, nil values between other non-nil values), then #t can be any of the indices that directly precedes a nil value (that is, it may consider any such nil value as the end of the array).
Не изменяется отображение линии независимо от указанного в Settings, Нужно поменять тип линии, но этого не происходит.
 
Цитата
VNG_nemo написал:
Цитата
Sergey Gorokhov написал:
Проблема в толщине линии, укажите  Width = 1,
Не помогло.
Приблизьте график.
Не изменяется отображение линии независимо от указанного в Settings, Нужно поменять тип линии, но этого не происходит.
 
Цитата
VNG_nemo написал:
Линия, которая отражается неправильно - IntLine6
Проблема в толщине линии, укажите  Width = 1,
Порядок отслеживания процесса выполнения транзакций
 
Цитата
Алексей Ч написал:
Если 5000 раз вызывать функцию math.random(1, 999), то какова вероятность получать одинаковые числа? Мне опять почему то сильно кажется, то вероятность будет равна 100%
Ну так ведь 5000 в ~5 раз больше чем 999, так что да 100% будут повторения. И что в этом удивительного?
Не изменяется отображение линии независимо от указанного в Settings, Нужно поменять тип линии, но этого не происходит.
 
Приведите пример проблемного скрипта
Разбираю мануал по квику.
 
Цитата
zv78 написал:
зачем под цифрой 1 в примере заводится функция которая не имеет имени?
она не заводится. а ВЫводится.
т.е результат функции cached_EMA будет функция.
По простому, это нужно для того чтобы в рамках одного кода можно было сделать сколько угодно функций расчета MA каждая со своими параметрами и чтобы они не пересекались.
Например
MA1 = cached_EMA()
MA2 = cached_EMA()
MA3 = cached_EMA()
и т.д.
стал ли Квик быстрее?
 
Цитата
Женя Логинов написал:
Спасибо. А вы со оей стороны уберете 300мс накопление? Где-то в ваших мануалах видел это значение?

Что простите? Какое накопление?
стал ли Квик быстрее?
 
Женя Логинов,
Скорость обновления стакана настраивается на стороне брокера по его желанию и на его усмотрение.
Множественные Subscribe_Level_II_Quotes/UnSubscribe_Level_II_Quotes, Переподписываться на Стакан или оставаться подписавшимся ???
 
Цитата
PFelix написал:
А сам факт множественной подписки и отписки брокеру  -- только "на руку", т.к.  85-90%% времени трафика именно по стаканам удается сократить?
От сервера до биржи подписка одна на всех, так что трафик до биржи не страдает, а на трафик от сервера до клиентов брокеру все равно, тем более что по стаканам он не существенный.

Цитата
PFelix написал:
А сами команды подписаться/отписаться, которые по 30 инструментам следуют парами 1 раз в каждые 2-3 минуты -- для брокера "не забота"?
1 раз в каждые 2-3 минуты, это мало, скорей всего брокер даже не заметит.
Как такое может быть?, В Settings задаю пять линий, в окне редактирования вижу только три
 
Здравствуйте,
Проверьте внимательней, линии должны быть описаны в Settings и функция Init() должна возвращать количество линий в Settings
Если разобраться не получится выложите код индикатора.
OnTransReply: значение поля "balance"
 
Добрый день,

Описанная в данном инциденте проблема проявляется из-за наличия ошибки в ПО терминала QUIK, а именно, в неверном преобразовании количества в ответах на транзакии по снятию заявок.

Данная ошибка будет исправлена в одной из очередных версия терминала QUIK.

Приносим извинения за причиненные неудобства.
OnTransReply: значение поля "balance"
 
Здравствуйте,
Проблема изучается. Постараемся в ближайшее время дать ответ.
Множественные Subscribe_Level_II_Quotes/UnSubscribe_Level_II_Quotes, Переподписываться на Стакан или оставаться подписавшимся ???
 
Здравствуйте,
Главное чтобы одновременно в терминале и во всех lua скриптах, заказывалось стаканов не более чем по 200 инструментов.
Сразу оговорка, что заказ нескольких стаканов по одному инструменту является одним заказом, а не несколькими.
30 инструментов (как у Вас) это ничтожно мало, так что проблем не должно возникнуть, при условии что другой скрипт (или терминал) не закажет еще стаканы.
В чем основная причина отличий данных в таблице обезличенных сделок у различных брокеров, если все они получают один поток, или не один?, Количество пустых интервалов при трансформации потока обезличенных сделок в секундные свечи по одному и тому же интсрументу (в моем случае РТС срочного рынка) может отличаться почти в 2 раза за один и тот же период при обработке одной и той же программой
 
Цитата
Михаил Сурцуков написал:
Так это ясно из скрипта откуда что берется и как конфигурируется.
Давайте еще раз.
Вы говорите что на разных брокерах один и тот же скрипт работает по разному, вполне логично что очень хочется выяснить чем брокера отличаются, так?
Как это можно выяснить по срипту? Да никак.

Может всё таки сравните исходные данные или и дальше будем по кругу одно и тоже повторять?
Исходные данные это то с чем работает скрипт.
Содержимое таблицы обезличенных сделок.
То что получается в txt файле при сохранении тикового графика в файл.
То что непосредственно попадает в скрипт, а не то что получается после его работы.
Как еще проще объяснить?
Все индикаторы на Lua
 
новая ссылка
в индикаторе ADX было лишнее округление, что приводило к искажению результатов расчета на инструментах с дробными ценами
В чем основная причина отличий данных в таблице обезличенных сделок у различных брокеров, если все они получают один поток, или не один?, Количество пустых интервалов при трансформации потока обезличенных сделок в секундные свечи по одному и тому же интсрументу (в моем случае РТС срочного рынка) может отличаться почти в 2 раза за один и тот же период при обработке одной и той же программой
 
Цитата
Михаил Сурцуков написал:
Допустим.  Вы сможете объяснить, почему один и тот же скрипт выдает различные результаты у различных брокеров с одной и той же версией Квика? Я Вам пришлю эту часть скрипта.  

Нет, пока не будет предельно ясно о каких входных данных идет речь и в чем между ними разница.
В чем основная причина отличий данных в таблице обезличенных сделок у различных брокеров, если все они получают один поток, или не один?, Количество пустых интервалов при трансформации потока обезличенных сделок в секундные свечи по одному и тому же интсрументу (в моем случае РТС срочного рынка) может отличаться почти в 2 раза за один и тот же период при обработке одной и той же программой
 
Михаил Сурцуков,
Да это я, и я Вам говорю что в QUIK нет и никогда небыло "секундных интервалов"
В QUIK есть просто тики. НЕ секундные интервалы. Разница огромна.

Как уже было сказано, проверить надо исходные данные, а не "секундные интервалы" которые формировал скрипт.
И если исходные данные одинаковые, значит проблема в скрипте а не в брокере и иного быть не может.
В чем основная причина отличий данных в таблице обезличенных сделок у различных брокеров, если все они получают один поток, или не один?, Количество пустых интервалов при трансформации потока обезличенных сделок в секундные свечи по одному и тому же интсрументу (в моем случае РТС срочного рынка) может отличаться почти в 2 раза за один и тот же период при обработке одной и той же программой
 
Цитата
Михаил Сурцуков написал:
Вы историю тиков скачивали. А мой вопрос про то, как пакуются тики в секундные интервалы в течение дня. Если Вы правы, тогда получается, что КВИК дает возможность брокерам сдвигать тики в  пачки, по собственному разумению.

Извините но Вы вообще о чем?
В QUIK тики не пакуются в секундные интервалы. В QUIK вообще не бывает секундных интервалов.
В чем основная причина отличий данных в таблице обезличенных сделок у различных брокеров, если все они получают один поток, или не один?, Количество пустых интервалов при трансформации потока обезличенных сделок в секундные свечи по одному и тому же интсрументу (в моем случае РТС срочного рынка) может отличаться почти в 2 раза за один и тот же период при обработке одной и той же программой
 
Здравствуйте,
Данные транслируются с биржи и должны быть одинаковыми у всех брокеров.
Если не так, значит надо разбираться, возможно в терминале включена галка "Получать информацию по обезличенным сделкам с текущего момента" или еще что-нибудь.
Для начала, через контекстное меню сохраните графики в текстовые файлы и сравните, чтобы было конкретно понятно где каких данных не хватает.
И если окажется что у брокера не хватает каких-то тиков, надо бы задать вопрос самому брокеру.
разные данные на индикаторе ADX, ADX Lua некорректные данные на ВТБ
 
Здравствуйте,
Нашли причину, в коде было лишнее округление в 60 и 63 строках. Приносим извинения.
Правильный код ниже, в архиве на сайте поправим позже.
Скрытый текст
Разбираю мануал по квику.
 
Цитата
zv78 написал:
что означает первая строка в функции?
функция смотрит задано ли поле v_type и если не задано то присваивает переменной значение значение BAR_CLOSE

Цитата
zv78 написал:
а что такое BAR_CLOSE?
Это заранее заданная константа, которая в данном случае обозначает цену Close свечки
Заранее заданные константы используются в программировании для того, чтобы при необходимости не пришлось менять значение во всем коде, а достаточно было только поменять значение константы.

Цитата
zv78 написал:
видимо цена закрытия свечи. а какой свечи?
той свечки индекс которой равен index
Странности интерпретатора, Индикатор исчезает из списка.
 
Цитата
VNG_nemo написал:
Я так понимаю, что такое поведение интерпретатора наблюдается при ошибках в синтаксисе
не только при ошибках в синтаксисе, а вообще при любых ошибках.
попробуйте запустить Lua индикатор как обычный Lua скрипт, тогда Вы увидите ошибку.
Прямоугольник, Цель нарисовать програмно прямоугольник на графике.
 
Цитата
Alex написал:
Где можно найти описания и пояснения по параметрам эти меток ?

описания по функциям QLUA можно найти в документации на QLUA, файл QLUA.chm
про метки описание см в главе "Функции для работы с метками"
Оптимизация быстродействия
 
Цитата
нет написал:
можно ли ограничить количество последних свечей, получаемых из функции createDataSource. Мне не нужны все свечи тянуть оттуда, достаточно 100 последних свечей?
Такой возможности нет.

Цитата
нет написал:
можно ли после вызова createDataSource в полученном ds оставить 100 последних свечей?
Такой возможности нет. Можно перенести данные из ds в Lua таблицу, а потом закрыть ds.

Цитата
нет написал:
можно ли как-то кешировать результат работы RSI? Например, я просчитал RSI для всех свечей из ds, а потом хочу через каждую минуту получать RSI только для последней, не производя вычисления для предыдущих свечей?
Просто сохраняете данные в какую-нибудь Lua таблицу
Код класса для получения котировок с СПБ - биржи
 
нет,
Посмотреть в таблице текущих торгов в колонке "Код класса".
Скорей всего SPBXM
Как получить поле Стоп-заявка в таблице заявок?
 
Gridmer,
Здравствуйте,
К сожалению через QPILE или QLUA нет доступа к данному параметру таблицы заявок.
Вариант только искать нужный номер в таблице стоп заявок. Т.е. перебрать в цикле все стоп заявки пока не будет найдена нужная стоп заявка с параметром LINKED_ORDER равным номеру заявки
Дата размещения облигаций, добавление столбца в облигациях
 
Александр,
Здравствуйте,
Биржа не транслирует данный параметр, следовательно и в QUIK мы его никак добавить не сможем даже при всем желании.
Подскажите по расчету RSI
 
нет,
Здравствуйте,
пример есть в readme файле из набора INDICATORS.zip см ссылку выше
Получить архив котировок без открытия графика
 
Цитата
нет написал:
что не так в коде?
надо добавить подписку на колбек, через функцию SetUpdateCallback или SetEmptyCallback

Цитата
нет написал:
где можно посмотреть список кодов, например, TQBR
список кодов чего?
если классов то его вернет функция getClassesList
если инструментов то функция getClassSecurities
getItem, ошибка в реализации или документации
 
Здравствуйте,
getItem возвращает таблицу, везде кроме client_codes которая является исключением
И об этом сказано в документации:
-Функции для обращения к строкам произвольных таблиц QUIK
--Таблицы, используемые в функциях «getItem», «getNumberOf» и «SearchItems»
сказано
Цитата
* - функция getNumberOf("client_codes") возвращает количество доступных кодов клиента в терминале, а функция getItem("client_codes", i) - строку содержащую клиентский код с индексом i, где i может принимать значения от 0 до getNumberOf("client_codes") -1
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
VNG_nemo,
Да будет
Рабочий день или нет?
 
Цитата
qt написал:
По срочной пусто,
Быть может потому что инструмент "SiH9"? для того чтобы он корректно определялся надо добавить в скрипт опцию USE_CASE_SENSITIVE_CONSTANTS

Цитата
qt написал:
Известные грабли, у кого то работает у кого то нет.
Должно работать, если не работает надо разбираться.

Цитата
qt написал:
А если взять из ТТП по инструменту дату торгов и сравнить ее с датой торгов из "Информационное окно"?
Дата торгов в информационном окне отображает именно дату торгов, а не текущую дату.
И в ТТП ровно тоже самое.
Это значит что если брокер вдруг запустит сервер в субботу на пятничных данных, то Вы увидите дату пятницы, а не субботы.
В этом месте правильней сравнивать дату Вашего компьютера (с поправкой на временную зону), с датой информационного окна.
Стоп заявка "по исполнению"
 
Цитата
s_mike@rambler.ru написал:
Демо контур арка
Согласно логам, заявка 4191105030 приехала на сервер в 17:46:30.650, а транзакция на выставление стопа была в 17:46:29.901, т.е. до того как сервер получил заявку.
В связи с чем рекомендация в силе, ждите OnOrder
Стоп заявка "по исполнению"
 
Цитата
s_mike@rambler.ru написал:
Считаем, что если этот номер дали нам, то сервер про эту лимитированную заявку уже все знает, она присутствует в его таблицах и т.п.
Как уже было сказано сервер не может привязать стоп заявку по исполнению к заявке если ее нет.
Одного ответа на транзакцию в этом месте недостаточно.
Цитата
s_mike@rambler.ru написал:
3. Заявка удовлетворена частично. Непонятно что будет. (Кстати что?)
При частичном исполнении заявки всё равно можно поставить стоп по исполнению.
Цитата
s_mike@rambler.ru написал:
я же иногда получаю отказ в выставлении условной заявки с диагностикой "неверные параметры".  эта диагностика не соответствует действительности, ибо параметры правильные, а отказ происходит не из за неверных параметров, а из за чего то другого. Возможно, что из за того, что по исходной лимитной заявке уже есть сделки или ещё из за чего то. Но понять невозможно из за косого ответа сервера
Как уже было сказано и еще раз повторим, попробуйте отправлять транзакцию на выставление стопа после получения OnOrder
Стоп заявка "по исполнению"
 
Цитата
s_mike@rambler.ru написал:
3. выставляем стоп заявку для него "по исполнению"
В каком колбеке выставляется стоп?
Если в OnTransReply, возможно (но это не точно) что стоп выставляется до того как на сервер приехала заявка.
Заявки и транзакции транслируются разными потоками, в связи с чем возможны ситуации когда ответ на транзакцию уже приехал, а сама заявка еще нет.
При таком сценарии сервер не может привязать стоп заявку по исполнению к заявке т.к. ее просто нет.
А то что с Ваших слов заявка уже существует в таблице терминала, зависит от того в какой момент смотреть, речь может идти про доли секунд.
Если проблема не наблюдается после срабатывания OnOrder(), значит причина точно в этом.
Если продолжает наблюдаться, к сожалению без анализа со стороны брокера нельзя однозначно определить причины, сообщите кто Ваш брокер.
Дублированный код клиента
 
Сергей,
Здравствуйте,
По данному вопросу рекомендуем обратиться к Вашему брокеру
Добавление функциональности клиентского терминала, Ввод параметра инструмента по умолчанию
 
Цитата
VNG_nemo написал:
мне придется использовать цикл интепретатора
Вы и так используете цикл, что с getCandlesByIndex, что с Т(к).

Цитата
VNG_nemo написал:
что в разы медленнее
по поводу "медленнее" уже было сказано, нет доказательств, значит не надо так говорить.

Цитата
VNG_nemo написал:
Да, переиндексировать мне придется обе таблицы и это займет примерно одинаковое время. Но это второе действие.  
Это с getCandlesByIndex второе действие, а с Т(к) это одно действие.

В общем пробуйте, а потом поговорим.
Как получить значения глобальной таблицы в Init(), При выходе из Init() глобальная таблица возвращает nil.
 
VNG_nemo,
Проверьте, на графике действительно есть свечка 9:55?
Если нет, повторите эксперимент, указав в TIME существующее время свечки.
Уточните что из себя представляет файл bmp.bmp (прикрепите к сообщению)
Добавление функциональности клиентского терминала, Ввод параметра инструмента по умолчанию
 
VNG_nemo,
Задача не так решается.
Вы все равно используете цикл for по всем свечкам, какая разница что в этом цикле будет t из getCandlesByIndex или T(k)?
Чисто по результату разницы никакой, зато никаких идентификаторов.
Как получить значения глобальной таблицы в Init(), При выходе из Init() глобальная таблица возвращает nil.
 
Цитата
VNG_nemo написал:
На скрине путь к файлу и Id метки в окне сообщений. Изменил только название файла метки (ну и сам файл)

Приложите еще код который запускаете в том виде как запускаете. И скриншот свойств графика, вкладка "Дополнительно"
Добавление функциональности клиентского терминала, Ввод параметра инструмента по умолчанию
 
Цитата
VNG_nemo написал:
Нужны не отдельные данные по каждой свечке, а упорядоченная (проиндексированная по номеру свечки) таблица всех значений всех свечей для дальнейшего обращения к ней.
Зачем? Если Вы в любой момент по индексу и так можете достать нужные данные без лишних функций.

Цитата
VNG_nemo написал:
Функция для работы с источником данных - это усложнение кода и, соответственно, увеличение времени обработки данных.
Есть доказательства или это просто мысли? Если просто мысли тогда прошу воздержаться во избежания дезинформации других пользователей.

Цитата
VNG_nemo написал:
Вы же предлагаете обработать каждую свечу отдельно в интерпретаторе, затем свести все данные в одну таблицу и уже работать с ней вместо того, чтобы обратиться единожды к оптимизированной и откомпилированной сишной функции. Мне это напоминает удаление гланд через задницу.

Что такого Вы делаете с каждой свечкой отдельно? Зачем Вам захламлять лишний кусок памяти?
Вы в любой момент можете получить любой параметр нужной свечки, без предвариетельного хранения.
В наших примерах, в некоторых индикаторах, тоже требуется хранение свечек, но это все легко решаемо через O, H, L, C, V, T значит и у Вас тоже этого можно избежать.
И сейчас именно использование идентификаторов выглядит как
Цитата
VNG_nemo написал: удаление гланд через задницу.
т.к. Вы через идентификаторы пытаетесь получить данные которые уже и так есть без каких либо идентификаторов.
Как получить значения глобальной таблицы в Init(), При выходе из Init() глобальная таблица возвращает nil.
 
Цитата
VNG_nemo написал:
попробую сделать скрины.
для скриншотов, отдельная программа не нужна, достаточно нажать кнопку PrintScreen на клавиатуре, потом открыть mspaint и вставить картинку туда.
Страницы: Пред. 1 ... 12 13 14 15 16 17 18 19 20 21 22 ... 78 След.
Наверх