Ясно, надеюсь, в будущем я смогу на таком уровне вклиниваться в программы. Помнится, года 2-3 назад я с помощью AutoIt много чего делал, в том числе пытался подхватить таблицы квика, но не получилось. Только названия окон перехватывал и все. Дальше не смог продвинуться. Но одно я пока что для себя решил. Работать средствами, которые дают разработчики квика задача очень специфическая. Но хоть что то есть, и на том спасибо. Большое и человеческое.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
06.02.2016 11:37:26
хуком это, я так понимаю, взламывать и парсить? определять хэндлы и тп?
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
05.02.2016 18:58:38
Да, спасибо, Николай, я в начале писал, что можно. Интересовался как без DDE. Никак)
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 20:56:32
Спасибо за ответ, Сергей! Сэкономили время поиска решения.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 20:40:33
Ясно. Выходит, к существующей таблице никак штатно не обратиться. К графикам можно, к хранилищам можно, к таблицам нельзя.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 19:21:30
или это и есть хранилища..
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 19:18:30
getItem работает с таблицами, список которых указан в документации. И это таблицы терминала. 21 таблица доступна, а ТТП не доступна.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 19:06:52
Буду признателен, если разработчики вступят в беседу и прояснят вопрос.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 13:19:02
Значит вам не нужно. Я ж не пожелание озвучиваю, а спрашиваю - как сделать.
Не проще, отвечаю на ваш вопрос. Не проще. Сегодня мне эти не нужны, завтра я бы их добавил, а рядом еще таблицу и туда какие-то основные. Условия выбора не формализовать. А скопом - вы представляете сколько инструментов? Наверняка да. Сортировать? Конечно можно. Все можно сделать как-то. Через что-то. А можно проще, ибо простота решения стоит не мало. Лично для меня, уже уставшего от постоянных костылей.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 11:21:22
да, я так и делаю. Можно логику забить. Они все называются логично, по правилам. Есть некторые тонкости, например пока опцион не стал "сего месяца" в нем нет промежуточных страйков. И лучше былоб взять ТТП, зайти в редактировать, выделить все, удалить, вставить из какой то середины обновившейся список, например и сохранить изменения. Еще и порядок если надо немного поменяв. Закрыл ТТП, мой скрипт подхватил и создал свою. Вот и вся замена. Все наглядно. А так то вопрос в том, чтобы была возможность редактировать существующую ТТП. Добавить в неё свои лау-стобцы, обращаться к строкам ТТП. Не надо было б городить огород с использованием второй ТТП. Но, судя по всему, это еще не огород. Это так, грядочка. А огород меня ждет в ответе разработчиков.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
04.02.2016 11:11:51
Да, именно. Как-то назвать/обозначить/прописать существующую ТТП и с ней работать как с таблицей ЛУА. Ну или хотя бы только читать из неё логигко GetCell. Смысл в том, что я хочу сделать информер. Таблицу с интрументами и добавить в ней свои столбцы. Я могу, конечно, прописать ручками все нужные мне инструменты и каждый месяц их менять. А это не акции, а опционы по разным страйкам, которых как бы выразиться ... много. Так вот, если б я, используя функционал квика набил бы эту таблицу инструментами и еще какими-нибудь параметрами, а потом включил бы скрипт, а он создал нужную мне таблицу, было б отлично. Если б я мог свою, луа-таблицу заполнить данными как в квике ТТП, вопрос бы не возник. Но мне слабо такое сделать. А каждый месяц лопатить массив в скрипте или через DDE туда-сюда данные кидать, приводить.. на долго такого информера не хватит)
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
03.02.2016 21:57:34
getParamEx тащит любые сведения, которые есть или могут быть в ТТП. А мне надо чтобы я создал ТТП, а потом её, созданную просматривал. И, например, мог сделать скриптом копию этой таблицы. Заглянул, считал данные из ТТП из нужной ячейки и нужного столбца, перекинул в свою таблицу. Так яснее?
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
03.02.2016 18:24:51
Ну вот и посмотрим сейчас что может в данном случае клуа. Даст квик этот функционал штатно или нет.
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
03.02.2016 16:40:14
перебрать то можно много чего. А я хочу задать входные значения, сортировку, используя функционал квика. Чтобы ручками не вбивать источники, поля и т.д. А это штатно только ТТП. Потом с этими данными работать своим скриптом. Если честно, не очень то верится в успех мероприятия.. Чувствую, пойдут советы слать куда-нить по дде, оттуда своим скриптом тащить данные. А лучше слать их черех DDE сразу в свой скрипт. Если б я сейчас таким функционалом владел, то вопросов бы про ТТП не задавал)
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 04.03.2015
03.02.2016 16:12:30
Добрый день! Сходу не нашел как обратиться к существующей ТТП? Например создаю таблицу, называю её, наполняю и оставляю в квике. А мой скрипт на луа в квике эту таблицу подхватывает и, используя данные в ней, производит операции, или, для простоты, дублирует эту таблицу. Реально такое сделать не ломая квик, не парся поток и т.д?
Как эффективнее разгрузить КВИК
Пользователь
Сообщений: Регистрация: 04.03.2015
27.01.2016 23:09:34
Николай, что то я засомневался, а разве можно получить данные с ТВС не открывая её? Грузит она комп, конечно, нещадно. Но вот например ТВС передается по DDE в скрипт. Скрипт работает с ней. Возможно ли тот же функционал для моего скрипта получить не открывая ТВС? Подскажите, пожалуйста, если есть такое решение.
Экспорт данных стакана и ленты во внешнее приложение
Пользователь
Сообщений: Регистрация: 04.03.2015
07.12.2015 18:00:01
Сергей, добрый день! А действительно, чуть подробнее можете изложить, что теоретически можно сделать с DLL и клуа? Через DDE я так понимаю можно на выбор слать таблицы - одну, вторую, пятую и т.д. потом их обрабатывать. А что можно через DLL сделать?
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 04.03.2015
20.11.2015 14:00:07
Эх, чувствую, тема интересная, но пока для меня не подъемная. Спасибо!
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 04.03.2015
19.11.2015 22:50:24
Звучит заманичво, но ничего не понял. Какой движок? Если есть желание подсказать, то разъясните, пожалуйста. Очень уж интересно что имеется ввиду. А так да, здорово звучит!
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 04.03.2015
17.11.2015 21:25:36
Всегда когда вижу подобные ответы, хочется спросить, а где учат так отвечать? Ведь всегда одна и та же схема. Сам бы так хотел научиться. Тебе говорят - как так? Что за хрень? Скажи, как надо? А в ответ - лада седан.
По-моему никто не против новых колбеков. Будь их хоть 100. Лишь бы вот тот самый сотый, последний, как-то обозначался и однозначно интерпретировался. Баклажан!
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 04.03.2015
17.11.2015 01:05:33
По мне так все понятно излагает Старатель. И так же понятно, что Сергей Горохов в данном случае на вопрос не отвечает. Для убедительности теперь и мне, наверное, нужно цитат добавить пачку? Сергей, бывает подклинивает всех. Я - не исключение, Вы - тоже. Ваши коллеги решили Вас одного оставить разбираться с этой темой? Это повинность такая? Чтобы потом пользователи не стали сравнивать слова Вас и Вашего коллеги? Проясните уже, наконец, про nil и 0. Хоть кто-нибудь. Можно инкогнито)
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
06.10.2015 20:01:27
Ясно. Спасибо.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
05.10.2015 16:41:34
ну да, не подойдет, к сожалению.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
05.10.2015 16:09:40
Как это, снять привязку? У меня в таблице меняются значения, потом вся эта таблица перезаписывается в метку через SetLabelParams.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
02.10.2015 19:28:03
с определением разобрался. Если метку удалить, то её номер сохраняется в системе, но значения полей в таблице - nil. По ним и можно выяснить наличие метки. Надеюсь, что в ближ. время ответите по основному вопросу ветки.
Получить уровень цен горизонтальной линии
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 18:27:56
попробуйте на 2 темы вниз посмотреть.
Получить уровень цен горизонтальной линии
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 18:06:06
Как раз решают вопрос разработчики. Можно, но не при любых условиях.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 16:49:44
Ок, спасибо. Поэкспериментирую.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 16:34:54
Спасибо, буду ждать ответа.
Есть еще вопрос. Как-нибудь можно перехватить скриптом удаление метки вручную?
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 16:09:44
Или давайте тестовый напишу срипт, если не знакомы с проблемой..
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 16:00:36
ПОЛНЫЙ.. У меня конечно в функциях все.
вот например одна из них:
Код
function _SetLab(par1)
local Q = par1
_ScreenTable = {}
_ScreenTable = _GetScreenArray(t_id)
_log(COMMENT_ALL..LOG_TABULATOR.."Текущая строка = ".._ScreenTable[Q][1]..";".._ScreenTable[Q][2]..";".._ScreenTable[Q][3]..";".._ScreenTable[Q][4]..";".._ScreenTable[Q][5])
if _ScreenTable[Q][OPERATION_STOLB+1] == TEXT_DIRECTION_1 and _ScreenTable[Q][STATUS_STOLB+1] == TEXT_COMMAND_2 then
_log(COMMENT_ALL..LOG_TABULATOR.." Set Текущая метка Green")
LabelLine[Q]["IMAGE_PATH"] = pathGREEN
end
if _ScreenTable[Q][OPERATION_STOLB+1] == TEXT_DIRECTION_2 and _ScreenTable[Q][STATUS_STOLB+1] == TEXT_COMMAND_2 then
LabelLine[Q]["IMAGE_PATH"] = pathRED
_log(COMMENT_ALL..LOG_TABULATOR.."Set Текущая метка RED")
end
LabelText[Q]["TRANSPARENCY"] = 0
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение метки № "..tostring(Q).."("..tostring(LABELNUMLINE[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMLINE[Q],LabelLine[Q])))
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение текста метки № "..tostring(Q).."("..tostring(LABELNUMTEXT[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMTEXT[Q],LabelText[Q])))
end
_GetScreenArray(t_id) создает массив из таблицы если метка зеленая, то в массиве меток
Код
LabelLine[Q]["IMAGE_PATH"] = pathGREEN
устанавливается новое значение. Остальное остается как есть. Далее SetLabelParams срабатывает и я на графике вижу, что эта метка изменила вид. Но двигать её я больше не могу.
Надеюсь, стало яснее.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 15:39:16
версия 6,17,1,17
часть скрипта:
Код
_log(COMMENT_ALL..LOG_TABULATOR.."Set Изменение текста метки № "..tostring(Q).."("..tostring(LABELNUMTEXT[Q])..") прошло "..tostring(SetLabelParams(GRAPH_ID,LABELNUMTEXT[Q],LabelText[Q])))
При этом метка меняется. Например цвет, прозрачность, или файл метки - все отрабатывает. Зацикливания нет, скрипт дальше работает. На эране несколько меток. И если они были расставлены черз AddLabel, их можно двигать. А если над одной из меток поработал SetLabelParams - все. двигать не могу руками.
Весь скрипт не могу выложить. Если требуются уточнения, говорите, выложу части.
SetLabelParams, особенности использования
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 15:25:00
Не добился ответа с , может так смогу обратить внимание разработчиков?
После использования SetLabelParams метку не возможно сдвинуть с мета вручную. В докуметации об этом ни слова. Поясните, каким образом можно обойти этот баг? Или,если это не баг, то как правильно задавать новые параметры метки, чтобы ручная перестановка на графике сохранилась?
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 13:49:01
С изменениями разобрался. Осталось самое главное. Почему после применения SetLabelParams метку не возможно передвинуть вручную? Это баг или я не правильно использую? Разарлботчики, ответьте, пожалуйста.
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 10:06:06
У меня bmp. Попробую поиграть прозрачностью. Но мне в будущем надо будет менять метку на пунктирную, например. И прозрачность не поможет.
А как вы используете SetLabelParams? Ведь по моему опыту получается, что эта функция не работает. Метка не изменяется, более того становится не перетаскиваемой руками. Что-то не так делаю? Как вы меняете метку по ходу жизни скрипта?
Я думал, что если есть метка и я прописываю SetLabelParams, то после этой функции, если результат true, метка на графике преобразуется с учетом внесенных изменений. Может, разработчики ответят для чего SetLabelParams и как её использовать?
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
01.10.2015 00:12:47
Вопрос появился. Как менять параметры метки? Через SetLabelParams вижу только то, что метка перестает передвигаться вручную. Я менял файл отображение метки. Отображение не изменилось)). Если удалять и ставить новую, то понятно все работает. Зачем тогда SetLabelParams? (True выдает по результату замены)
Хотелось бы, конечно, поменять параметр метки и увидеть на графике результат этих изменений без сокращения дальнейшего функционала. Это вообще возможно?
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 21:38:01
Да. Вторую по тем-же координатам. Только текстовую. И таскать её за первой. Пока все гладко работает. Понятно что коряво, но приемлемо.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 20:52:15
А где вы увидели код? Это 0 и есть)
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 20:44:23
Раз пошла такая пьянка,, то вот так):
Код
curstring = curstring..tostring(par2-96)
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 20:38:58
точно)
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 20:23:27
Мне нужны были только цифры, а нампад, например, преобразовывался в другие символы. Пришлось править.
Код
if par2 > 95 and par2 <106 then --цифры с нампада
if par2 == 96 then curstring = curstring.."0" end
if par2 == 97 then curstring = curstring.."1" end
if par2 == 98 then curstring = curstring.."2" end
if par2 == 99 then curstring = curstring.."3" end
if par2 == 100 then curstring = curstring.."4" end
if par2 == 101 then curstring = curstring.."5" end
if par2 == 102 then curstring = curstring.."6" end
if par2 == 103 then curstring = curstring.."7" end
if par2 == 104 then curstring = curstring.."8" end
if par2 == 105 then curstring = curstring.."9" end
...
end
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 20:02:00
Если надо рядом с линией и текст написать, то способ тоже есть.
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 18:43:11
Все сделал. Отследил цифры с нампада и просто цифры, курсор, энтер, бэкспэйс. Все, как вы и посоветовали. Дмитрий, большое спасибо!
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
20.09.2015 10:50:41
Понял! А служебные клавиши - энтер, курсор, дел, бэкспэйс, все это понимает квик?
Окно с кнопками Да Нет
Пользователь
Сообщений: Регистрация: 04.03.2015
19.09.2015 00:51:01
Дмитрий, можете намекнуть на способ ввода в ячейку с клавиатуры? Готовый пример кода как-то стесняюсь спросить.. Не пойму принцип построения. Например пришел дабл клик. Выделить обозначить ячейку можно. Дальше что, зацикливать внутри события и ловить клавиши, а выходить из цикла при нажатии энтера? Но это какая - то ерунда. Циклить не желательно внутри колбэка. Что то я не понимаю. Подскажите, пожалуйста, или натолкните на верное решение, буду признателен.
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
17.09.2015 23:35:12
paint в помощь, bmp или gif и красота.
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
17.09.2015 17:09:37
придется кликать по таблице. Сдвинулась - деактивирован уровень. Кликнул на ячейку - отлипло. Таймауты может и внесу.
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
17.09.2015 16:39:11
Хотяяя))) может и есть. Я понял что готового решения нет. Лопатить длл-ки мне не по зубам. Чужую, из непроверенного источника так сходу побоюсь ставить.
Рисовать линию на графике
Пользователь
Сообщений: Регистрация: 04.03.2015
17.09.2015 16:24:30
Не знаю что и ответить. Получается, не готов. Да и подменить метку во время перетаскивания не получается. Так что необходимости в обработке клика отпускания нет.