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

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

Страницы: Пред. 1 ... 36 37 38 39 40 41 42 43 44 45 46 След.
Автоматическое восстановление соединения при полном откзазе сервера.
 
В этом месте не помешала бы возможность подключения через Lua-скрипт к любому серверу и получения сообщения об ошибке подключения в том же скрипте. Тогда каждый пользователь мог бы написать для себя правила переключения на резервные сервера.
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое восстановление соединения при полном откзазе сервера.
 
Будет продолжать "долбиться".
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
 
Вы можете более подробно описать концепцию работы функции CreateDataSource: то, как вы представляете себе, как она должна работать?
А то постоянно натыкаешься на какие-то неожиданности и не знаешь, как реагировать: то ли это ошибка, то ли так и задумано было...
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
 
Если не открыта ТВС или тиковый график, то при заказе всех сделок из скрипта сбрасываются настройки по уже заказанным инструментам. После остановки скрипта настройки "Заказ всех сделок..." полностью сбрасываются, как будто ничего не заказывалось (даже если функция :Close() не вызывалась).
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
 
Добрый день.
Есть какие-нибудь результаты?

Сегодня произошло следующее: В QUIK не открыто ни одного окна, кроме "Доступные скрипты"; запущен только один скрипт, заказывающий все сделки по определённому списку инструментов по классу SPBOPT. Через некоторое время получаю такую ошибку:

При этом скрипт продолжает работать: судя по логу все сделки продолжают успешно заказываться.
Есть подозрение, что, ошибка выскакивает из-за того, что заказ всех сделок по большому списку инструментов происходит длительное время, в течение которого процесс info.exe загружает одно ядро процессора на 100%.
Надо делать так, как надо. А как не надо - делать не надо.
Шрифт всего уменьшить можно?
 
Цитата
sam063rus пишет:
в Windows для этого есть комбинация клавиш: Ctrl+"колесо мыши"
Речь про широкие отступы от краёв, а не масштаб.
Надо делать так, как надо. А как не надо - делать не надо.
Шрифт всего уменьшить можно?
 
Уменьшите размеры padding (выделены зелёным) в шаблоне форума, а то задалбывает перематывать метры портянок, где больше половины пустоты:

Надо делать так, как надо. А как не надо - делать не надо.
Может стоит объединить функции O, H, L, C, V, T в одну?
 
Egor Zaytsev,
я, так понимаю, разговор за скорость получения данных. В вашем варианте скорость в 6 раз меньше, чем если б это была готовая С-функция.
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
Вроде, как нет. Но если всё же решитесь на этот подвиг, то вот ASCII таблица кодов символов Windows (Win-1251)
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
Цитата
sam063rus пишет:
касаемо всего остального и многопоточной работы и Ваших выводов по этой теме, могу только сказать, что Вы похоже совсем не читали мной приведённый выше форум: quik2dde.ru
Из каких таких моих слов вы делаете эти выводы? Нет, ну правда. Я ж не спорю. Я высказал своё мнение, основанное на моём опыте, в т.ч. и с визуальными таблицами QLUA. Поправьте меня, если ошибаюсь.
Да, есть проблемы с общими переменными, таблицами при работе в двух потоках. Но это не означает, что нужно отказаться от работы в main(), просто нужно учитывать эти особенности. Более того, "тяжёлые" вычисления желательно переносить в main().
Форум читал, но признаюсь честно, не всё. Но нигде не видел там призывов "работу с майн лучше свести к минимуму". В ваших словах тоже нет никакой конкретики, кроме отсылки на форум, типа: "там где-то что-то написано".
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
sam063rus, извинения принимаются.   :)  

Поймите меня правильно: судя по вопросам автор темы только начинает изучать графические возможности QLUA. Не стоит вводить в заблуждения пользователей своими убеждениями. Поэтому я и предложил обосновать фразу "надо забыть про работу в "майне". Полагал, что, возможно узнаю что-то новое для себя, а не спора ради. Но увы...   :(  
Касаемо вашего примера: по моим убеждениям (поправьте, если не прав) инициализацию, в т.ч. создание визуальных таблиц, не стоит выполнять в основном потоке без определённой на то необходимости. Т.к. создание таблиц занимает время; создание больших таблиц - много времени. При создании таблицы в основном потоке работа других скриптов может быть приостановлена на это время, особенно если их работа строится исключительно на колбеках.
К тому же, создать таблицу можно в main, а заполнять значениями по событиям в колбеках - нет проблем.   ;)  

Что касается враппера, то тут дело вкуса. Но его использование не освобождает пользователя от необходимости следить за порядком вызова функций. К тому же, ИМХО, при частой модификации / обращении к элементам таблицы, использование враппера может снизить производительность скрипта.

Цитата
Дмитрий пишет:
А об этом где-то разработчики писали или это тоже из разряда нигде не упоминающихся особенностей?
Разработчикам "эта особенность" давно известна, но, судя по тому, что они не считают нужным сообщать о ней где либо, то скорее это - т.н. "пасхалка". И периодически на форуме появляются сообщения от пользователей, радостно спешащих поделиться своей "находкой".   :D
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
sam063rus,
Во-первых, вы мне не тыкайте. Мы с вами не пасли коров в одном колхозе.
Во-вторых, судя по вашей активности на форуме, потроллить пришли сюда вы.

Я вопросы задаю не интереса ради, а уточнить чтобы, может, я что-то упустил при разработке. Но, похоже, ничего конкретного вы мне сказать не можете.
Цитата
sam063rus пишет:
тут разговор про то, что размер кода, равно как и число переменных значительно увеличаться, что приведёт к полной неразберихе в коде.
При использовании враппера уменьшится количество необходимых переменных для хранения идентификаторов таблиц?
Насчёт неразбирихи - это от автора творения зависит.  :)
Цитата
sam063rus пишет:
имеется ввиду, что враппер уже описан и в нём УЖЕ учтён правильный порядок
Ничего подобного: попробуйте добавить строку до создания окна.

Насчёт работы в main, то тут зависит от конкретной поставленной задачи. Не бывает одного универсального решения для всех задач.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Ниже под спойлером текст, относящийся только к Николай Камынин
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
Цитата
sam063rus пишет:
1. надо забыть про работу в "майне", как дурной тон.
Обоснуйте.
Цитата
sam063rus пишет:
2. что будет если таблиц будет несколько?
Идентификатор таблицы вам на что?
Цитата
sam063rus пишет:
3. при создании объекта "таблица", (без использования враппера), имеет очень большое значение порядок вызова методов
Можно подумать, с использованием враппера порядок вызова не имеет значения. Единственное, заголовок можно задать до вызова функции :Show(). Но только потому, что в самой функции :Show() заголовок задаётся повторно после CreateWindow():
Код
function QTable:Show()
     -- отобразить в терминале окно с созданной таблицей
     CreateWindow(self.t_id)
     if self.caption ~="" then
         -- задать заголовок для окна
         SetWindowCaption(self.t_id, self.caption)
     end
     self.created = true
end
Надо делать так, как надо. А как не надо - делать не надо.
не добавляются строки в таблицу
 
Цитата
Дмитрий пишет:
Но почему-то в нее не добавляются строки.
Вдобавок не отображается заголовок окна.
Сначала надо создать окно, а затем добавлять строки, заголовок. Т.е., порядок вызова должен быть такой:
Код
AllocTable()
AddColumn()
CreateWindow()
Далее остальные функции работы с таблицей
И не имеет значения, в каком потоке строится таблица: в основном или в main.
Цитата
Дмитрий пишет:
И при вызове функции DestroyTable() окно не закрывается
Функции работы с таблицами, в т.ч. DestroyTable() не работают после нажатия кнопки "Остановить", поэтому их вызов надо размещать в колбеке OnStop().
Надо делать так, как надо. А как не надо - делать не надо.
Снятие заявки и тут же ее выставление., Снятие заявки и тут же ее выставление.
 
Цитата
Антон Соболь пишет:
Понял что акция из заблокированной не успевает переходить в Доступно.
что делать?
Сейчас уже не помню, разве в QPILE нет возможности проверить количество доступных лотов в таблице лимитов по бумагам?
Очевидно, нужно дождаться, чтобы лимиты обновились.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Николай Камынин, вообще-то QUIK - платная ИТС: http://quik.ru/bank/products/quik-broker/order/tariffs/
То, что вы ею пользуетесь бесплатно, не отменяет сего факта.
Вы либо оплачиваете её использование из комиссии, либо это оплачивает другой клиент вашего брокера, у которого оборот выше.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Цитата
Серж пишет:
просто создав в Lua функцию, возвращающую список классов, по которым запрещены транзакции
Вернее, функцию, возвращающую список классов, по которым разрешены транзакции. Соответственно, по остальным классам транзакции запрещены - можно даже не пытаться.
Ну, а дальше, как уже упоминалось, "методом научного тыка", при необходимости, проверять требуемые бумаги.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Цитата
sam063rus пишет:
брокеру для этого придётся писать, а точнее, опять же заказывать ЗА СВОЙ СЧЁТ серверный модуль для квика у ARQA
Вот эту часть уже сейчас можно было бы реализовать без каких либо изменений в серверной части, просто создав в Lua функцию, возвращающую список классов, по которым запрещены транзакции:
Цитата
Sergey Gorokhov пишет:
1) по классу может стоять запрет на транзакции в правах.
В этом случае подать заявку через интерфейс нельзя, просто пункт меню будет не активен.
Это сняло бы большую часть вопросов, т.к. чаще ограничения ставятся на весь класс.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Albert Eritsyan пишет:
А втором случае есть какие либо специальные коды отказов в транзакции (либо четко ограниченный круг таковых, обусловленных именно наличием такого рода ограничений)?
Если в ответ на транзакцию нет номера заявки, и нет какого либо цифрового кода в круглых скобках и нет слова FORTS, значит заявка была отвергнута сервером.
Кроме случая когда транзакции не доступны (нет прав) И кроме случаев когда тест транзакции содержит синтаксическую ошибку. В этом месте ошибку возвращает терминал Quik
Несмотря на то, что способов запретить транзакции "великое множество", есть какой-то определённый список ошибок, возвращаемых на такую транзакцию, и этот список ограниченный. Верно?

Sergey Gorokhov, чтобы облегчить автору задачу, вы могли бы опубликовать этот список ошибок, чтобы он мог определённо знать, что вот эта вот транзакция не прошла по причине того, что брокером запрещены операции по данному классу/инструменту.

Далее на сегодняшний день, я вижу только один вариант решения поставленной задачи: безусловная отправка транзакции и анализ ответа. Если ответ пришёл с ошибкой, подтверждающей, что транзакция по инструменту запрещена, то данный инструмент заносится в "чёрный список", и по нему транзакции более не отправляются.
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Цитата
sam063rus пишет:
Главный вопрос: Что будет, если в один момент прошла транзакция на основании информации из старых списков, а в следующий момент списки изменились и оказалось, что новая связанная транзакция уже невозможна исходя из изменившихся списков?
Изменения в доступности списков вступают после реконекта клиента к серверу. Поправьте, если не прав.
Надо делать так, как надо. А как не надо - делать не надо.
Сделать заявку своей, средствами qlua
 
Цитата
Sergey Gorokhov пишет:
По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
Это как? Айсберг-заявки официально поддерживаются на валютном и срочном рынках?
Надо делать так, как надо. А как не надо - делать не надо.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
 
Тут вопрос ещё в том, а знает ли сам терминал по каким инструментам трейдеру разрешены операции?
Или он узнаёт об этом только, когда в ответ на транзакцию с сервера приходит ответ с ошибкой?
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Дмитрий, вот вам ещё пища для размышления: если у вас есть рублёвый счёт и вы не совершаете на нём никаких операций, то его состояние в долларовом выражении будет меняться в зависимости от текущего курса.
Возвращаясь к вашему примеру:
У вас на счёте сумма, эквивалентная 100$, т.е при курсе 30 руб./$ - 3000 руб. Вы не стали совершать никаких сделок ни с нефтью ни с долларом. Когда цена на доллар выросла до 60 руб./$, вы, к своему удивлению, обнаружили, что можете купить только 50$. Т.е., потеряли 50$, не совершая никаких сделок! Вот такая математика.   :)
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Цитата
Дмитрий пишет:
Я на досуге перечитаю еще раз спецификацию контракта на нефть сорта брент.
Спецификация тут не при чём. Вам надо понять простую вещь: вы продаёте контакты за рубли, поэтому фин. результат проще считать в рублях. А потом конечную цифру можете конвертировать в доллары при желании.
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое переключение на другой сервер
 
Цитата
sam063rus пишет:
а что сейчас разве есть те которые работают без ЭЦП?
Блин, спалился  :D  Короче,я этого не говорил. И с вами не знаком, если что.  :D
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Цитата
Дмитрий пишет:
в общем случае не соответствует действительности. Именно из-за особенностей расчета вар.маржи в приведенном Вами примере мы можем получить как прибыль, так и убыток.
Дмитрий, я привёл пример, так сказать, "на пальцах", чтобы не усложнять ситуацию. Потому как вы в более простых ситуациях считаете неправильно. Зачем вам усложнять ещё этими особенностями начисления вариационной маржи?
Для начала надо понять простые вещи.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
:D   Улыбнуло...
Цитата
Дмитрий пишет:
И зачем в данном случае открывать длинную позицию по фьючерсу на курс доллар-рубль на сумму 100 долларов, если потом закрывать ее только на 50? Что мне делать с оставшейся позицией на 50?
Вы же хотели получить фин. результат в долларах. Вот эти 50$ и будет ваша прибыль от сделки по брент. Можете делать с ними, что хотите.
А длинную позицию по доллару на сумму 100$ открываем, чтобы захэджировать риски изменений курса доллара.
100$ - потому что продали брент за 100$, а не за 50$.
При закрытии позиции по брент, конвертируете 50$ в рубли, чтобы откупить фьючерс брент, который теперь стоит 50$. Но, напомню, рассчитываетесь за него вы рублями.
Спот это или срочный рынок - не имеет разницы. Просто на срочном рынке у вас блокируется ГО в меньшем объёме, чем стоимость контракта. Но вы должны открывать позицию на суммы эквивалентные указанным.
Цитата
Дмитрий пишет:
А если ее тоже закрыть, то фин.результат и вовсе окажется равным 87,5$.
Как вы считаете вообще?
Цитата
Дмитрий пишет:
А при торговле фьючерсами в приведенном Вами примере фин.результат составит уже не 50$, а (37.5$ + 25$) = 62,5$
37.5$ - от продажи фьючерса на нефть, а 25$ - от купленного фьючерса на курс доллар-рубль (50$*60 - 50$*30 = 1500 руб. = 1500/60 долл. = 25$)
А это вообще разрыв "стандарта". При торговле фьючерсами фин. результат составит (я не беру в расчёт кривую изменения курса пока открыта позиция):
  • по брент финансовый результат в рублях +100*30 - 50*60 = 0
  • по доллару: -100*30 + 100*60 = +3000
Итого: 0 + 3000 руб = 3000/60 = 50$
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое переключение на другой сервер
 
Цитата
Дмитрий пишет:
А Вы попробуйте добавить в список соединений несколько одинаковых (на один и тот же сервер). Тогда он будет их перебирать столько раз, сколько Вам нужно, пока не дойдет до соединения с другим сервером.
А это мысль. Спасибо.
Цитата
sam063rus пишет:
мне приходится указывать помимо пароля ещё и место ключеового контейнера. а стоит серверу потерять коннект - ЭЦП сразу воет, что надо ввести ключ
Это одна из причин, почему я не использую ЭЦП и не перехожу к брокеру с обязательной авторизацией по ЭЦП.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Цитата
Дмитрий пишет:
Еще большая засада заключается в том, что если Вы купили сегодня фьючерс по 60, а он за день упал до 50, то с Вас спишут 10$ маржи, переведя в рубли по курсу, например, 70 (10*70 = 700 рублей).
Завтра фьючерс вырос обратно до 60$. Вы не закрываете позицию, надеясь на дальнейший рост. Если курс на этот день окажется не 70, а 60, то Вам зачислят маржув размере 600 рублей (10*60).
На следующий день, видя, что цена не растет, Вы закрыли позицию по цене 60$. А курс доллара опять вырос до 70.
Согласно Вашему примеру на день закрытия позиции Вы должны получить нулевой результат (60$*70 - 60$*70).
Но на самом деле Вы окажетесь в убытке на 100 рублей (разница между списанной в первый день и зачисленной во второй день маржой).
Вы неверно рассчитываете вариационную маржу. Согласно Спецификации фьючерсного контрактана сырую нефть сорта «BRENT» вариационная маржа рассчитывается как разница произведений цены на стоимость минимального шага цены, делённых на минимальный шаг цены.
Принципы расчета вариационной маржи и гарантийного обеспечения с использованием текущих курсов валют:
Цитата
размер текущей вариационной маржи в рублях может меняться из-за изменения курса валюты, даже если:
  • позиция была закрыта, но есть некоторый финансовый результат;
  • позиция открыта, но цена контракта в пунктах не меняется.
Поэтому при закрытии позиции также стоит учесть изменение курса, даже если сама цена контракта не изменилась.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Цитата
Серж пишет:
Серж , вам надо определиться в чём вы считаете свою прибыль: то вы считаете в рублях, то в долларах.
Это же очевидно, что в одной валюте может быть прибыль, а в другой - большой убыток.
Ой, блин, сам с собой разговариваю ))
Конечно же, это вам Дмитрий, надо определиться в чём вы считаете свою прибыль: то вы считаете в рублях, то в долларах.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Серж, вам надо определиться в чём вы считаете свою прибыль: то вы считаете в рублях, то в долларах.
Это же очевидно, что в одной валюте может быть прибыль, а в другой - большой убыток.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Цитата
Дмитрий пишет:
Вы имели в виду - купил фьючерс на доллар-рубль? Если просто купить доллары, то их как было 100, так и останется столько же, независимо от курса.
Но Вы правы только при условии что рубль обесценился на столько же, на сколько нефть.
Дмитрий, мне кажется, что вы чего-то недопонимаете или недоговариваете. Ваша фраза:
Цитата
Дмитрий пишет:
Поэтому к тому моменту когда Вы закроете позицию и решите сконвертировать свою прибыль в доллары, Вы сможете купить лишь 45*50/60 = 37,5 долларов.
Я вам говорю:
Цитата
Серж пишет:
Потому что продали вы фьючерс за рубли. Если бы вы сразу конвертировали рубли в 100$, то ваш финансовый результат составил бы порядка 50$.
Т.е., когда вы открыли шорт по брен, вам надо было открыть лонг по доллару на сумму 100$. В момент закрытия позиции по брен, вы закрываете лонг по доллару на 50$. И ваш финансовый результат составит 50$.
От курса доллара в данном случае зависит ваша прибыль в рублях, но не долларах.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Дмитрий, понятно, что маржа зачисляется/списывается каждый день. Я просто, так сказать, на пальцах объяснил из чего складывается прибыль по долларовым контрактам. Т.е., это, как бы, ответ на ваш вопрос:
Цитата
Дмитрий пишет:
А если мы купим, к примеру, фьючерс на нефть (цена в долларах) когда доллар по 80 и продадим его за ту же цену когда доллар упал до 60, то никаких убытков или прибыли мы не получим.
Да, действительно, грубо говоря, в долларах фин. результат не изменится, в отличии от рублей. На самом деле, следует учитывать как изменялся курс доллара, пока мы держали позицию, как вы описали в посте #17.
Цитата
Дмитрий пишет:
Т.е. Вы не оплачиваете стоимость нефти в рублях, покупая фьючерс, так же как и не получаете ее стоимость в рублях, продав его.
Вы оплачиваете фьючерс именно в рублях, т.к. депозит рублёвый. Но это всё лирика...
Цитата
Дмитрий пишет:
Поясню в чем именно засада - если Вы продали фьючерс по 100, а купили по 50, то по идее должны заработать 50 долларов. Но так как этот доход зачисляется Вам не единовременно при закрытии позиции, а каждый день небольшими частями, причем пересчитывается при этом в рубли по курсу на день зачисления, то при равномерном росте курса доллара за это время с 30 до 60 средний курс окажется 45. Поэтому к тому моменту когда Вы закроете позицию и решите сконвертировать свою прибыль в доллары, Вы сможете купить лишь 45*50/60 = 37,5 долларов.
Потому что продали вы фьючерс за рубли. Если бы вы сразу конвертировали рубли в 100$, то ваш финансовый результат составил бы порядка 50$. И дело тут не в том, что маржа зачисляется "каждый день небольшими частями", а в том, что ваши рубли обесценились.
Надо делать так, как надо. А как не надо - делать не надо.
работа с фьючерсами
 
Для долларового актива при изменении курса доллара, будет меняться его цена в рублёвом выражении.
Так, если бы вы купили брент по 100$ при курсе 30 руб./$, а продали по 50$ при курсе 60 руб./$, то в рублях вы бы ничего не заработали и не потеряли.
Именно поэтому был обвален курс национальной валюты, чтобы не потерять поступления в бюджет при снижении цен на нефть. Т.к., бюджет верстается в рублях, то поступления в бюджет от продажи нефтепродуктов остаются примерно на том же уровне.
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое переключение на другой сервер
 
Цитата
Серж пишет:
А то приходится отключать возможность автоматического переключения, иначе при каждом "чихе" QUIK будет прыгать с одного сервера на другой и перекачивать все данные заново.
Нужно, чтобы QUIK переключался на другой сервер через заданное количество неудачных попыток подключения.
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое переключение на другой сервер
 
Добавьте в настройки соединений параметр "При n неудачных попыток переключаться на другой сервер".
А то приходится отключать возможность автоматического переключения, иначе при каждом "чихе" QUIK будет прыгать с одного сервера на другой и перекачивать все данные заново.
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
 
Michael Bulychev, спасибо.
Однако, маленькая ремарка: в паттернах Lua нет "или", поэтому использование символа "|" будет лишним
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
Цитата
Для того чтобы получить текущее состояние данных достаточно CreateDataSource.
Однако чтобы фактически произошла подписка на новые данные (а новыми считаются любые полученные с сервера) то нужен колбек SetEmptyCallback или SetUpdateCallback.
Добавьте эту информацию в документацию, а то ведь спрашивать будут.
Естественно, после устранения ошибок, связанных с работой функции CreateDataSource.
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
Цитата
Сергей Горохов, ARQA Technologies пишет:
Для того чтобы получить текущее состояние данных достаточно CreateDataSource.
Однако чтобы фактически произошла подписка на новые данные (а новыми считаются любые полученные с сервера) то нужен колбек SetEmptyCallback или SetUpdateCallback.
Однако, в текущей версии CreateDataSource работает не так, как было задумано разработчиками. Это описано в теме по ссылке, которую я давал выше.
Надо делать так, как надо. А как не надо - делать не надо.
вопрос разработчикам, структура файлов с графиками
 
Цитата
Серж пишет:
to разработчикам ,
было бы удобно, если бы в QUIK добавили тот функционал, что есть в QMinEditor, в частности: открытие графика из архива локальной БД.
А что касается пожелания. Зарегистрируете его?
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
http://forum-archive.quik.ru/forum/lua/125655/125655/
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
 
Со 2-м и 3-м пунктом понятно.
По 1-му пункту нужно именно задавать в "человеческом" формате: "dd.mm.yyyy", "yyyy-mm-dd", "dd/mm/yy", "yyyymmdd" и т.д.
Можно как в Эксель: "D.M.YY", "YY-M-D", "D/M/Y", "YYMD"
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
 
Задача: написать функцию форматирования даты:
Код
_DateFormat(date, input, output),
где date - дата в строковом формате,
input - формат ввода,
output - формат вывода.

Пример:
Код
_DateFormat("11.02.2015", "dd.mm.yyyy", "yyyymmdd")

На выходе получаем: "20150211"

Есть идеи, как это осуществить?
Надо делать так, как надо. А как не надо - делать не надо.
Определить время начала интервала для заданного таймфрейма
 
Цитата
Серж пишет:
определить время начала интервала для заданного таймфрейма
Есть время события, есть таймфрейм. Нужно определить время начала свечи, если угодно.
Вроде, уже сам сделал:
Код
function getTimeInterval(Time, Interval)
  Interval = Interval*60 -- приводим к секундам
  local z = 3*60*60  -- приводим к часовому поясу Москвы
  return os.date('!%d.%m.%Y %X', math.floor((Time+z)/Interval)*Interval)
end  
 
local Time = os.time({year=2015, month=02, day=10, hour=18, min=40, sec=20})  -- Время в числовом формате
local Interval = 4*60  -- интервал (таймфрейм) в минутах: 4 часа
print(getTimeInterval(Time, Interval))
Надо делать так, как надо. А как не надо - делать не надо.
Стопы, опционы - 2, http://forum-archive.quik.ru/forum/quik/126145/126145/
 
Цитата
Zoya Vdovina пишет:
Нов версии терминала 6.16.1, проблема была исправлена. (Задержки при открытии формы ввода заявки по опционам.)
Да, действительно, в v.6.16.1.15 проблема задержки открытия формы ввода заявки по опционам устранена. Ведь можете, когда хотите. И даже видео не понадобилось.

Но проблема со стоп-заявками осталась.
Чтобы воспроизвести эту проблему вам не нужен архив терминала. Вам нужно подключение к реальному серверу. Утверждаю это с полной уверенностью, потому как проверил на чистом дистрибутиве QUIK-Junior, в котором проблемы нет, изменив настройки подключения к боевому серверу: на боевом сервере возникают описанные проблемы со стоп-заявками по опционам.
Как говорится: "было бы желание"...
Надо делать так, как надо. А как не надо - делать не надо.
getSecurityInfo(ClassCode, secCode) возвращает значения nil
 
В v.6.16 функция getSecurityInfo работает. Проверьте, содержится ли необходимый инструмент в списках getClassesList() и getClassSecurities(ClassCode) непосредственно перед вызовом getSecurityInfo()
Надо делать так, как надо. А как не надо - делать не надо.
Определить время начала интервала для заданного таймфрейма
 
Задача: определить время начала интервала для заданного таймфрейма.
Код
function getTimeInterval(t, i)
  i = i*60  -- переводим в минуты
  return os.date('%d.%m.%Y %X', math.floor(t/i)*i)
end

local t = os.time({year=2015, month=02, day=10, hour=18, min=40, sec=20})
local i = 4*60  -- интервал 4 часа
print(getTimeInterval(t, i))
Но кажет не то время.
Надо делать так, как надо. А как не надо - делать не надо.
Стопы, опционы - 2, http://forum-archive.quik.ru/forum/quik/126145/126145/
 
Подтверждаю, есть такая проблема на опционах. И не только для стоп-заявок. Для обычных заявок то же самое. Я писал об этом ещё в ноябре прошлого года. Тема "Ввод заявки".
Меня просили снять видео, "как я открываю форму ввода заявки на опционах и на каком-нибудь другом классе". Извините, но снимать видео, чтобы подтвердить то, что я итак описал в письме, у меня нет желания.

Есть предположение, что это происходит из-за большого количества бумаг в классе SPBOPT.
Цитата
Zoya Vdovina пишет:
Проверили на 6.16.1.15. Описанная Вами проблема не воспроизвелась.
Если проверяли на демо, то там такой проблемы нет: на боевом сервере по классу SPBOPT более 5 тыс. инструментов, на демо - всего 362.
Надо делать так, как надо. А как не надо - делать не надо.
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
 
1) getSecurityInfo может вернуть nil, если список бумаг ещё не загружен, тогда получите ошибку: "attempt to index a nil value"
2) если seccode содержится в нескольких классах, то getSecurityInfo может вернуть не тот class_code, который вы ожидаете
3) если вы знаете код класса, тогда зачем getSecurityInfo("",seccode).class_code ?
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 36 37 38 39 40 41 42 43 44 45 46 След.
Наверх