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

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

Страницы: 1
КЛАСТЕРНЫЙ АНАЛИЗ, КЛАСТЕРНЫЙ АНАЛИЗ В QUIK
 
Цитата
Сергей написал:
жаль конечно... хотя опять же, если такой анализ сделают, то программа может стать платной... ибо платформы где всё это реализовано - платные и не дешевые.... опять же конкуренция. атас, тигр, волфикс, там это достойно реализовано. видимо поэтому не хотят внедрять за спасибо. тогда можно было бы сделать модуль платным
QUIK условно бесплатный. Вообще это клиентская часть общего продукта. И если к брокеру, особенно крупному будут постоянно пользователи говорить, что может стоит сменить сменить программное обеспечение. Т.к. у тех это, то и другое удобней и лучше реализовано. То вполне при определенном количестве заявок, он может пойти на это. Так-что QUIK бесплатно дается для использования, впрочем как и некоторые другие терминалы. А за все это оплачивается неплохая стоимость брокерами.
Данный инструмент запрещен для операции шорт
 
А где код который выставляет заявки??? Судя по тому что это написано в LUA заявки ставятся не в ручном режиме.
Если в ручном, то стоит правильно выбирать разделы куда пишите. И как вам сказали нужно смотреть на разрешения/запреты по данным инструментам. И само собой возможны запаздывания информации от сервера..
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
 
Andrey Bezrukov чтоб вам слишком не мудрить. Сами условия выставления стоп заявки при указанных SL/TP не нужно давать. Пусть она выставляется с нулевыми значениями примерно так


пользователь если захочет, сам отредактирует заявку потом. Так кстати и MT срабатывают SL/TP, ни каких отступов и защитных спредов.
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
 
Здравствуйте Andrey Bezrukov.
Примерно так и получается. Но тут малость другое. Хотя сейчас пока писал, подумал. Что наверно так самое оптимальное на данном этапе по реализации для вас. Ни чего лишнего как таковое дорабатывать не нужно. Просто при срабатывании торговой заявки, если в них указаны цены SL/TP, то выставлять с максимально доступным периодом жизни лимитную заявку.
Удобно в основном тем кто торгует руками конечно. Кто использует роботов он и сейчас данный функционал вполне может иметь.
Отладка QUIK 8.12
 
Цитата
Kolossi написал:
Цитата
Евгений написал:
А кто просил форму ввода пароля с текущим языком клавиатуры, покажите эту просьбу, это же в каждом виндовс есть. Кому счастье привалило и его желание исполнилось, где эта толпа пользователей?
Ну например мне привалило. И всем у кого квик на виртуальной машине под mac os или linux. Это сильно беспокоит?
Ну не знаю, под линем ни каким боком не задевало. Нормально wine реагирует на системную смену расладки.
Отладка QUIK 8.12
 
Цитата
Nikolay написал:
Проверил подключение библиотек dll на версиях 11, 12 в режиме lua 5.4.
Случайно подключил библиотеку для lua 5.3. Квик молча упал. Воспроизводится стабильно.

Вроде как моя ошибка, но хотелось бы наверно, чтобы это не приводило к аварийному падению.
Это называется все свое ношу с собой. Пишите с lib и компилируйте чтоб поменьше зависеть от внешних библиотек. Проще будет.
Индекс формирующегося бара.
 
Ну и если вам нужно пропустить старт до последнего бара, то так

bar=1
function OnCalculate(index)
    if index == 1 then bar = Size() end
    if index < bar then
         return nil
    end
    -- Наш код
     return v[index
]end
Индекс формирующегося бара.
 
Код
bar=1;
function OnCalculate(index)
     if bar < index then
          --[[ Выполним наш код в начале каждого нового бара
               Текущий бар всегда в индикаторе равен index
               значит просто нужно index-1 чтоб получить предыдущий,
               или как видно по условию это будет переменная bar
                Т.к. работаем по сформированной истории то и пересчитывать
               нужно только раз при наступлении нового бара ]]
          bar = index
     end
     return v[index]end
И нечего огород городить. Он и так уже нормально сформирован.
Подключение с нескольких терминалов к одному счету
 
Не знаю чье это ограничение QUIK, или брокера. Но сейчас у меня не дает такой возможности.

Хотя это нужная вещь. Можно один запустить с работающими скриптами на своем VDS/VPS или вообще выделенном сервере чтоб он работал постоянно. А в другом, допустим дома иногда открывать и просто проконтролировать, или как например мне проверить новый написанный скрипт/индикатор.
А сейчас приходиться запускать один на сервере. смотреть его состояние, то-же заходя на сервер. А что-то тестировать вообще на другом счете.

P.S. В конкретном случае вошел с мобильного в сбер, и открыл QUIK на домашнем. Получил такой отворот поворот.
параметр "ACCOUNT" в sendTransaction, особенности его применения на QUIK с субсчетами.
 
Цитата
Roman Azarov написал:
XXM, добрый день!

Прошу прощения, в прошлый раз дал не совсем полный ответ.
В том, и только в том, случае, если Вам (как UID) выданы права на   1   счет срочного рынка (именно так и есть на нашем учебном сервере), то он будет автоматически подставляться при попытке выставить заявку по срочному рынку, если указать счет фондового рынка. В ином случае, Вы получите сообщение вида "Указанный счет депо не найден: "blablabla".
А вот это уже не правильно., как было сказано выше. Указан не правильный счет, заявка не должна выставляться. Да-же при том если разрешение выдано только на один счет для фондового. Ситуации бывают разные. И не важно, нужно проверять условия посланной команды и если не соответствуют, выдавать причину ошибки. Без подставки/изменения счета. На крайний случай можно в описании ошибки написать, что у вас разрешение для торговли на этом рынке выдано на счет БЛАБЛАБЛА.
Ну это было бы логичней.
запуск из работающего скрипта другого скрипта или скриптов
 
В DLL можно прописать асинхронную работу нескольких процессов одновременно. Это как вариант.
В LUA если подключать модуль в функции то при выходе из нее модуль отключается. Как кстати и в любой программе на любом языке. Можно попробовать воспользоваться этим, но стоит учесть что запустить несколько одновременно не получиться. То-есть получили информацию из нужного скрипта и вышли из него. Чтоб не подвесить работу основного процесса.
стоп лимит и тейк профит, !!!!!!!!!!!!!!!!!!!
 
А суть то довольно простая. Сейчас можно выставить заявку и при ее срабатывании. То-есть совершения сделки. Выставить встречную чтоб купить/продать .
Просят чтоб можно было сразу при выставлении заявки указать сразу и цену выставления встречной в случае если она сработает. При этом количество лотов будет ровняться.
Но тут есть один подводный камень. Встречная торговая заявка в случае если не сработает до конца дня, то удалиться. Значит как вариант выставлять лимитную.
Но это все как таковое должно работать на стороне сервера. Функционал есть и сейчас в QUIK, его просто нужно адаптировать под данный вопрос.
C#/C++, Сделать возможным напрямую писать на этих языках
 
Цитата
swerg написал:
 
Сделайте один раз свою обёртку, разбирающую все это - и пользуйтесь на здоровье.
Очевидно же, что это ваше пожелание реализовано не будет до 2050 года, смысл тогда желать?
Сделать можно конечно все. И нормальную обертку которая будет не только работать со всей доступной информацией из QUIK. И нормально взаимодействовать. Но суть не в этом.
Ладно. Предложение озвучено, смысл его понятен думаю. А там уж пускай решают, принимать его к реализации, или нет.
C#/C++, Сделать возможным напрямую писать на этих языках
 
Цитата
swerg написал:
 
Lua-интерфейс позволяет делать свои какие угодно DLL.А trans2quik и вывод информации через DDE позволяет делать свои exe. Что ж еще требуется-то??
В конечном итоге мы все равно имеем работу через lua5.X. А разговор именно обращаться напрямую из программы в QUIK. Не прибегая к помощи посредников.
C#/C++, Сделать возможным напрямую писать на этих языках
 
Цитата
swerg написал:
 
В чем костыль? И какие такие "новые возможности обмена" предоставит вам другой язык? вы о чем?
У "другого языка" будет ровно такое же весьма ограниченное 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++, Сделать возможным напрямую писать на этих языках
 
Наверняка уже не раз звучало подобное пожелание.
Так же как и с Lua, сделать возможным написания своих программ для QUIK на этих языках. Возможные варианты подключения exe, или dll своих программ.
Если допустим при использовании dll то чтоб QUIK вызывал функции OnInit, OnStart, OnDeinit и т.д., и т.п. в зависимости от того скрипт написан, или индикатор.

Конечно данное обновление потребует время. Но даст возможность отказаться от кастрированного Lua. И избавит от танцев с подключением к нему DLL. Конечно сейчас можно подключаться через костыль в виде lua5.X.lib/dll. Но все-же это костыль, который ограничивает некоторые возможности обмена данными.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Если еще интересна данный вопрос.
Сегодня столкнулся с подобной проблемой. в коде
Код
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
 
Цитата
Evgeniy Karnaukhov написал:
 Правильно понимаем, что под объектами Вы подразумеваете Дуги Фибоначчи, скоростные линии и т.д.? Если так, то, как и в случае с линиями, такого функционала нет, и мы можем также завести пожелание на добавление такой возможности.
Если имелось в виду что-то другое - просьба уточнить.
Да все верно. Именно возможность добавления на график данных объектов скриптово, а так-же управление ими. И само собой возможность иметь с ними обратную связь. Для получения данных.

P.S. Это нужно как пользователям, так и самой программе. Сейчас довольно большая конкуренция. поэтому развитие ни кому не помешает.
Добавление объектов на график, Скриптами Lua
 
Цитата
Evgeniy Karnaukhov написал:
Константин, здравствуйте.
Именно рисовать фигуры по типу линий тренда в терминале с помощью Lua к сожалению возможности нет. Есть возможность добавить рисунок с любым изображением с помощью AddLabel:
NUMBER AddLabel(STRING chart_tag, TABLE label_params).

Если Вам это не подойдет, то мы можем завести пожелание на добавление возможности именно рисовать такие фигуры, как линии тренда, треугольники и т.д.
Заметьте, я сказал не просто о рисовании, или добавке каких-то линий. А именно об объектах. Тут иногда ссылаются на MQL так давайте посмотрим у них
ObjectCreate -> ENUM_OBJECT.
При том что динамически можно изменять свойства объектов, и получать с них информацию.
Вот о чем-то вроде этого изначально и сказал.
Добавление объектов на график, Скриптами Lua
 
Сейчас их конечно можно добавлять в ручном режиме, но даже так нет возможности их изменения скриптами.
Дать возможность добавлять их


скриптом как на данный момент можно добавлять метки. И само собой вносить динамически изменение параметров.
Это на порядок упростит написание кодов. И расширит возможности пользователей.
getDataSourceInfo, Не выдает некоторую информацию.
 
Это было в  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, Не выдает некоторую информацию.
 
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 .."." )



Больше даже и писать нечего.
Страницы: 1
Наверх