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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 След.
В какой таблице найти информацию о short
 
Цитата
Egor Zaytsev пишет:
Максимально возможное количество бумаг в заявке на продажу этого инструмента на этом классе, исходя из лучшей цены спроса.
Извините, но я так и не понял - количество зависит от имеющихся у меня средств или от объема встречных заявок на продажу, которые есть сейчас в стакане?
И почему именно исходя из лучшей цены спроса, если в документации сказано "по указанной цене", которую можно задать в параметре price при вызове функции?
В какой таблице найти информацию о short
 
is_margin_sec - Признак маржинальности инструмента. Возможные значения:
  • «0» – не маржинальная;
  • «1» – маржинальная
Под маржинальной имеется в виду акция, доступная для короткой продажи (т.е. продажи в долг)?


can_buy - Оценка количества лотов, доступных на покупку по указанной цене
Имеется в виду сколько я могу купить с учетом имеющихся у меня собственных и заемных средств? Или это количество лотов, которое имеется сейчас в стакане по заданной цене?
функция обратного вызова для SetUpdateCallback(), как понять, по какому инструменту она сработала?
 
Здравствуйте!
Если я использую одинаковые действия в функциях обратного вызова, заданных с помощью SetUpdateCallback() для разных источников данных, но внутри этих функций необходимо учитывать, по какому инструменту произошло обновление свечи (и, возможно, на каком таймфрейме), то есть ли способ использовать одну и ту же функцию для разных источников данных по разным инструментам?
Или же нужно создавать отдельные экземпляры однотипных функций для каждого источника данных с жестко прописанными внутри кодами инструментов и таймфреймов?
В какой таблице найти информацию о short
 
Цитата
Дмитрий пишет:
В таблице "Клиентский портфель" нажмите право кнопкой мыши на любой строке и выберите пункт контекстного меню "Открыть таблицу [Купить/Продать].
В открывшейся таблице для тех акций, которые доступны для short, в колонке "Тип" присутствует буква К.
Подскажите, пожалуйста, есть ли возможность получить значения из этой таблицы [Купить/Продать] в скрипте, написанном на QLua?
нужно ли использовать Clear() при завершении скрипта
 
Здравствуйте!
1) Если в скрипте для вывода на экран создавалась таблица t_id, окно которой еще до завершения работы скрипта было закрыто вручную, то нужно ли после этого использовать вызов функции Clear(t_id) для очистки содержимого таблицы t_id и освобождения памяти, занятой этой таблицей?
Если ответ на этот вопрос утвердительный, то еще один вопрос:
2) Если после закрытия окна вручную скрипт сразу завершает свою работу, то есть ли смысл и в этом случае использовать функцию Clear(t_id) или же вся занятая скриптом (и в том числе таблицей t_id) память автоматически освободится после остановки скрипта?
Ошибка при попытке получить значение из таблицы OnTrade()
 
А, это я просто невнимательно прочитал Ваши ответы :)
Ошибка при попытке получить значение из таблицы OnTrade()
 
Цитата
Николай Бехтерев пишет:
table_order = OnTrade()
Sergey Gorokhov, а разве это правильно - вручную вызывать функцию обратного вызова?

Цитата
Николай Бехтерев пишет:
message(tostring(table_order.PRICE),3)
Разве не надо было подобный оператор разместить в теле самой функции OnTrade(), а не в main() ?
Глубина истории
 
Вы имеете в виду историю изменений параметров? Тогда другого выхода, кроме как копить самому, нет. На реале она тоже только за текущий день хранится в терминале.
Оборот по бумаге
 
class_code = "TQBR"  -- МБ ФР: Т+ Акции и ДР
sec_code = "SBER"  -- Сбербанк

t = getParamEx (class_code, sec_code, "VALTODAY")  -- Оборот в деньгах
message(t.param_value, 1)

t = getParamEx (class_code, sec_code, "VOLTODAY")  -- Количество бумаг во всех сделках
message(t.param_value, 1)
info.exe
 
Думаю, Sofia Fedurina могла бы в данном случае помочь, удалив все сообщения, кроме первого.
info.exe
 
сергей, я букву ё не пишу (вот даже не сразу нашел ее сейчас), но давно понял, что Nikolz со старого форума и sam063rus - совершенно разные люди.
Цитата
сергей пишет:
не ищите чёрную кошку...она ведь не нужна Вам
;-)
Закрытие позиции во внеторговое время
 
Цитата
Андрей пишет:
насчёт первого пункта: не надо впадать в крайность: если память не изменет то даже если объявят делистинг - у вас ещё будет минимум месяц, если не ошибаюсь, чтоб избавиться от своих бумаг
Это значит, что еще месяц ваши акции будут торговаться на бирже.
Lua и связь - списки - фильтры, Нужно узнать, какие class_name или name отфильтрованы пользователем
 
Добрый день! Прямой возможности сделать это нет.
Можно только косвенно догадываться об этом, проверив, по каким инструментам не приходят обновления значений параметров.
Цветовая настройка таблицы текущих параметров
 
Подведите мышь к заголовку соответствующего столбца (по которому хотите определять цвет) и щелкните левой кнопкой по появившемуся там значку Ab.
Откроется окно "условное форматирование", где вы сможете настроить цвет и шрифт ячеек или всей строки в зависимости от значений параметра из этого столбца.
Подсобите с битовыми флагами на примере выяснения позиции из таблицы OnTrade( )?
 
Нашел ее описание в руководстве по QLua, раздел "Функции для работы с битовыми масками в структурах данных":

Функция возвращает результат битовой операции AND над аргументами. Аргументов может быть несколько, при этом обязательные аргументы x1 и x2.
NUMBER bit.band(NUMBER x1, NUMBER x2, ...)
Подсобите с битовыми флагами на примере выяснения позиции из таблицы OnTrade( )?
 
Цитата
Руслан Руслан пишет:
бит 2 (0x4)Заявка на продажу, иначе – на покупку. Данный флаг для сделок и сделок для исполнения определяет направление сделки (BUY/SELL)- т.е. вам надо проверить состояние 4го бита - (0х4)
Почему же надо проверять состояния 4-го бита, если в документации идет речь о 2-м?
(0х4) - это не номер бита, а значение числа, имеющего единицу в данном бите и нули во всех остальных.

В Lua я не очень силен, поэтому подскажите плиз, функция bit.band - это стандартная функция Lua или она из какой-то библиотеки сторонних разработчиков? Где можно увидеть ее описание?
Получение свечи по дате
 
Подробную информацию можно прочитать в Руководстве пользователя QLua (файл QLUA.chm в папке с терминалом).
Раздел "Функции взаимодействия скрипта Lua и Рабочего места QUIK / Функции для работы с графиками"
Получение свечи по дате
 
Цитата
Руслан Чигниев пишет:
Есть ли какой нибудь простой способов без лишних телодвижений получить свечу или массив свечей на определенную дату?
к примеру:
t = {}
t = нужнаяфункция(бумага, кодбумаги, дата)
Нет такого способа, насколько я знаю.
Есть способ получить эту информацию только перебрав, начиная с самой первой, свечи с графика или из источника данных, открытого с помощью CreateDataSource , и выбрав при этом те, которые имеют нужную дату (если для заданного таймфрейма эта дата еще доступна на сервере)..
Закрытие позиции во внеторговое время
 
Цитата
Андрей пишет:
имея лоты акции, которая завтра (или уже сегодня) не торгуется на рынке и еще долго не будет (делистинг?). Если в течении месяца можно закрыть позицию связавшись с менеджером
Если акция уже завтра не торгуется, то закрыть позицию можно только сегодня, неважно каким способом.

Цитата
Андрей пишет:
Если ... можно закрыть позицию связавшись с менеджером
1) Можно ли закрывать позиции заявкой через Quik
Если позицию можно закрыть, связавшись с менеджером, то ее можно закрыть и через Quik в обычном порядке, без всяких премудростей.

Цитата
Андрей пишет:
Можно ли закрывать позиции ... в любое время в т.ч. во внеторговое?
Во внеторговое - нельзя. Можно только выставить стоп-заявку, которая сработает когда начнутся торги.
Получение свечи по дате
 
Цитата
Руслан Чигниев пишет:
Что такое колбеки? прпвильно ли я понимаю, что процедуру обработки событий, происходящих в терминали, по типу OnQuote, OnOrderи т.д.
Правильно. Колбек - это написание русскими буквами слова callback, которое переводится в том числе как "функция обратного вызова" (к которым и относятся OnQuote, OnOrder и т.д.)
StratVolat.dll и ещё...
 
Цитата
Дмитрий пишет:
Есть ли способ избавиться от запуска winros.exe и при этом не получать каждый раз сообщения о якобы появившейся новой версии программы при подключении к серверу?
Только не советуйте отключать автоматическую проверку появления новой версии...
Цитата
Egor Zaytsev пишет:
Дмитрий, к сожаление, другого способа нет, только отключать автоматическую проверку появления новой версии.
Строго говоря, такой способ есть, хоть и не слишком красивый - найти в файле iwr.dll слово winros.exe и заменить его, например, на winros-exe.
Только делать это аккуратно, таким редактором, который точно не изменит в двоичном файле ничего лишнего.
Убедиться в успешности сделанных изменений можно с помощью команды вида: fc /b iwr.dll iwr.bak
Если FC выдаст сообщение о том, что эти файлы различаются только в одном байте, то все ок.
После этого winros.exe перестанет запускаться, а терминал не будет выдавать сообщения о том, что версии программы на сервере и на компьютере различаются.
Правда при запуске терминала будет выдаваться сообщение "Ошибка экспорта в MetaStock : произошла ошибка с кодом IWR_CANNOT_START". Но на работе терминала это никак не отразится (если конечно нет необходимости использовать экспорт данных в системы технического анализа).
Не показывает смайлы
 
Sofia Fedurina, может в этой ветке смайлы и убрались, а вот в другой как-то не совсем:
http://forum.quik.ru/messages/forum1/message1568/topic80/#message1568
Попробуйте процитировать текст в первом сообщении по ссылке, даже убрав предварительно галочку "показывать смайлы".
Во-первых, при редактировании сообщения смайл будет отображаться.
Во-вторых, после размещения этого сообщения смайла не будет, но с обеих сторон от символов :\ появятся пробелы, что видно из следующего сообщения по ссылке.
Не выводятся свечные графики, Сбой QUIK. Не выводятся данные вчерашнего дня.
 
Цитата
Дмитрий пишет:
C :\ WINDOWS
Сорри, это тест
Не выводятся свечные графики, Сбой QUIK. Не выводятся данные вчерашнего дня.
 
C:\WINDOWS
Сорри, это тест
Не показывает смайлы
 
C:\
("a")
Автоматическое переключение на другой сервер
 
1) У меня была мысль, что значение переменной timeout должно быть больше значения параметра check-tmo из файла info.ini, поскольку при появлении сообщений "вы уже работаете в системе" повторное подключение к серверу возможно не ранее чем через check-tmo секунд.
2) С другой стороны, если обнаружение обрыва связи и вызов функции OnDisconnected() происходят только по истечении check-tmo секунд с момента прекращения обмена данными с сервером, то значение переменной timeout можно задавать без оглядки на значение параметра check-tmo.

Было бы очень хорошо, если бы разработчики пояснили, какой из двух приведенных выше вариантов будет верным.
Автоматическое переключение на другой сервер
 
1.  Поддерживаю пожелание Серж о доработке терминала Quik.

2.  Серж, пока наше пожелание о доработке терминала не будет реализовано, Вашу проблему можно попробовать решить другим способом (при условии, что на всех серверах подключение производится на порт с одинаковым номером и с использованием одинакового ключа сервера). В приведенном ниже варианте решения этой проблемы задается не число попыток подключения к одному серверу, а время, в течение которого терминал будет пытаться к нему подключиться до принятия решения о переключении на другой сервер.
1) Добавляем в терминале в список доступных соединений (Связь / Доступные соединения) новое, в поле "Сетевой адрес" которого указываем virtual.srv (описание соединения можно использовать любое). Включаем настройку "использовать только параметры последнего соединения".
2) Добавляем в файл C  :\  WINDOWS\system32\drivers\etc\hosts строку следующего вида:
xxx.xxx.xxx.xxx virtual.srv
где xxx.xxx.xxx.xxx - айпи адрес одного из ваших серверов
3) Копируем файл C  :\  WINDOWS\system32\drivers\etc\hosts в файл hosts.s2 в том же каталоге.
В файле hosts.s2 заменяем строку xxx.xxx.xxx.xxx virtual.srv на yyy.yyy.yyy.yyy virtual.srv
где yyy.yyy.yyy.yyy - айпи адрес второго вашего сервера
4) Запускаем на терминале приведенный ниже скрипт (его можно запустить один раз и больше не трогать, тогда при каждом перезапуске терминала этот скрипт будет запускаться автоматически):

Код
-- скрипт обеспечивает последовательное переключение между двумя серверами при потере связи
-- и невозможности восстановить подключение к текущему серверу в течение timeout секунд

timeout = 240  -- задержка (в секундах) перед сменой сервера

function OnInit(script_path)
  stopped = false
  count = -1  -- отсчет времени до переключения на другой сервер сейчас не ведется
  local sys_root = os.getenv("SystemRoot")  -- определяем расположение каталога с работающей сейчас системой Windows
  if sys_root == nil then
    message("Не удалось найти каталог Windows", 2)
    stopped = true
  else
    Directory = sys_root .. "\\system32\\drivers\\etc\\"  -- каталог с файлом hosts
  end
end

function OnStop(stop_flag)
  stopped = true
end

function OnDisconnected()
  count = timeout  -- запускаем отсчет времени до переключения на другой сервер
end

function OnConnected()
  count = -1  -- останавливаем отсчет времени до переключения на другой сервер
end

-- Функция проверяет существование файла с заданным именем fname. Если файл существует, возвращает true, иначе - false
function exist(fname)
  local file = io.open(fname, "r")  -- пытаемся открыть файл для чтения
  if file == nil then  -- скорей всего файла с таким именем нет
    return false
  else  -- файл с таким именем существует
    file:close()
    return true
  end
end

function switch_server()
  local f_old = ""
  local f_new = ""
  if exist(Directory .. "hosts.s2") and (not exist(Directory .. "hosts.s1")) and exist(Directory .. "hosts") then
    f_old = "hosts.s1"  -- имя файла, используемого сейчас
    f_new = "hosts.s2"  -- имя файла, который будем использовать
  elseif exist(Directory .. "hosts.s1") and (not exist(Directory .. "hosts.s2")) and exist(Directory .. "hosts") then
    f_old = "hosts.s2"  -- имя файла, используемого сейчас
    f_new = "hosts.s1"  -- имя файла, который будем использовать
  end
  if f_old ~= "" then
    local res, err = os.rename(Directory .. "hosts", Directory .. f_old)  -- переименовываем файл hosts в hosts.s1 или hosts.s2
    if res == nil then
      message("Ошибка при переименовании файла " .. err, 2)
    else
      res, err = os.rename(Directory .. f_new, Directory .. "hosts")  -- переименовываем файл hosts.s1 или hosts.s2 в hosts
      if res == nil then
        message("Ошибка при переименовании файла " .. err, 2)
      else
        message("Переключаемся на другой сервер", 1)
      end
    end
  end
  count = timeout  -- запускаем отсчет по-новой
end

function main()
  while not stopped do
    if count >= 0 then
      count = count - 1
    end
    if count == 0 then
      switch_server()
    end
    sleep(1000)
  end
end 

 

5) Подключаемся к созданному нами новому соединению (у которого в поле "Сетевой адрес" указано virtual.srv).

P.S.: Если вы используете Windows 7, то терминал нужно запускать от имени администратора, иначе он не сможет переименовывать файлы в каталоге WINDOWS\system32\drivers\etc
DestroyTable подвешивает терминал.
 
Цитата
lergen пишет:
Если из этого блока убратьDestroyTable(t.t_id) и поместить в конец тела main() то скрипт останавливается заметно медленнее и таблица очищается но не закрывается.
http://forum.quik.ru/messages/forum10/message1000/topic155/#message1000
Цитата
Серж пишет:
Функции работы с таблицами, в т.ч. DestroyTable() не работают после нажатия кнопки "Остановить", поэтому их вызов надо размещать в колбеке OnStop().
Поиск элемента в таблице
 
15 миллисекунд - это интервал обновления времени в операционной системе?
Поиск элемента в таблице
 
Цитата
sam063rus пишет:
показания на основе os.clock - каждый раз, разные и сильно варьируются.
А почему так происходит?
И насколько сильно варьируются (в разы или все же разницу можно измерять процентами)?
Глупый вопрос! Механизм совершения сделок!, Механизм совершения сделок!
 
Разница уйдет Вам. То есть фактически вы купите часть акций дешевле, чем хотели.
Поиск элемента в таблице
 
Цитата
s_mike@rambler.ru пишет:
Если у первой таблицы нет метаметодов.
Таких слов я еще не знаю, так что наверняка нет  :D
Поиск элемента в таблице
 
А приведенный мною код позволит получить из таблицы test_table таблицу test_table1 ?

Код
test_table1 = {}
for k, v in pairs(test_table) do
  test_table1[v] = true
end
 
Нестандартный таймфрейм
 
Цитата
Блюз пишет:
был бы хороший выход для тех, у кого сильно тормозит тиковый график
А в чем это проявляется?
Новые тики видны позже, чем изменение цены закрытия последней свечки (к примеру, на минутном графике)?
Или просто терминал вообще подвисает?
StratVolat.dll и ещё...
 
Цитата
сергей пишет:
Какой чек-тмо в info.ini?
А что означает этот параметр check-tmo ?
Поиск элемента в таблице
 
Michael Bulychev, спасибо за примеры!
Ваши function check1(t, str) и function check3(t, str) замечательны тем, что их даже не обязательно оформлять в виде отдельных функций, а операторы из них можно непосредственно использовать в нужном месте основной программы.

Вот только не очень понял про таблицу test_table1={["qwe"]=true, ["1qweasd"]=true, ["zxc"]=true} Здесь значения строк используются в качестве индексов элементов таблицы?
Если так, то можно вместо набора столь мудреной конструкции вручную получить эту таблицу из test_table следующим образом?

Код
test_table1 = {}
for k, v in pairs(test_table) do
  test_table1[v] = true
end
 
Поиск элемента в таблице
 
Понятно. Спасибо, что избавили от необходимости тратить время на поиски в документации того, чего не существует :)
Поиск элемента в таблице
 
Тут стоит вопрос не об оптимизации скорости работы скрипта, а о минимизации и упрощении его текста.
Ну и по работе со строками как таковыми мне все более-менее понятно, а вот о средствах Lua для поиска среди элементов таблицы я пока мало что знаю (кроме тупого перебора их в цикле).
Поиск элемента в таблице
 
Добрый день!
В скрипте используется таблица Tab, каждый элемент которой является строкой.
Есть также отдельная переменная S, значение которой также является строкой.
Существует ли в Lua простой способ проверить наличие или отсутствие в таблице Tab элемента, значение которого равно значению переменной S ?
То есть способ сделать это без использования оператора цикла с проверкой каждого отдельного элемента таблицы.
StratVolat.dll и ещё...
 
Цитата
Egor Zaytsev пишет:
В случае если на клиентском месте QUIK не предполагается использовать экспорта данных в системы технического анализа, то из директории с программой можно удалить файлы вида winros.exe и iwr.dll.
Хороший совет, я поспешил воспользоваться им (а то надоел этот winros.exe, постоянно смущающий брандмауэр, а также остающийся в памяти до выключения компа после аварийных падений терминала). Но теперь программа при каждом соединении с сервером говорит, что там появилась новая версия, хотя по факту вся новизна лишь в наличии на сервере двух файлов, удаленных мною по вашему совету.
Есть ли способ избавиться от запуска winros.exe и при этом не получать каждый раз сообщения о якобы появившейся новой версии программы при подключении к серверу?
Только не советуйте отключать автоматическую проверку появления новой версии...
Не показывает смайлы
 
Цитата
Дмитрий пишет:
"c :\ program files\quik"
Но зато в цитируемом тексте добавляются лишние пробелы (там, где во время набора сообщения виден смайл)
Не показывает смайлы
 
Цитата
Дмитрий пишет:
Смайлы - это хорошо... А нельзя ли сделать так, чтобы их можно было отключить в цитируемом тексте?
А то вот какая фигня выходит (см. выше).
Нет, не выходит... Она только при просмотре сообщения перед отправкой выходила.
Не показывает смайлы
 
Цитата
Дмитрий пишет:
"c :\ program files\quik"
Смайлы - это хорошо... А нельзя ли сделать так, чтобы их можно было отключить в цитируемом тексте?
А то вот какая фигня выходит (см. выше).
Деинсталлировать Quik
 
то есть
RD  /S  "c:\program files\quik"
Не показывает смайлы
 
"c:\program files\quik"
Деинсталлировать Quik
 
А вообще если уж пользоваться командной строкой, то в данном случае лучше использовать команду вида:
RD /S "c  :\  program files\quik"
Тогда от этой папки точно ничего не останется.
Деинсталлировать Quik
 
Цитата
GTS пишет:
укажите другой путь вместо "c  :\  program files\quik"
Это понятно  :)
Только не проще ли удалить папку с программой без использования командной строки (из проводника или другого файлового менеджера)?
К тому же такой командой не удалятся находящиеся в этой папке подкаталоги (и файлы в них).
Не срабатывает пример graph.lua: Total 0 candles 0 lines
 
Цитата
Николай Бехтерев пишет:
Я решил, что идентификатор это наименование в свойствах графика, это единственный параметр, который подходил
Вы имеете в виду Настройки графика / Общие / Подпись? Тогда это неправильно.
"ZZZ" нужно писать в поле Идентификатор на закладке "Дополнительно"
В какой таблице найти информацию о short
 
А вот это лучше у брокера спросить. Позвоните ему, не стесняйтесь. И пусть объяснит, почему информация в квике и на сайте разная.
А Вы нам потом расскажите, что Вам ответил брокер - нам тоже интересно...
Не срабатывает пример graph.lua: Total 0 candles 0 lines
 
И что значит "переименовал"? Что именно делали?
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 След.
Наверх