Сергей написал: жаль конечно... хотя опять же, если такой анализ сделают, то программа может стать платной... ибо платформы где всё это реализовано - платные и не дешевые.... опять же конкуренция. атас, тигр, волфикс, там это достойно реализовано. видимо поэтому не хотят внедрять за спасибо. тогда можно было бы сделать модуль платным
QUIK условно бесплатный. Вообще это клиентская часть общего продукта. И если к брокеру, особенно крупному будут постоянно пользователи говорить, что может стоит сменить сменить программное обеспечение. Т.к. у тех это, то и другое удобней и лучше реализовано. То вполне при определенном количестве заявок, он может пойти на это. Так-что QUIK бесплатно дается для использования, впрочем как и некоторые другие терминалы. А за все это оплачивается неплохая стоимость брокерами.
Данный инструмент запрещен для операции шорт
Пользователь
Сообщений: Регистрация: 22.01.2021
24.02.2021 09:39:38
А где код который выставляет заявки??? Судя по тому что это написано в LUA заявки ставятся не в ручном режиме. Если в ручном, то стоит правильно выбирать разделы куда пишите. И как вам сказали нужно смотреть на разрешения/запреты по данным инструментам. И само собой возможны запаздывания информации от сервера..
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
Пользователь
Сообщений: Регистрация: 22.01.2021
19.02.2021 22:10:28
Andrey Bezrukov чтоб вам слишком не мудрить. Сами условия выставления стоп заявки при указанных SL/TP не нужно давать. Пусть она выставляется с нулевыми значениями примерно так
пользователь если захочет, сам отредактирует заявку потом. Так кстати и MT срабатывают SL/TP, ни каких отступов и защитных спредов.
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
Пользователь
Сообщений: Регистрация: 22.01.2021
18.02.2021 12:57:18
Здравствуйте Andrey Bezrukov. Примерно так и получается. Но тут малость другое. Хотя сейчас пока писал, подумал. Что наверно так самое оптимальное на данном этапе по реализации для вас. Ни чего лишнего как таковое дорабатывать не нужно. Просто при срабатывании торговой заявки, если в них указаны цены SL/TP, то выставлять с максимально доступным периодом жизни лимитную заявку. Удобно в основном тем кто торгует руками конечно. Кто использует роботов он и сейчас данный функционал вполне может иметь.
написал: А кто просил форму ввода пароля с текущим языком клавиатуры, покажите эту просьбу, это же в каждом виндовс есть. Кому счастье привалило и его желание исполнилось, где эта толпа пользователей?
Ну например мне привалило. И всем у кого квик на виртуальной машине под mac os или linux. Это сильно беспокоит?
Ну не знаю, под линем ни каким боком не задевало. Нормально wine реагирует на системную смену расладки.
Отладка QUIK 8.12
Пользователь
Сообщений: Регистрация: 22.01.2021
17.02.2021 00:35:23
Цитата
Nikolay написал: Проверил подключение библиотек dll на версиях 11, 12 в режиме lua 5.4. Случайно подключил библиотеку для lua 5.3. Квик молча упал. Воспроизводится стабильно.
Вроде как моя ошибка, но хотелось бы наверно, чтобы это не приводило к аварийному падению.
Это называется все свое ношу с собой. Пишите с lib и компилируйте чтоб поменьше зависеть от внешних библиотек. Проще будет.
Индекс формирующегося бара.
Пользователь
Сообщений: Регистрация: 22.01.2021
17.02.2021 00:29:42
Ну и если вам нужно пропустить старт до последнего бара, то так
bar=1 function OnCalculate(index) if index == 1 then bar = Size() end if index < bar then return nil end -- Наш код return v[index ]end
Индекс формирующегося бара.
Пользователь
Сообщений: Регистрация: 22.01.2021
17.02.2021 00:11:12
Код
bar=1;
function OnCalculate(index)
if bar < index then
--[[ Выполним наш код в начале каждого нового бара
Текущий бар всегда в индикаторе равен index
значит просто нужно index-1 чтоб получить предыдущий,
или как видно по условию это будет переменная bar
Т.к. работаем по сформированной истории то и пересчитывать
нужно только раз при наступлении нового бара ]]
bar = index
end
return v[index]end
И нечего огород городить. Он и так уже нормально сформирован.
Подключение с нескольких терминалов к одному счету
Пользователь
Сообщений: Регистрация: 22.01.2021
16.02.2021 09:35:36
Не знаю чье это ограничение QUIK, или брокера. Но сейчас у меня не дает такой возможности. Хотя это нужная вещь. Можно один запустить с работающими скриптами на своем VDS/VPS или вообще выделенном сервере чтоб он работал постоянно. А в другом, допустим дома иногда открывать и просто проконтролировать, или как например мне проверить новый написанный скрипт/индикатор. А сейчас приходиться запускать один на сервере. смотреть его состояние, то-же заходя на сервер. А что-то тестировать вообще на другом счете.
P.S. В конкретном случае вошел с мобильного в сбер, и открыл QUIK на домашнем. Получил такой отворот поворот.
параметр "ACCOUNT" в sendTransaction, особенности его применения на QUIK с субсчетами.
Прошу прощения, в прошлый раз дал не совсем полный ответ. В том, и только в том, случае, если Вам (как UID) выданы права на 1 счет срочного рынка (именно так и есть на нашем учебном сервере), то он будет автоматически подставляться при попытке выставить заявку по срочному рынку, если указать счет фондового рынка. В ином случае, Вы получите сообщение вида "Указанный счет депо не найден: "blablabla".
А вот это уже не правильно., как было сказано выше. Указан не правильный счет, заявка не должна выставляться. Да-же при том если разрешение выдано только на один счет для фондового. Ситуации бывают разные. И не важно, нужно проверять условия посланной команды и если не соответствуют, выдавать причину ошибки. Без подставки/изменения счета. На крайний случай можно в описании ошибки написать, что у вас разрешение для торговли на этом рынке выдано на счет БЛАБЛАБЛА. Ну это было бы логичней.
запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 22.01.2021
11.02.2021 23:58:19
В DLL можно прописать асинхронную работу нескольких процессов одновременно. Это как вариант. В LUA если подключать модуль в функции то при выходе из нее модуль отключается. Как кстати и в любой программе на любом языке. Можно попробовать воспользоваться этим, но стоит учесть что запустить несколько одновременно не получиться. То-есть получили информацию из нужного скрипта и вышли из него. Чтоб не подвесить работу основного процесса.
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
Пользователь
Сообщений: Регистрация: 22.01.2021
11.02.2021 09:30:14
А суть то довольно простая. Сейчас можно выставить заявку и при ее срабатывании. То-есть совершения сделки. Выставить встречную чтоб купить/продать . Просят чтоб можно было сразу при выставлении заявки указать сразу и цену выставления встречной в случае если она сработает. При этом количество лотов будет ровняться. Но тут есть один подводный камень. Встречная торговая заявка в случае если не сработает до конца дня, то удалиться. Значит как вариант выставлять лимитную. Но это все как таковое должно работать на стороне сервера. Функционал есть и сейчас в QUIK, его просто нужно адаптировать под данный вопрос.
C#/C++, Сделать возможным напрямую писать на этих языках
Сделайте один раз свою обёртку, разбирающую все это - и пользуйтесь на здоровье. Очевидно же, что это ваше пожелание реализовано не будет до 2050 года, смысл тогда желать?
Сделать можно конечно все. И нормальную обертку которая будет не только работать со всей доступной информацией из QUIK. И нормально взаимодействовать. Но суть не в этом. Ладно. Предложение озвучено, смысл его понятен думаю. А там уж пускай решают, принимать его к реализации, или нет.
C#/C++, Сделать возможным напрямую писать на этих языках
В чем костыль? И какие такие "новые возможности обмена" предоставит вам другой язык? вы о чем? У "другого языка" будет ровно такое же весьма ограниченное API. И что для вас это изменит? Ну вот в самом деле?
Lua-интерфейс позволяет делать свои какие угодно DLL.А trans2quik и вывод информации через DDE позволяет делать свои exe. Что ж еще требуется-то??
Это то понятно что можно перенаправить функции в C++. Но все равно остается костыль в виде разбора Lua массивов и т.д.. Намного удобней писать например и проще.
Код
#define TEST_EXPORT extern "C" __declspec(dllexport)
TEST_EXPORT void OnInit(void)
{
/* код */
}
TEST_EXPORT void OnMain(void)
{
/* код */
}
TEST_EXPORT void OnStop(void)
{
/* код */
}
TEST_EXPORT void OnClose(void)
{
/* код */
}
И писать команды напрямую, не используя костыли вроде отправки через lua5.X. Оно конечно понятно, что ни кому возиться не хочется.
C#/C++, Сделать возможным напрямую писать на этих языках
Пользователь
Сообщений: Регистрация: 22.01.2021
06.02.2021 21:31:38
Наверняка уже не раз звучало подобное пожелание. Так же как и с Lua, сделать возможным написания своих программ для QUIK на этих языках. Возможные варианты подключения exe, или dll своих программ. Если допустим при использовании dll то чтоб QUIK вызывал функции OnInit, OnStart, OnDeinit и т.д., и т.п. в зависимости от того скрипт написан, или индикатор.
Конечно данное обновление потребует время. Но даст возможность отказаться от кастрированного Lua. И избавит от танцев с подключением к нему DLL. Конечно сейчас можно подключаться через костыль в виде lua5.X.lib/dll. Но все-же это костыль, который ограничивает некоторые возможности обмена данными.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
Пользователь
Сообщений: Регистрация: 22.01.2021
01.02.2021 23:08:41
Если еще интересна данный вопрос. Сегодня столкнулся с подобной проблемой. в коде
Код
package.cpath = getWorkingFolder().."\\Libraries\\Test.dll"
require("Test")
------------------------------------------------------------------
Run = true
function main()
message(get_test.test_info())
while (Run) do
sleep(100)
end
end
------------------------------------------------------------------
function OnStop()
Run = false
return 5000;
end
function OnClose()
Run = false
end
Поймал проблему с выгрузкой DLL после завершения работы скрипта.
Код
package.cpath = getWorkingFolder().."\\Libraries\\Test.dll"
function OnInit()
require("Test")
end
------------------------------------------------------------------
Run = true
function main()
message(get_test.test_info())
while (Run) do
sleep(100)
end
end
------------------------------------------------------------------
function OnStop()
Run = false
return 5000;
end
function OnClose()
Run = false
end
проблема ушла в небытие. DLL сразу выгружается при завершении работы скрипта.
Добавление объектов на график, Скриптами Lua
Пользователь
Сообщений: Регистрация: 22.01.2021
29.01.2021 18:56:12
Цитата
Evgeniy Karnaukhov написал: Правильно понимаем, что под объектами Вы подразумеваете Дуги Фибоначчи, скоростные линии и т.д.? Если так, то, как и в случае с линиями, такого функционала нет, и мы можем также завести пожелание на добавление такой возможности. Если имелось в виду что-то другое - просьба уточнить.
Да все верно. Именно возможность добавления на график данных объектов скриптово, а так-же управление ими. И само собой возможность иметь с ними обратную связь. Для получения данных.
P.S. Это нужно как пользователям, так и самой программе. Сейчас довольно большая конкуренция. поэтому развитие ни кому не помешает.
Добавление объектов на график, Скриптами Lua
Пользователь
Сообщений: Регистрация: 22.01.2021
28.01.2021 13:01:05
Цитата
Evgeniy Karnaukhov написал: , здравствуйте. Именно рисовать фигуры по типу линий тренда в терминале с помощью Lua к сожалению возможности нет. Есть возможность добавить рисунок с любым изображением с помощью AddLabel: NUMBER AddLabel(STRING chart_tag, TABLE label_params).
Если Вам это не подойдет, то мы можем завести пожелание на добавление возможности именно рисовать такие фигуры, как линии тренда, треугольники и т.д.
Заметьте, я сказал не просто о рисовании, или добавке каких-то линий. А именно об объектах. Тут иногда ссылаются на MQL так давайте посмотрим у них -> . При том что динамически можно изменять свойства объектов, и получать с них информацию. Вот о чем-то вроде этого изначально и сказал.
Добавление объектов на график, Скриптами Lua
Пользователь
Сообщений: Регистрация: 22.01.2021
22.01.2021 10:06:19
Сейчас их конечно можно добавлять в ручном режиме, но даже так нет возможности их изменения скриптами. Дать возможность добавлять их
скриптом как на данный момент можно добавлять метки. И само собой вносить динамически изменение параметров. Это на порядок упростит написание кодов. И расширит возможности пользователей.
getDataSourceInfo, Не выдает некоторую информацию.
Пользователь
Сообщений: Регистрация: 22.01.2021
22.01.2021 09:47:40
Это было в Init(). В function OnCalculate(Index) if Index == 1 then local info = getDataSourceInfo(); message( "getDataSourceInfo()\n\ninterval:\t".. info.interval .. ".\nsec_code:\t".. info.sec_code ..".\nclass_code:\t".. info.class_code ..".\nparam:\t".. info.param .."." ) end return 0 end
Вроде идет. Но честно говоря не логично малость. Эта информация уже известна при подключении индикатора, и ждать загрузку данных совсем ни к чему.
getDataSourceInfo, Не выдает некоторую информацию.
Пользователь
Сообщений: Регистрация: 22.01.2021
22.01.2021 09:26:06
local info = getDataSourceInfo(); message( "getDataSourceInfo()\n\ninterval:\t".. info.interval .. ".\nsec_code:\t".. info.sec_code ..".\nclass_code:\t".. info.class_code ..".\nparam:\t".. info.param .."." )