Здравствуйте. Подскажите, почему лучше основной код индикатора выносить в папку Include?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
25.04.2017 09:56:18
Цитата
Русский написал: Здравствуйте. Подскажите, почему лучше основной код индикатора выносить в папку Include?
Добрый день.
Мы таких рекомендаций не давали.
Пользователь
Сообщений: Регистрация: 28.11.2016
25.04.2017 10:29:01
Цитата
Egor Zaytsev написал: Мы таких рекомендаций не давали.
Егор, как же так? Именно Вы мне на почту отвечали 08.11.16.
Цитата
Подскажите, нужно ли выносить код индикатора в папку Include? В смысле, зависит от этого скорость работы терминала и нагрузка на него. ------------------------------------------------ Egor Zaytsev: Да нужно, на скорость не зависит.
Просто я тогда не уточнил, почему нужно. Вот сейчас решил поинтересоваться.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
25.04.2017 18:18:41
Скорее всего ответ был дан в рамках какого-то готового индикатора, который так устроен. но в целом это прекрасно: одновременно общать на форуме и в почте ожидая, что собеседники легко сохраняют контекст таких облачных распределенных бесед
Пользователь
Сообщений: Регистрация: 28.11.2016
25.04.2017 20:37:53
Цитата
swerg написал: Скорее всего ответ был дан в рамках какого-то готового индикатора, который так устроен. но в целом это прекрасно: одновременно общать на форуме и в почте ожидая, что собеседники легко сохраняют контекст таких облачных распределенных бесед
1. Речь не шла о каком-то конкретном индикаторе, поэтому не имеет значения контекст, способ связи и время. 2. Даже не знаю, как бы я смог без Вашего мнения по данному вопросу. Спасибо, что не пропустили моё сообщение.
Пользователь
Сообщений: Регистрация: 23.01.2015
26.04.2017 15:59:53
Русский, Никаких "нужно". Можно - да, но никто не заставляет. На Ваш вкус. Какой-либо практической выгоды, кроме удобства разделения просто функций, от самих индикаторов, в этом месте нет. Других "скрытых" смыслов, рекомендуем даже не начинать искать, ибо их просто нет.
Пользователь
Сообщений: Регистрация: 28.11.2016
26.04.2017 16:33:13
Цитата
Sergey Gorokhov написал: Какой-либо практической выгоды, кроме удобства разделения просто функций, от самих индикаторов, в этом месте нет.
Благодарю. Всё понятно. А то я колупаюсь с этим разделением. Где-то ещё попадалось, что при запуске терминал сканирует только папку LuaIndicators, поэтому сложные формулы лучше выносить в Include. Вот я и поинтересовался.
Пользователь
Сообщений: Регистрация: 23.03.2015
16.05.2017 18:26:50
Подскажите пожалуйста, я вывожу значение RSI в созданною таблицу, значение выводится и все бы хорошо, но значение выводится с 9 знаками после запятой, не очень удобно для восприятия, подскажите, как можно сократить до 1 знака после запятой ?
Пользователь
Сообщений: Регистрация: 31.01.2015
17.05.2017 07:28:58
Цитата
Optimus1 Optimus1 написал: Подскажите пожалуйста, я вывожу значение RSI в созданною таблицу, значение выводится и все бы хорошо, но значение выводится с 9 знаками после запятой, не очень удобно для восприятия, подскажите, как можно сократить до 1 знака после запятой ?
Код
local rsiFormatted = string.format("RSI=%.1f", rsiValue)
Пользователь
Сообщений: Регистрация: 23.03.2015
17.05.2017 18:03:04
А если я через название тега заношу данные в таблицу ?
Пользователь
Сообщений: Регистрация: 17.05.2017
03.07.2017 07:15:34
Добрый день! Подскажите как в Lua написать код для вывода уже совершённых сделок по определённому инструменту, например Сбербанк? Спасибо!
QUIK clients support
Сообщений: Регистрация: 27.01.2015
03.07.2017 08:13:25
Цитата
Никита Лапков написал: Добрый день! Подскажите как в Lua написать код для вывода уже совершённых сделок по определённому инструменту, например Сбербанк? Спасибо!
Добрый день,
Документация и примеры можно скачать по ссылке: Для отправки транзакций нужно использовать функцию sendTransaction.
Добрый день! Почему в стакан не выставляются заявки по продаже ОФЗ? Не вижу ошибку в коде. ACCOUNT=D01+; CLIENT_CODE=XXXX; TYPE=L; TRANS_ID=1; CLASSCODE=TQOB; SECCODE=SU26204RMFS; ACTION=NEW_ORDER; OPERATION=S; PRICE=99.95; QUANTITY=1;
QUIK clients support
Сообщений: Регистрация: 27.01.2015
04.07.2017 07:08:32
Цитата
Яна написал: Добрый день! Почему в стакан не выставляются заявки по продаже ОФЗ? Не вижу ошибку в коде. ACCOUNT=D01+; CLIENT_CODE=XXXX; TYPE=L; TRANS_ID=1; CLASSCODE=TQOB; SECCODE=SU26204RMFS; ACTION=NEW_ORDER; OPERATION=S; PRICE=99.95; QUANTITY=1;
Добрый день.
- откройте таблицу сообщений Создать окно - Таблица сообщений и посмотрите, возможно есть ошибки при выставлении транзакции. если ошибок нет, то - зайдите в настройки стакана и установите галочку "Выделять свои заявки" - также заявка может не отображаться, если стакан переполнен.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
04.07.2017 07:08:52
Цитата
Яна написал: Добрый день! Почему в стакан не выставляются заявки по продаже ОФЗ? Не вижу ошибку в коде. ACCOUNT=D01+; CLIENT_CODE=XXXX; TYPE=L; TRANS_ID=1; CLASSCODE=TQOB; SECCODE=SU26204RMFS; ACTION=NEW_ORDER; OPERATION=S; PRICE=99.95; QUANTITY=1;
дополнительно проверьте отображение заявки в таблице заявок.
QUIK clients support
Сообщений: Регистрация: 23.01.2015
25.12.2017 16:18:02
Борис Гудылин, Добрый день, Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Пользователь
Сообщений: Регистрация: 31.01.2018
31.01.2018 14:34:01
Добрый день. Вот сделал свой первый индикатор на Lua. Проблема в том, что при добавлении индикатора на график, Quik надолго зависает (может, на 2-3 мин.). Это вполне ожидаемо, т.к. много вычислений. Можно ограничить расчет индикатора только последними 200 барами? Что для этого нужно?
Пользователь
Сообщений: Регистрация: 30.01.2015
31.01.2018 16:51:07
function oncalculate(indx)
if indx < Size() -200 then return end
do_calc(indx)
end
Пасхалочка для Алексея Иванникова:
Пользователь
Сообщений: Регистрация: 31.01.2018
01.02.2018 09:31:55
Спасибо, про Size() не знал. Сделал так:
Код
Settings=
{
.
.
depth = 200,
.
.
}
function OnCalculate(index)
.
.
if (index < Settings.period) or (index < Size()-Settings.depth) then
return nil
else
Пользователь
Сообщений: Регистрация: 31.01.2018
12.02.2018 09:59:42
День добрый
Заявка не выставляется при нехватке денег. А есть еще какие-нибудь причины, почему она может не пройти?
Пользователь
Сообщений: Регистрация: 23.01.2015
12.02.2018 10:03:41
Арсений, Здравствуйте, Есть целая куча причин. Существуют разные ограничения со стороны биржи. Например нельзя указывать слишком маленькую или слишком большую цену. Или слишком часто подавать транзакции или еще много чего. Это описано биржевых правилах торгов. Еще Ваш брокер может настроить какие-нибудь ограничения. Это следует уточнить у брокера. В связи с чем, всегда лучше всего сообщить текст ошибки которая возникает при неудачном выставлении.
Пользователь
Сообщений: Регистрация: 31.01.2018
23.02.2018 14:47:16
Спасибо, а тогда такой вопрос
Если у меня среди переменных среды нет переменных LUA_PATH, LUA_CPATH, то в квике package.path, package.cpath имеют одни значения, привязанные к папке Квика. Если эти переменные среды явно задать руками, то выглядит так, что они полностью переписывают квиковские на свои.
У меня вопрос. Т.е. квик не дописывает в package.path, package.cpath свои пути при запуске? Это вообще важно для работы квика, если в package.path, package.cpath нет его путей? Словом, что мне нужно делать, чтобы все правильно работало и не возникло потом каких-то проблем с работой квика?
Пользователь
Сообщений: Регистрация: 31.01.2018
26.02.2018 11:44:37
Цитата
Арсений написал: Если у меня среди переменных среды нет переменных LUA_PATH, LUA_CPATH, то в квике package.path, package.cpath имеют одни значения, привязанные к папке Квика. Если эти переменные среды явно задать руками, то выглядит так, что они полностью переписывают квиковские на свои.
У меня вопрос. Т.е. квик не дописывает в package.path, package.cpath свои пути при запуске? Это вообще важно для работы квика, если в package.path, package.cpath нет его путей? Словом, что мне нужно делать, чтобы все правильно работало и не возникло потом каких-то проблем с работой квика?
Up
Пользователь
Сообщений: Регистрация: 23.01.2015
26.02.2018 14:51:46
Цитата
Арсений написал: они полностью переписывают квиковские на свои.
а что мешает дописать, а не переписать значения? например так:
Код
package.path=package.path..getScriptPath()
Пользователь
Сообщений: Регистрация: 31.01.2018
26.02.2018 15:22:46
Цитата
Sergey Gorokhov написал: а что мешает дописать, а не переписать значения?
Удобство. Т.е. в переменные типа LUA_PATH у меня вписаны, по сути, пути к дополнительным модулям из интернета, они не в квиковской папке лежат. За счет этого у меня нет проблемы с require. Единственное, что приходится прописывать в скриптах через package.path - пути к моим собственным файлам с функциями
Но вопрос в том, что ... Эти package.path\cpath сам Квик использует для чего-нибудь в своей работе? Или они в таком дефолтном виде существуют только для создателей скриптов и их удобства? Если второе, то не о чем беспокоиться. Если первое, то их нельзя "терять" и надо вписывать тоже
Еще кстати одно неудобство возникает при
Код
package.path=package.path.."smth"
Пути неконтролируемо разрастаются от регулярных добавлений одних и тех же кусков при многократном запуске скриптов. Нужно дополнительно это чекать
Сам терминал QUIK использует папку LuaIndicators для Lua индикаторов. Остальные папки нигде не используются.
Пользователь
Сообщений: Регистрация: 23.01.2015
26.02.2018 15:31:02
Цитата
Арсений написал: при многократном запуске скриптов. Нужно дополнительно это чекать
Не нужно, т.к. переменные сбросятся в дефолтовое значение при следующем запуске скрипта
Пользователь
Сообщений: Регистрация: 31.01.2018
26.02.2018 15:52:52
Цитата
Sergey Gorokhov написал: Сам терминал QUIK использует папку LuaIndicators для Lua индикаторов. Остальные папки нигде не используются.
Спасибо!
Цитата
Sergey Gorokhov написал: переменные сбросятся в дефолтовое значение при следующем запуске скрипта
Действительно) В Скайте, наверно, не сбрасывалось, и я решил, что тут так же) Давно тестил
Пользователь
Сообщений: Регистрация: 25.02.2018
04.03.2018 22:26:23
Цитата
написал: function oncalculate(indx)
if indx < Size() -200 then return end
do_calc(indx)
end
Здравствуйте.А если я хочу сделать так чтобы можно было менять количество баров для расчета в самом терминале?Это можно вообще реализовать?Просто я до этого изучал только mql4 для mt4 и там можно было так прописать
Здравствуйте, К сожалению, Вы не уточнили речь про индикаторы или про обычные lua скрипты. Если речь про индикаторы, то в таблице Settings можно добавлять свои собственные параметры. Если речь про обычные скрипты, то есть несколько вариантов: 1) сделать для скрипта ini файл с настройками. 2) сделать через скрипт таблицу в терминале, и установить на таблицу колбек SetTableNotificationCallback в колбеке ловить все изменения которые происходят в таблице. таким образом можно реализовать отдельную таблицу в которой будут нужные настройки.
Здравствуйте, К сожалению, Вы не уточнили речь про индикаторы или про обычные lua скрипты. Если речь про индикаторы, то в таблице Settings можно добавлять свои собственные параметры. Если речь про обычные скрипты, то есть несколько вариантов: 1) сделать для скрипта ini файл с настройками. 2) сделать через скрипт таблицу в терминале, и установить на таблицу колбек SetTableNotificationCallback в колбеке ловить все изменения которые происходят в таблице. таким образом можно реализовать отдельную таблицу в которой будут нужные настройки.
Речь про индикаторы.Я правильно понимаю что можно написать так :
Settings = {
Name = "имя индикатора",
Size()=300; line = {.... } }
У меня в функции будет присваиваться переменной количество баров .Т.е. примерно следующее
function main () ........ number Li_32 = Size; for (number Li_40 = Li_32; ..............) ........................ end
Settings =
{
Name = "имя индикатора" ,
MY_LOVE_PARAMETER = 300,
line = { .. ..
}
}
function OnCalculate(indx)
if indx < Size () - Settings.MY_LOVE_PARAMETER then return end
do_calc(indx)
end
Пользователь
Сообщений: Регистрация: 25.02.2018
05.03.2018 13:48:07
Я правильно понимаю что в индикаторе можно объявить массив следующим образом
Type = TYPE_TRIANGLE_UP, т.е. у нас на графике будет показываться стрелка вверх.Можно ли в квике сделать чтобы вместо стрелки или линий отображался другой символ например крестик или галочка?
Пользователь
Сообщений: Регистрация: 23.01.2015
05.03.2018 13:51:09
Цитата
Aidar написал: Я правильно понимаю что в индикаторе можно объявить массив следующим образом
Можно.
Цитата
Aidar написал: Можно ли в квике сделать чтобы вместо стрелки или линий отображался другой символ например крестик или галочка?
такой возможности нет. но можно вместо графика рисовать метки.
Пользователь
Сообщений: Регистрация: 31.01.2018
05.03.2018 13:58:40
Здравствуйте, накопились вопросы, опишу все
1) Обнаружил случайно, что на демо по некоторым тикерам getParamEx дает инфу, хотя в ТТП их нет. Проверил сегодня на рабочей - так же. Вопрос скорее в целом, хочется понимать - почему такое возможно? И как влияет удаление инструмента из таблицы на дальнейшее получение инфы по нему?
2) На форуме встречается фраза "перезаказ данных". Это имеется ввиду "Система-Заказ данных-Перезаказать данные" или еще что-то скриптовое?
3) Сделки в ТОС по тикеру всегда поступают последовательно от первой в сессии и упорядоченно по времени их совершения или необязательно? При условии, что не было потерь при передаче данных.
4) Если в процессе передачи данных от брокера случился сбой интернета и часть сделок до моей ТОС не дошла - это как-то обнаружится терминалом в процессе работы или за этим надо следить самому?
5) Возникла реальная ситуация на рабочем квике. Где-то в 23:30 по Москве решил, что в ТОС мне нужно добавить еще пару колонок параметров и добавить с пару десятков инструментов. Сначала сделал это в одной таблице, но при выгрузке в эксел превысилось максимальное допустимое число строк в файле. Ок, разбил на несколько таблиц. В общем, пока это все делалось, аккурат время зашло за 23:50. Тем не менее, количество строк в таблицах не увелчивалось уже и я начал выгрузку данных в файлы. В итоге оказалось, что в примерно половине тикеров в одной из колонок не прогрузились данные полностью - часть полей оказались нулевыми. К слову, в последующие дни таких проблем не возникало. У меня вопрос - как бороться с такими ситуациями? Т.е. сделки, в смысле их числа = количество строк в ТОС оказалось корректным - именно столько сделок и было на момент окончания сессии, но по некоторым сделкам данные не загрузились полностью. Могло ли это быть связано с временем, когда я это делал? Мол если бы это было в разгар сессии, то данные догрузились бы. Или данные по сделке всегда подгружаются целиком и не могут приходить частями? И все же что делать в такой ситуации? Перезаказывать данные или заново делать CreateDataSource в скрипте?
6) Если я правильно понял(поправьте, если нет) данные о торгах, которые приходят в квик, можно разделить на две части: данные за текующую торговую сессию, которые используются соответствующими таблицами, и данные за гораздо больший период, которые используют графики. И последние, в отличие от первых, сохраняются локально на комп. Перезаказ данных из меню позволяет удалять полностью и те, и те.
7) Последовательный вызов CreateDataSource (с колбеком) с одними и теми же параметрами без промежуточных Close() приводит к увеличению числа объектов или некий объект создается один раз, а множатся только ссылки?
8) Нетиковый вызов CreateDataSource с колбеком как-нибудь повлияет на ТОС?
9) Я читал на форуме уже немало про асинхронность (хотя не все, вероятно), но все же, встретились противоречивые комментарии. Уточню еще раз. ТОС, ТТП и CreateDataSource живут в своих независимых потоках данных каждый? Или все-таки какие-то пересечения есть? Не очень понятен еще такой момент, как связаны getNumberOf("all_trades") и ds:Size() для тиковых данных.
Пользователь
Сообщений: Регистрация: 06.02.2017
05.03.2018 15:10:49
Попытался написать совсем простой скрипт IsRun = true; function main() while IsRun do message("ok",2); sleep(1000); end; end; function OnStop() IsRun = false; end; Добавляю скрипт в сервисе quik. Запускаю. Красный квадрат меняется на зеленый треугольник. Ошибок не выдает. Но ничего не происходит. qlua.dll есть. message() ставил в разные места скрипта. Подскажите, в чем может быть дело. Спасибо.
Пользователь
Сообщений: Регистрация: 25.02.2018
05.03.2018 15:17:35
В QLUA есть возможность Возвращать значение тикового объема бара?
Пользователь
Сообщений: Регистрация: 23.01.2015
05.03.2018 15:35:54
Aidar, Да такая возможность есть. например с тикового графика.
Sergey Gorokhov написал: Aidar , Да такая возможность есть. например с тикового графика.
не совсем понятно как прописать.А если я хочу применять индикатор на разных таймфреймах?
Если Вам нужно получать свежие тики, то они и так попадают в OnCalculate, т.к. он срабатывает при каждом изменении. Если нужно получать тики за прошлые периоды, то это можно получить только через GetItem
Если Вам нужно получать свежие тики, то они и так попадают в OnCalculate, т.к. он срабатывает при каждом изменении. Если нужно получать тики за прошлые периоды, то это можно получить только через GetItem
Мне надо тиковые объемы текущие и прошлые за количество баров которые я указал в вашей подсказке
Settings = { Name = "имя индикатора" , MY_LOVE_PARAMETER = 300, line = { .. .. } } function OnCalculate(indx) if indx < Size () - Settings.MY_LOVE_PARAMETER then return end do_calc(indx) end
Т.е. по идее у меня индикатор должен работать с 300 (или иным заданным количеством) барами.Не совсем понятно как прописать так чтобы он брал и текущие и прошлые значения тикового объема.
Может мы говорим про разные вещи? Что именно Вы понимаете под термином "тиковый" объем?
Если брать ФОРЕКС и мт4 то "Тиковый объем (англ. tick volume) – это количество тиков за некоторый период времени, соответствующее частоте изменений цены маркет-мейкером рынка и не связанное с объемом сделок." В QLUA я так понимаю можно использовать просто объем который был на каждом баре? Извиняюсь за глупые вопросы,я пока что учусь QLUA
Пользователь
Сообщений: Регистрация: 23.01.2015
05.03.2018 17:22:43
Цитата
Aidar написал: "Тиковый объем (англ. tick volume) – это количество тиков за некоторый период времени, соответствующее частоте изменений цены маркет-мейкером рынка и не связанное с объемом сделок."
Судя по определению, объем который Вы видите на графике, это не то что Вам нужно.
Цитата
Aidar написал: Извиняюсь за глупые вопросы,я пока что учусь QLUA
QLUA тут вообще не причем. Т.к. происходит непонимание на уровне того что Вам нужно, а не на уровне кода. Давайте вообще забудем про QLUA и посмотрим обычный терминал QUIK. В обычном терминале QUIK Вы где-нибудь видите нужное Вам значение?
Пользователь
Сообщений: Регистрация: 25.02.2018
05.03.2018 17:43:40
Цитата
Sergey Gorokhov написал: QLUA тут вообще не причем. Т.к. происходит непонимание на уровне того что Вам нужно, а не на уровне кода. Давайте вообще забудем про QLUA и посмотрим обычный терминал QUIK. В обычном терминале QUIK Вы где-нибудь видите нужное Вам значение?
Я так понимаю что в КВИКЕ это Поток обезличенных сделок.В обычном терминале нет доступа на сколько я знаю,если только не запросить у брокера чтобы он траслировал их в терминал
QUIK clients support
Сообщений: Регистрация: 27.01.2015
05.03.2018 19:25:02
Добрый день.
Цитата
1) Обнаружил случайно, что на демо по некоторым тикерам getParamEx дает инфу, хотя в ТТП их нет. Проверил сегодня на рабочей - так же. Вопрос скорее в целом, хочется понимать - почему такое возможно? И как влияет удаление инструмента из таблицы на дальнейшее получение инфы по нему?
Добрый день.
Скорее всего эти данные у Вас заказаны в пункте меню Система - Заказ данных - Поток котировок. Qlua работает не с таблицами, а с данными с сервера.
Цитата
2) На форуме встречается фраза "перезаказ данных". Это имеется ввиду "Система-Заказ данных-Перезаказать данные" или еще что-то скриптовое?
Да.
Цитата
3) Сделки в ТОС по тикеру всегда поступают последовательно от первой в сессии и упорядоченно по времени их совершения или необязательно? При условии, что не было потерь при передаче данных.
Да.
Цитата
4) Если в процессе передачи данных от брокера случился сбой интернета и часть сделок до моей ТОС не дошла - это как-то обнаружится терминалом в процессе работы или за этим надо следить самому?
После очередного подключения данные по обезличенным сделкам прокачается в полном объеме. Если в пункте меню Система - Заказ данных - Заказ обезличенных сделок стоит признак "Получать информацию по всем обезличеным сделкам с текущего момента" То соответственно при подключении вы получите данные только с этого момента.
Цитата
5) Возникла реальная ситуация на рабочем квике. Где-то в 23:30 по Москве решил, что в ТОС мне нужно добавить еще пару колонок параметров и добавить с пару десятков инструментов. Сначала сделал это в одной таблице, но при выгрузке в эксел превысилось максимальное допустимое число строк в файле. Ок, разбил на несколько таблиц. В общем, пока это все делалось, аккурат время зашло за 23:50. Тем не менее, количество строк в таблицах не увелчивалось уже и я начал выгрузку данных в файлы. В итоге оказалось, что в примерно половине тикеров в одной из колонок не прогрузились данные полностью - часть полей оказались нулевыми. К слову, в последующие дни таких проблем не возникало. У меня вопрос - как бороться с такими ситуациями? Т.е. сделки, в смысле их числа = количество строк в ТОС оказалось корректным - именно столько сделок и было на момент окончания сессии, но по некоторым сделкам данные не загрузились полностью. Могло ли это быть связано с временем, когда я это делал? Мол если бы это было в разгар сессии, то данные догрузились бы. Или данные по сделке всегда подгружаются целиком и не могут приходить частями? И все же что делать в такой ситуации? Перезаказывать данные или заново делать CreateDataSource в скрипте?
Здесь нужно рассматривать конкретный пример с данными выгрузки, как понимаем Вы это делали при помощи Qlua.
Цитата
6) Если я правильно понял(поправьте, если нет) данные о торгах, которые приходят в квик, можно разделить на две части: данные за текующую торговую сессию, которые используются соответствующими таблицами, и данные за гораздо больший период, которые используют графики. И последние, в отличие от первых, сохраняются локально на комп. Перезаказ данных из меню позволяет удалять полностью и те, и те.
Да. На графике данные транслируются с сервера брокера, однако в последних версиях QUIK можно дополнительно хранить историю локально на компьютере. Однако при перезаказе именно архивов графиков, эта накопленная информация удалится.
Цитата
7) Последовательный вызов CreateDataSource (с колбеком) с одними и теми же параметрами без промежуточных Close() приводит к увеличению числа объектов или некий объект создается один раз, а множатся только ссылки? 8) Нетиковый вызов CreateDataSource с колбеком как-нибудь повлияет на ТОС? 9) Я читал на форуме уже немало про асинхронность (хотя не все, вероятно), но все же, встретились противоречивые комментарии. Уточню еще раз. ТОС, ТТП и CreateDataSource живут в своих независимых потоках данных каждый? Или все-таки какие-то пересечения есть? Не очень понятен еще такой момент, как связаны getNumberOf("all_trades") и ds:Size() для тиковых данных.
На эти вопросы ответим позднее.
Пользователь
Сообщений: Регистрация: 31.01.2018
06.03.2018 00:36:03
Цитата
Egor Zaytsev написал: Скорее всего эти данные у Вас заказаны в пункте меню Система - Заказ данных - Поток котировок.
Да, так и есть. Ясно, спасибо)
Цитата
Egor Zaytsev написал: Здесь нужно рассматривать конкретный пример с данными выгрузки, как понимаем Вы это делали при помощи Qlua.
Нет, на тот момент я еще не умел сохранять историю через Qlua, поэтому делал все по "Вывод через DDE". Выше вы ответили, что ТОС должен прогружаться полностью по идее.. С того момента я не открывал те файлы, бо расстроила история. Но сейчас открыл на спокойную голову и понял, что там всё не совсем так, как я описал. Я тогда изучу внимательнее и отпишусь позже, если будет резон. Непрогруженным значением был открытый интерес. Но беглый взгляд показывает, что как будто в котировки, а я запрашивал только и исключительно фьючерсы(!), добавились какие-то акции, у которых ОИ конечно же равен нулю. Я акциями вообще не торгую и не торговал пока, и уж тем более заказывать их в ТОС - не делал ни разу. И такое впечатление, что это добавилось во все или почти все файлы, одно и тоже. И кроме того там есть какой-то странный мусор - сделки до открытия сессии: time=9:59:59.352; price=148.5 И их много таких на 9:59:59
Вообще, у меня было открыто довольно много таблиц ТОС - может 20-25. Т.е. изначально одна или две, но после того, как не получилось засейвить, решил сделать отдельную по каждому интересовавшему инструменту. И расстройство вызвало то, что в почти всех были эти нули в ОИ в некоторых местах. Полчаса усилий и спешки успеть до закрытия рынка, казалось, пошли насмарку. Так что я, наверно, даже не все файлы и сохранил в итоге. Но в целом все равно немного странная история.
Пользователь
Сообщений: Регистрация: 25.02.2018
12.03.2018 11:29:57
Цитата
Sergey Gorokhov написал: Settings = { Name = "имя индикатора" , MY_LOVE_PARAMETER = 300, line = { .. .. } } function OnCalculate(indx) if indx < Size () - Settings.MY_LOVE_PARAMETER then return end do_calc(indx) end
При запуске выводит ошибку attempt to compare nil with number
на эту строку if indx < Size()-Settings.MY_LOVE_PARAMETER then return end