tstart = os.clock()
t={0,0,0,0} -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
while true do
local x=os.clock()
if x-tstart>=60 then tstart=x; tm=tm+1
for j=1,#t do if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end end
end
end
и еще... Если есть желание совершенствовать своего робота, то рекомендую изучить механизмы синхронизации потков - таймеры, события, симофоры, мьютексы, а также сопоставленные в памяти файлы. ------------------ будут вопросы, спрашивайте.
это плохое решение. У Вас поток main, который работает параллельно основному ничего не делает 30 секунд. т е у Вас скрипт фактически простаивает это время, а если работает, то простаивает основной поток квика.
Как все сложно Два дня матчасть курил. и не то сделал.
А как сделать так, что бы одно другому не мешало?
Я Вам дал пример, в котором показано как реализовать запуск множества участков кода(функций ) через любые интервалы от 1 секунды . Изучите его и на его основе попробуйте сделать свое. ---------------------------------------- Поясняю, Относительно того, что делать потоку main в эти 30 секунд. ------------------------ Дела в том, что виртуальная машина LUA встроена в терминал КВИК таким образом, что все колбеки исполняются последовательно в основном потоке терминала. ---------------------- Полагаю, Вы видели множество этих колбеков в документации QLUA. -------------------- Поэтому даже если у Вас супер компьютер, то все колбеки функции будут работать на одном ядре и выполнятся последовательно. ------------------------------------ При этом основной поток терминала КВИК будет ждать завершение их работы. ---------------------------------- Скорее всего Вы поместите всю свою обработку в эти колбеки и таким образом Ваш робот превратится из кареты в тыкву. ------------------- Так вот, чтобы этого не произошло, разработчик QLUA и создал новый поток main, который исполняется на другом ядре в компе и работает параллельно с основным потоком КВИК. -------------------- Полагаю, Вы уже поняли чем может заниматься main в эти 30 секунд? --------------- Если нет, поясняю. Поток main в это время может исполнять всю программу робота, которую Вы собираетесь поместить в функции колбеков. -------------------------- В итоге в правильном роботе, работающему максимально быстро, этому потоку будет много работы и у него просто не будет свободного времени. ---------------------------- Успехов в учебе.
shtur2005 написал: stopped = false function OnStop() stopped = true return 5000 end
function candle() kol_vo = getNumCandles ('SRH15MIN') SRH15MIN, SiN, SiName = getCandlesByIndex ('SRH15MIN',0 ,0 ,kol_vo) for i = 100, SiN -100, 10 do H = SRH15MIN .high L = SRH15MIN .low O = SRH15MIN .open C = SRH15MIN .close if O < C then GREEN = GREEN + 1 end if O == C then DOJE = DOJE + 1 end if O > C then RED = RED + 1 end end message('GREEN = '..GREEN.. ' \nDOJE = '..DOJE.. ' \nRED = '..RED) end
GREEN = 0 DOJE = 0 RED = 0
function main() while true do candle() sleep (30000) end end
это плохое решение. У Вас поток main, который работает параллельно основному ничего не делает 30 секунд. т е у Вас скрипт фактически простаивает это время, а если работает, то простаивает основной поток квика.
Владимир написал: nikolz, Лапуль, ну что Вы корчите из себя профи, ну что Вы постоянно лезете с голой жопой против танка? Вы для меня перестали существовать как программист ещё со времён Вашей истерики по поводу VM, то бишь... ага, вот она, истерика образца 30.10.2020 13:39:44 Не знаю, что за книгу вы написали и здесь пиарите, но в языках и виртуальных машинах вы ноль без палочки. Где Вы увидели интерпретатор в реализации луа в квике? Это VM а не интерпретатор. И там не куски текста а байт код - т е это машинный язык именно VMLua.
Лапуль, я не только описал свой алгоритм сверки портфелей, но и привёл его полный код. Не Вам, лапуль, а сотрудникам техподдержки - Вы меня не интересуете вообще никак. Вот ссылка - Вам для общего развития и чтобы идиотских вопросов поменьше задавали: https://forum.quik.ru/messages/forum10/message61995/topic6503/#message61995
А свой "обобщенный алгоритм робота" можете смело засунуть себе в задницу.
То, что ты мудак, давно понятно, мог бы и не подтверждать .
print(os.date())
tstart = os.clock()
t={0,0,0,0} -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
while true do
local x=os.clock()
if x-tstart>=60 then tstart=x; tm=tm+1
j=1; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=2; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=3; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=4; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
end
end
Написал для Вас такой пример. Позволяет исполнять различные участки кода через различные интервалы.
Код
print(os.date())
tstart = os.clock()
t={0,0,0,0} -- массив таймеров
t1={1,2,3,5} --массив интервалов
tm=0; -- время в минутах
while true do
local x=os.clock()
if x-tstart>=60 then tstart=x; tm=tm+1
=1; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=2; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=3; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
j=4; if tm-t[j]>=t1[j] then t[j]=tm; print(os.date()..", исполняется код интервал "..t1[j].." мин"); end
end
end
результат : 02/19/22 18:07:37 02/19/22 18:08:37, исполняется код интервал 1 мин 02/19/22 18:09:37, исполняется код интервал 1 мин 02/19/22 18:09:37, исполняется код интервал 2 мин 02/19/22 18:10:37, исполняется код интервал 1 мин 02/19/22 18:10:37, исполняется код интервал 3 мин 02/19/22 18:11:37, исполняется код интервал 1 мин 02/19/22 18:11:37, исполняется код интервал 2 мин 02/19/22 18:12:37, исполняется код интервал 1 мин 02/19/22 18:12:37, исполняется код интервал 5 мин --------------------------------- Все понятно?
БорисД написал: Nikolay, нашел в интернете вот такое https://smart-lab.ru/blog/427295.php Проблема такого варианта в том, что он показывает ненулевые значения в currentbal только для позиций, которые были открыты ранее (возможно, по которым прошло +2 дня). По позициям, которые были открыты сегодня, он точно показывает 0. Тоесть получается что здесь используются данные Т 0 ? а нам нужны данные по Т2
Хотел бы обратить Ваше внимание на тот факт, что DDE позволяет Вам получать данные из любых таблиц терминала КВИК универсальным способом, чего Вы не сможете сделать на QLUA. Например при работе с опционами DDE даст Вам все, а QLUA - нет. Вот и думаете что и как делать.
Что же касается вопроса "Как сверяется портфель", то он не конкретный. С чем Вы его сверяете? По какому параметру хотите сверить. Что Вы используете в качестве критерия истинности. Почему у Вас портфель нулевой? ----------------------- Рассказываю обобщенный алгоритм робота 1) Момент первого подключения квика к брокеру или восстановления соединения: Получаем:
getClassesList - функция для получения списка кодов классов, полученных с сервера в ходе сеанса связи
getClassInfo - функция для получения информации о классе
getClassSecurities - функция для получения списка кодов инструментов для списка классов, заданного списком кодов
getDepo - функция для получения позиций по инструментам
getDepoEx - функция для получения позиций по инструментам указанного типа
getMoney - функция для получения информации по денежным позициям
getMoneyEx - функция для получения информации по денежным позициям указанного типа
getFuturesLimit - функция для получения информации по фьючерсным лимитам
getFuturesHolding - функция для получения информации по фьючерсным позициям
На основе этих данных формируем списки доступных инструментов, списки и состояние счетов. 2) При дальнейшей работе обрабатываем информацию о параметрах счетов с помощью колбеков
OnAccountBalance - изменение позиции по счету
OnAccountPosition - изменение позиции по счету
OnDepoLimit - изменение позиции по инструментам
OnDepoLimitDelete - удаление позиции по инструментам
OnFirm - получение описания новой фирмы
OnFuturesClientHolding - изменение позиции по срочному рынку
OnFuturesLimitChange - изменение ограничений по срочному рынку
OnFuturesLimitDelete - удаление лимита по срочному рынку
OnMoneyLimit - изменение денежной позиции
OnMoneyLimitDelete - удаление денежной позиции
3) Ситуацию на рынке отслеживаем по TTT и стакану
OnParam - изменение текущих параметров
OnQuote - изменение стакана котировок
4) Торговлю реализуем с помощью функций работы с заявками
OnNegDeal - новая заявка на внебиржевую сделку или изменение параметров существующей заявки на внебиржевую сделку
OnNegTrade - новая сделка для исполнения или изменение существующей сделки для исполнения
OnOrder - новая заявка или изменение параметров существующей заявки
OnStop - остановка скрипта из диалога управления
OnStopOrder - новая стоп-заявка или изменение параметров существующей стоп-заявки
OnTrade - новая сделка или изменение параметров существующей сделки
OnTransReply - ответ на транзакцию
При этом можно вести журнал регистрации совершенных сделок и текущей прибыли/убытков. ====================== Для торговли одним инструментом есть более легкий вариант , без каких либо журналов и пунктов 1,2,3 -робот на основе индикатора и функции CalcBuySell - функция для расчета максимально возможного количества лотов в заявке --------------------- Успехов в изучении LUA И QLUA
Пусть Ваши программисты сделают обертку на API C for Lua для "функции через DDE " и у вас будет функция LUA через DDE. ------------- Таким образом Вы можете ваших предыдущих роботов переделать на LUA.
Дело в том что тот программист который писал мне на DDE сервере робота натренировался на мне и теперь уехал в США по контракту работать а там им свободного времени совсем не оставляют , а кто то другой в его кодах вряд ли разберется чтобы по предложенному вами варианту для меня сотворить конфетку. Конечно я могу подождать когда тот мой родненький а сейчас новоиспеченный американский пронграммист освободится и сделает мне такую конфетку , но с другой стороны я понимаю что если можно эти данные через DDE вытягивать из квика то значит их можно как то и из ЛуаКвик вытащить , вопрос вот только как это сделать кроме функции getDepoEx ?
Я написал Вам , как сделать проще и перевести Вашего робота в луа. -------------------------- Дело в том, что сделать обертку для работающей функции на СИ может программист самой низкой квалификации, который знает СИ. Это может сделать студент. Ему не надо даже знать QLUA и КВИК ---------------------- Написать заново, то, что у Вас делается в вашем старом роботе может программист уровня того, который уехал в штаты. Ему надо знать гораздо больше, чем в первом случае. ------------------------------- Не в обиду будет сказано, но Вы задаете вопрос чисто технический. Для его решения надо просто изучить LUA и библиотеку QLUA и КВИК. ------------ Предположу, что Вы знаете КВИК, но судя по вопросу, не знаете LUA и QLUA и не умеете разрабатывать методы,алгоритмы и программы. Но вопрос Ваш именно про это.
Владимир написал: БорисД, Насколько я знаю, DDE - это протокол. Старый. Заменён на какое-то новое говно вроде OLE. Всё это поделия мелкомягких, так что говно просто по определению. А вот нужна именно функция. Такая функция, как оказалось, есть (хотя меня когда-то здесь уверяли, что это сделать невозможно вообще никак), зовут её getDepoEx, и она действительно работает. Точнее, работала несколько дней после того, как я написал программу сверки портфелей, а потом работать перестала. Почему - без понятия, ни единой запятой в коде я не менял. По моим представлениям, эта утилита должна входить в базовый набор обязательным элементом - как вообще можно работать без сверки портфелей? Неужели НИКТО до сих пор этим опросом не озаботился?!
Сомневаюсь, что кто-то сможет доходчиво и подробно рассказать такой алгоритм словами на форуме.
Как говорил Станиславский, НЕ ВЕРЮ! Должен же хоть один программист хоть изредка появляться на этом форуме!
Владимир, если Вы чего-то не знаете, то это не повод, чтобы писать херню с умным видом. =============== Для дебилов поясняю: DDE - это метод передачи данных между приложениями через RAM -самый быстрый из всех существующих. ----------------------- "DDE — это протокол, позволяющий приложениям обмениваться данными в различных форматах. Приложения могут использовать DDE для одноразовых обменов данными или для текущих обменов, в которых приложения обновляются по мере появления новых данных. Обмен DDE может происходить между приложениями, запущенными на одном компьютере, или на разных компьютерах в сети." ------------- В Lua у Вас есть лишь метод передачи через файлы. --------- Но Вы очевидно знаете иной способ (для особо ...)
и еще... Полагаю, что ответ на ваш вопрос равносилен написанию конкретного алгоритма и программы. Сомневаюсь, что кто-то сможет доходчиво и подробно рассказать такой алгоритм словами на форуме.
БорисД написал: Подскажите кто и как производит сверку по количеству лотов в портфеле в своем Квике и в своем скрипте ? И через какие функции ЛУА вы вызываете данные из Квика о своем состоянии портфеля и количеству лотов в своих торгуемых инструментах.?
В моей предыдущей разработке робота программисты писали через DDE и там эта функция прекрасно работала у них , и более того каждый час сохраняли данные в роботе по количеству лотов и если после сверки данных в случае выявления рассхождений то мне восстанавливали количество по данным брокера , для чего брались данные всех моих сделок за предыдущий час с первой его секунды и накатывались заново на сохраненные данные . Но в Луа ни как не получается даже запросить у брокера сколько точно лотов и по каким инструментам у него по мне числится. Хотя пару месяцев назад это получалось делать стандартной функцией. Сотрудники Квика по какой то причине не могут помочь разобраться с этим , по крайней мере в одной из тем на этом форуме уже вопрос поднимался не однократно , но там пользователь Владимир так и не смог достучаться до разработчиков Квика.
самый простой вариант. Пусть Ваши программисты сделают обертку на API C for Lua для "функции через DDE " и у вас будет функция LUA через DDE. ------------- Таким образом Вы можете ваших предыдущих роботов переделать на LUA.
Владимир написал: Николай Колесников, Я в своё время специально для Квика искал 32-разрядную "десятку". Нашёл (с неё сейчас и пишу), а Квик тут же перевели на 64 разряда. Пришлось покупать ещё один ноут "специально для Квика". ::
nikolz написал: "Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым" Вы это предположили, но не доказали.
В QUIK 8 так и было. Вся информация есть в этой теме.
Но троллю некогда читать посты. В большинстве случаев тролль совсем не разбирается в том, что комментирует.
Не знаю, про какого тролля вы так переживаете. Возможно, что вы про себя в третьем лице уже рассказываете, тогда это диагноз. ================= Я читал все ваши опусы и про 8 версию и про 9-тую. ------------------- Не могу лишь понять, в какой документации вы прочитали, что 9-я версия должна работать быстрее чем 8, а 8 быстрее чем 7 и т д --------------------- Разработчики КВИК никогда не ставили задачу оптимизировать быстродействие терминала. Поэтому Ваши изыскания - это Ваше хобби. --------------------- Любая программа или техническое устройство , если оно соответствует документации и заявленным разработчиком характеристикам является доброкачественной. ======================= Прикольно читать, что программа игры в шахматы сложнее, чем программа робота играющего на бирже. Шахматных программ воз и маленькая тележка, а роботов, которые не сливают депозит и умеют играть на бирже фактически не существует.
После заказа обезличенных сделок скрипт замеряет время получения первых 200000 сделок. После этого скрипт выдаёт замеренное время и отключается. Тест проводится 4 раза: 1) с созданием локальной переменной, содержащей массив нулевого размера 2) с созданием локальной переменной, содержащей двумерный массив 100x1000 3) с подключением библиотеки socket 4) с подключением библиотеки iuplua
Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым, поскольку колбек OnAllTrade во всех тестах выполняет одну и ту же работу: OnAllTrade содержит только три простых оператора, они не должны существенно влиять на время работы функции. В действительности же время работы скрипта много больше в тестах 2, 3, 4 по сравнению с тестом 1. Выводы , вытекающие из теста я неоднократно приводил в этой теме.
Увы, Ваша ошибка в том, что цитата: "Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым" Вы это предположили, но не доказали. Поэтому все Ваши выводы не убедительны. --------------- Кто-то предполагает, что бог есть, а кто-то - что нет. Из этого предположения следуют различные выводы, но все основано на вере и недоказуемо. --------------------------- В науке это называется - аксиома.
Учусь в университете на первом курсе и понемногу осваиваю Quik. Хочу отобразить на графике прибыль (убыток) из таблицы "Клиентский портфель" . Если я правильно поняла, нужно сформировать переменную с символьным идентификатором и внести ее имя в настройку графика ? Как ее сформировать, покажите пожалуйста на примере.
С уважением Анна
Вот обобщенный алгоритм создания графика по любым параметрам. -------------------- Еесли надо сформировать график, по переменным, для которых КВИК не хранит историю (например прибыль/убыток) ,то надо создать файл с историей этого параметра. ------------------ Этот файл использовать для создания нужного вам индикатора на графике. ------------------------------ Успехов в учебе
Если Вас интересует параметр, отображающие количество "всех сделок" за "всё время торгов", т.е. за текущую торговую сессию, + все прошедшие - то у нас нет информации о том, чтобы какая-либо биржа транслировала эту информацию. Наиболее вероятно, она не транслируется вовсе.
Пожелания по написанию и добавлению скриптов в рабочее место QUIK мы не принимаем, т.к. эта задача может быть решена пользователем самостоятельно. Вы можете найти готовое решение, заказать его у какого-либо разработчика, либо создать его самостоятельно.
Добрый день! Скачал папку LuaIndicators, вставил в QUIK. Но при открытии программы, новые индикаторы не появляются. Меня интересует только индикатор Зигзаг. Вопрос, как мне его добавить в программу?
откройте в текстовом редакторе исходники индикаторов. уберите лишние. сохраните под именем индикатора. поместите его в папку ...QUIK\LuaIndicators
Старатель написал: Для слепых, тупых и троллей: здесь один скрипт используется.
для особо тупых ---------------- запустил Ваш тест на боевом квике ------------------ вот результаты: это без теста [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjQAAAAYCAYAAADtemdnAAAJtElEQVR4nO2dz28b1xHHv3LdxHWNJDVouEV9KCqvVhX1HxDwwSeJdbSXUml6qwkBclFKgKLw0AKhWCAtsFFVkIICBSpt10aQmBsfVlYpnXxwQcBoDkkArqAVrSpBdVFMGI5Tq7Ujij3scvlI7tsfFB3rx3wAAdzd92bnzfvB2Zm3YsdaqVIBQRAEQRB7gvLWBo4ff+F5q7Gn2dp62mSjI89JF4IgCIIgiLZBDg1BEARBEPsecmgIgiAIgtj3kENDEARBEMS+56ifwr/7u4x79z8HAJw99RP88efxZ6IUQRAEQRCEHzq8vOX0G+X3uP/4ge21U98/iXcjb7ddMYIgCII4jNBbTu609JZT5OolrjMDAPcfP0Dk6qXda0cQBEEQBNEijg7Nr/7229pBeQfH1h/hxMdf4sTHX+LY+iOgvGNflouCWKADndZfL9K6D231JPoCHegMJVH0UY1wQ0HMb18QBwM9ib7qfGI/H3CKci+zDnWgM6owV+3mA3tOQSwwiJxtWQ3pUKM8gjio6JgKncaZgPE3rHKKqUNWmfNybWKtyuds6y5EHWQ5wHVort1V8E2lbByUd3Dy04e4nnwfV2Zu4srMTVxPvo+Tnz60nJpvKmVcu+tlEgcxmq9grVTBUhxIXfSwgFYdmYvAdKmCtXwCgrf2EQThhJjAtKSYDwoTEOIHf24V5V70yT3GWmL+TWOwLU5ILtqLnFTAWibSBk0JYq+joyu+iY3SJjbyb2I1OoSFpiKTOB8FZkub2CjNoUsewpQOAPOYUgdw2zwPeRKrZvkpzGFW8q8N16H5h37X+nziiy28N32jqcx70zdw4ost2zpeEOIJhHUFi46RAQ3pixMQMuTIEMSzQIgXal/sLSwi+wo9iZjcg+lSFmHmdDhTwOhKcldRyqLcixiyWIoHd60mQewPBnChumaIXeiyKbGqzgPxcVwwy4/FgQWVN9F0TF3UMZYZaEkbrkPzsPzY+nzlD9e5Athrj8pb3HJeyEXtQsDLKOoRCHotRNwna7VK1eiN+RezwlSNoeCG47p61fCxw3mwcprTXkYI24P8akja0rf+uK48t22N+tTuW6+Hiw2sFOAgctCQCtmkAd3sq9au1/rFm43s+9tJZ6e2etDVg0znccLrA6CxX731owcbVv/YtBBXlk15H3ZpsqdD+wwZbvVbHetsOsdtHPHSpZzzKxqKUqTOmTEI4my3hpyqNV3xhDqIPjWCJYrMEIcV9RYWpFdNx8ULAxiT5nE+cBpnAkNAfByQh7Aan/Mhox7+HpqdHe4lfpWyr/JFOYmcGEG/aByHM9UQcBZh1Xxa0pdRhIIcbljXBLm3tqCGzOhNqYK1/ASKUS97QRTEQgrCZuprLQOkZc3hfCNBCGAjSxoWdTDRI54cDemQGZK2noiDGMmbbbbScVmEW2qbgrQKj1EsDenQIIrxQv29Mz1IhZgvFEcdNKTkahpwApBfY6652YjT355pbGurY8H5Ht5lttqPzjaspmeN6KSbLOa+umY6AV7b4DR27MatW32/Y50379zHkR+K+jL3miC2GlnRkJIVhA9Buo4gGrH2wcy/ig2byEqXKGJVnjRTUXpddKYrfsdIV5U2MSsZKaixXUSJuQ7N0f/V3ua+eucDrgD2GluHTzUS0GHksdk0kjrIiYxEMGKFcY3PRV0znZ0I+q2QVwIjkobiSu1etc8M+jKKjB6dUcVY6HjnbQhLPUjJZlRBNRwzwVX+R8jpbFsccG1bM7noINC0qDJ61EWiOLpICYyKChZVLzoEMXrZvJ+Nfo42Ahz6252mtnoYC7Z2cLSRg0zXSJ5XvZxt6E9WtR2DQMZMqXgcR/Zjp3pf93Hb3B9+xzp/3rmOo7r+c4qiAYLY466Pb4IYzbTDgSaI/YfllAzcwpnAOXN/DIM0h9txHcNmJGa1W7SVsxCdRNflcYCzUdgLXIfm5JPa+91L/8pzBbDXfvDEy3vzzFMnm8fWk+iLmk+qpQJGq20We1p86jEW01pao9lJYjcF1jbx8c43ICUwuqIgByA3v4yw1LhQepTTLlaSSCNr8+TMsXfb0XCv8YvYyUa8/vYCt61OONmhBRuJCSyV2m1XGxv6otqOAgTZx5drS/ZsY30AjvPFda4x/ZeJICc7vGjQHYSgKjYOqIZFFQhLQQA9EBrHo76MInpwljdOuxNYqotuEsQhQ5rDrKRj1WYNq0Vi7uACdHSJDRNJn8QUxjEmNm8U9gPXoZl5YwbYNtJOZZTx+rUYPvzklnX9w09u4fVrMZRhpJmO/Hcb774x4+vmdaxoKIpBw3nRP0LOWowj6JcUJgRtfBbEoOnsmNEEANCTSKu1p1F2s2Pdl45ZrymdxDtvSxD90jLSchKLSGCE7R+u/F8gLHqU79K2ejSkogrCcR9OE08XNYmUbt7HVQdmz4H5RF6vn4ONuP3tBqetvuzlkXbI3LUNW9XHjMJ4uL/r2HEct7z+8D/W+WUdxpFfxARGJAWxun05Rnos1V2VbeynYd/AzMkTnL03DFIWS/HlBtkEcYBR55m3muaxoIro6jY+D9tFa9QhDK+82ZBW2t1GYBbHnz54ufgffPWzlwAA2zvbuPlZDjc/s3n+2Kngh//2v+emDimBUbkXfYEJQIwgzCxa4UwWi4FedMrGsRAvYEkCgAim8xPoC3WgMwoYT2oFD0/L1Xo1mZCyWMvwz9shxBMQAoNApgKAfeWTL2ckn0WRaUs4w3uzxF/bhPgNnwt9sEkXhDqQqruPmw5BCPpr6AxoVlsa9ePayKG/qymEFHsqNIizpYhDW1sdC060Q+bubehdFmM3KYs1j3PEfew0jxV23NrXd65j367G+cLqyJtrDe1GEKP5LISmMjXCmQqE6thj9B29HGHKFHAvxJQRJ7CUd39gEOIFTOsd6AsBa/mEa3mC2Nd0r2IqcBrD5uGFzCbGmtaCeQwHqq9zD2C2NF73NtSqPIQFaQ63zetj0jmcD7xjyfOD608f/Hokgq3ul7Fz/LvcMkcfPMEHY5d93ZjYSyiIBZIQ8gUfTlErdVpFQSygoP+ZpsyeB9+mDQlH9CT6QhMomg4f9QfxPKGfPnCnpZ8+uJJW8NN14Nj6I3znq6fGyfIOjnz91Crzyvdeaq+mBEEQ3ybWnihyZghiv+Lp17b/9M5fAQBvvzWGz/9ZxIsvvoBTp3+E9e37eCy+gspRV7+IIHZBBNMl+v8eBEEQBB9Pv7btxKXYL3Gs58f4y6U/t0sngiAIgji0UMrJHbuU064dGoIgCIIg2gc5NO60tIeGIAiCIAhir0MODUEQBEEQ+57/A/o2osNU512BAAAAAElFTkSuQmCC[/img] это исходный тест n =5000000 [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkYAAAAhCAYAAAA8s2SnAAAKMElEQVR4nO3dT4jc1h0H8K82trehdpzE25Rxe8ihwVjSxaQHF8Peeiv44HmycQ8pCRQCDbitMYUaJJXtZanbxVBSimPsNHF39cYH1yVt0xKwYcteWpdGT2bJoTUsHeI/if/V9a53Rz2MZkYzo38zK3vt9fcDCzvS09N7T0+an96TdrVTp06FICIiIiJoYRgyMCIiIlpnrgWnsfXLX1jrYjzWbn16H1/aWu9aNrJGZSEiIiJ67DAwIiIiIoowMCIiIiKKMDAiIiIiijAwIiIiIopsWIudfufMJPz6vwEAZuVlnDp4ZC2KQURERNTlkb6u/61f/xj1O58lrqtseRG//+5PH1VRiIiI1jW+rp+v8Ov6DyNWevXYm6lBEQDU73yGV4+9Wfp+iYiIiIrqC4w+/vhjXLhwAY1Go7SdfOMX3+t8WGlg85Xb2HbpKrZduorNV24DK43ktKkkLE2D1v4x4aoBCqRcmJoGzXQxyGaUR8Ia9FjQ+qBcmK3zKf77OqdcM3Yd0qBZMrY26XyIL5OwNAsyMa2Ca/bmR7T+BZOHMbqnhiAtwbkpjI5N4WzvNmMHMDp2AAfPdZaffaP7c1FdgVEYhrhx4wbq9TouXrxYSnA09ZHEUmOl+WGlge3+TVw4/j4+fO8sPnzvLC4cfx/b/Zvt4GipsYKpj4pcDAw4fogwDOE7gLO/wIW4FRDtB2bCEKFvw1hN5YioybAxI2R0w+FAt9f/uaVcE6ajwwub16EwDOHBKiWYkZYJKXyEniihpERPijlMTC6krFvAxJ4DGP0dsK93m3O7cen6NBavHwImo6BqvoYJHMKZvYOXoisw0jQN4+PjqFQqpQVHf/jnXPv3Fxbu4fy7M31pzr87gxcW7iVuU4Rh2xBKopYZGSm4+x3oHgMioofBsP1OgLDev8+Vi/2ODi/0EK+q8Hw4gbuqUVPlmrDgwbd5laKnSzBZA45UoSeu/SqOzk5j8Z3dBXJawMTrCzhaKG2/vqm0kZGRUoOj6w/+2/79L8d/k5ouvu7zB/dS0xUhraSh7QBKCRhBZ+jbjF+9WqNJ0U/npq93iLvnc9d2rWHxjOWI59M/ndccmi+Qf2uovV3e7s9d6VPr1luezn67y5HTBu2pTQsSCo6ZML2Z176ys75zXIq1UfLxzipzVl0LlLVAntn9JO0YAL3HtdhxLNCGrZ/4dFdqXgnpB2iXvvbMqF8zj7zth+3r8WmqvH6UNg2csjxQUEKgP/4zoOsKMvsuLV3NgikF/HUfWRL1mK/h2/PVIUZ4duPo3jnsGjuA0bEp4EgVmJxCcORQz8hScYkPX4+MjGDPnj3YtGkT6vU6Ll++PGT2gDZEUNVoTb0VpFwX0hCoRjdYwmsNbXsQMrp7UwECSEjMtNfpjtm5MJvRaFIYIvQdBFaRZ2UkLFNCRFN6oQe4rspY3suAgfhIl0JNITaalZaPgmtGQ+3tO3QDth/VuT3N6EEMVTcJV6LgqJqCa1oIHL97354Ox4x9MWWWQcFxW9ObDuDsj63La6OU411Yb12H7QvZ+yie57DHMbsNW9POzdHSvLxi+1UqmusvWoesvpPUb/O2H7Svp513+f1oECpIfQICujF0rnAcCfEUTEMSdVvAxOtz2HdkuBEe/cjPsHh9GovXp3Fmb3Nq7egQU2gtiYFRo9HA7OwslpaWUKlUsHPnzqF3sHGx84bbz//429R08XXxbdK1Ria05jx/fHpMWikjNQJ2e3hawHYMBIGKgiYB0bpIGzZsoaDa17747/EiBAhi5dAsCaWC9OUJhNDhuFEpZTPA03Pzr0GqeF2ymimvbv2kZQG23TOcGStH18hYSlmEDceQkLJIGQw4M9HxSyhfZhs1C5wxMpetr64F+kJiO2S2UUaeuSOLRcuV3YaD5dWqhwV40VRRwX6U3Hda2eb32/7jMWhfTz/vcvtR1/HLGtUDDD15sH91DDheGYE40ZMlmJzC2b2HcHTH6vM6+0YN+skqkPJAdhF9gVGj0cDFixdRr9dRqVQwPj6OkZHh/0D2S8ub2r/PBLOp6eLr4tuki90Fx+f5lQvTQvRApA+ndT019JR5yzzNAKozXdMfbMUfvuw8LJm2vEfVhhNISABSBhDV3lIWzKcsgQsXXsKdfEp7l06h72Y8q43SjncRqXXNktUOQ7SRYcMPy27XhDYcSKsePgx3gC/podqzxO0BZJ4vueda7Ph5AtLNeKFDN2BImRDIKtQkIKoGAB19g0cqQAAdelo/1W34XaOtROtd84Hr9ptle2oI5mvYlfVmWpr5GiZQxdEd/Q9kD6LvrbQygyIAOPeTXwLLzem05XAFu6fewtuz59vr3549j91Tb2E5bE6fPXN/ubnNsAIFZRjNIEjVINtXNgEhZGxoXcJ1FHTdiIKmaHQDAJQLV3bujuMPlXZ9eUXb9U2TpS1PZKAqAriuCwkbXTfGqflXIYyC+efUrZuCY0kIe4BvprSySBeOivaTW4bYMxnRCEF3+TLaKPV450mp60DtVVAZea66DYctTzQqVGD/uX0ns9+mHY/B+3p62ox+NCjDhi0krK7nlprTfo7eyrv5vFH8jVnpOinPJsUID74T9ORNtF7txploGmzx+jQWZ6vQd1RxabYKHXM4OHYYE/NF8lndA9dxXf8SRNM0bNu2DQBKCYpaXvrXXVx95TkAwIOVZZyY+wAn5j7oT9gI8XJ9lX8iQNhwXBOm5gCGgIhd/ITnQWomNKf52XB8+AIABDzfgWlq0Jpr4Ph+gbv31nadPCE8hF768iSGbUPXLMALga77xPR8bN+DitVFeGlvAg1WN8OZGfALw+grizQ1OF37ySuDAV3th6apdl16y5faRhnHuzU14sSWSNOCHoqMug7bF7KUkefq27B4XrF2Ex7CgudIft/p7yvxfpu8ffY2yfXqPV9iuaWeaz31hgHH92BkjNsIL4Tf6nux8jozIpbGh2PG0hgOfD//yBu2D09pME0g9O3c9ERPu9Z03CUAzQeyD2PXWHOkaN870wPllfgvQcIwhKZpJRS145uvCdx6ZStWnt2Ymmb080X8deJkqfulR0nC0lwYvj9AcDXMNsOSsDQJ8VCnAtfCo2xDyqRcmKYDFQWOPB60lvgvQfIV/pcgZQdFAPDn0xLmArD5ym1svL3UXLjSwDN3l9ppXvzic6Xvl4jokWk/M8agiOhJtSE/SXlO/uoEAOD7P/wBPvn7Jxgd3YRKpYLLC9dw82vPI9xQztQdUTIBL1xfY0VERFSuxKm0tbD3tQMY3fkVeD86ttZFISIieuJxKi1f0lTaIx0xynLu9GAPRxERERGVjXNXRERERBEGRkREREQRBkZEREREEQZGRERERBEGRkREREQR7U+Xlx+L1/WJiIioPF/f8g/8Z3nLWhfjsbZ9wx18er97mXZ38fH4O0ZERERUnsVrf8Ozz29d62I81v538xY2b+6ePONUGhEREVGEgRERERFR5P+8fsobYtgWHgAAAABJRU5ErkJggg==[/img]
это n=0 [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkYAAAAcCAYAAACEV3DUAAAKeklEQVR4nO2dX2xT1xnAf84oZR3qH+o2Q+NhWnCcxnmbWqmyxkOfgkfxy5yuexsREkxzIqXUD5s0x5O6SReWKYmoqJiBUVUtcXlwYCZPlcrktSqa2mpxxo2b0WpIVcDtKBvZCtjew722r+37z8YQCN9PsnTvPf++851zj7/7fefanmPHjpURBEEQBEEQWHdx4w9WWwZBEARBEG4DQ8+s573FL1ZbjLuaZ3sfr9ORZ6lQFo+RIAiCIKxBiisXeeih9astxl3Nysr1Oh11raIsgiAIgiAIdxViGAmCIAiCIOiIYSQIgiAIgqAjhpEgCIIgCILOutVq+Bd/Uvjk8qcAbH3iu/zmh7HVEkUQBEEQBAFYhbfSfpb6JZevfWma9sS3NvFq5JU7KY4gCIIgrFnkrTRnXL+VVr4N9lLk2F5Lowjg8rUviRzb2/F2BUEQBEEQ3GBqGKkLf+ODv7xLqVTqWEM/+ePPayfFEhsuXGXjuUtsPHeJDReuQrFknteSFFGvh57qZ4AptQWB1ASDXg89wQT5FooJTqSItjoWwtpATTBYuZ+Mx2ucvDJgWIc89AynDKlm94PxWoqod4iMad4cU8HG+gRhraIyEexmi1f77Enb515UtrEleIBF47lJ2dPDznU10mQYlctlrvzrCy4tf8659852xDg6/n6KG+WidlIssemjK7yeeIOjB09y9OBJXk+8waaPrlSNoxvlIsffd7MYBBjNllkqlJmLweQuFwtxxSDaBdOFMkvZOL5b6ZwgCBr+ONPhlP7AMY4vtvbvrbwywKDSr60l+meaoY4YM5nhATLheZaSkQ5IKgh3Oyq9sWUuFpa5mH2ZxeHdnLbMO8uEotafp3fyTmGZi4XDoOgGk3qACQ5zKNyaJE2Gkcfj4elnt/Fk9+aOGUd/Vt+vHm/8bIXXpk805Xlt+gQbP1sxLeMGXyxOSE1xxtZTkWNq1zi+pBhEgnA78MXmawZCi4vRPYeaIKr0M12YIWS4HErOM3o+cUte07wyQJQZ5mKBWxZTEO4NdrKjsmb4e+m1ybmoHIDYy7Z5QGVil8pYcmfLkpiG0rq6ujpqHF0pXqseH/3165b5jGlXiyuW+dyQGTZzbS+QVyP41Jrre1DJ1QpVvEn6J1p1vzW6uBvO68pV3OI21zHW0xzO01zzLuqvuNqr8taf1+W37FujPLV26+Vw0EE1tDlEhhyTQZPwppN+07X02ri405H5eNvJbNdXF7K6qNN+nliNATSOq7txdKHDyscY7rKsyyR/C3pp0qdN/7Q6nMq3O9eNYSqneWQVBra4fj5HPhypM4o0Amzty5FJ55pSXJEeYjAdYU48RcL9SvoUp8PPs8MsTT3AHnVfgxdoJ2PhWZ7zdrPFuxti+0DZzWLssHkdDlhuvu7q6uL7zwR54IH1XFr+nKXFv7dRvU4bRlWpVGwpf15JkPFH2O7XzkPJimt7hlBaf3pTF8iTIsOJappPGagtzEHdm1Qos5QdJz/sZq9MimgwRUgP6S0lYUrJ2VxvJIAPo6crxxkVgzfLqp4cU0Hd1V59Qg8wktX7XA0zzhBqq28pptK49KrlmAoOkY/N17ed7GcyaPhispUhx6RSCW+Og/KCIc1JRxbj7ZrGvrY7F+zbcF9nu+Nor8NK2FnzljrVZWhXzenGhNs+2M0ds3nrVL7VuW513znPo1bIqwuWaT5/u56eHJNKitB9EIYUhEaq+4Rmn+eiqadHZWLXLDtizWm9sbNaGK6wzKGwFloba9NrbWkYlUol/vpBlhs3rvNk92Z6ep9qrwVg3f9qb7gdO/umZT5jmrGMNRXPhEeL8xvDY+khC09NhJGqe1o7zqs53WiKsL3qyoszEs6RP19rq3ZsQF0gb5CjZzilLZhW100IhfuZVHQvR1oz8HyO9b9NRjX2xQbHvjWTGR6CpsXZIEedZ8xClnCcUX+KM2k3MgQYPaK3ZyKfrY7AZrydaeqri7lgqgdbHdnU6ehZdCuXvQ5bq6vSjyFI6qEil/PIfO5U2nWet83j0epct77vHOdR3fjZefXA5+93lqdlAowmO2GIC8K9R9W42XmKLd5tTDTcA4vKbk6HDzPmt6/n9PABeo/sA4sN2U6YGkalUolz753l0vLnPNm9maef3UZXV/s/kr3p69rvA8z9I2uZz5j22NdufnfB8BRsjPOrCQaH9SfnwjyjFSX6+9t8CtMW5Vq4ptnYMm6+rG2WtLreQDjO6PkUGSAzu0Ao3LjguqynU5xPMMWMyZO8hb47To5PGr/Q7XRkNd5usOyrHXZ6aENH/jhzhU7r1USHLVHpxzw+pYUv6bb02cHygO394nivGcYvGSGj2LzQ0RfAl06ZGLI5zqQhFA4A/fga56O6QJ5+tlrN0744c3XeVkG4zwgf5lBYZbFuDdM2XFe9SsH9LKr7ec7wZhqgb7jex5i/eUO2W0zfSuukUQRw8KWDcFMLpxUp8uLxKG99eKqa/taHp3jxeJQiWvis6783efWlg+03eD5H3h/QjCD1bTLVRT3C9nDK4FrXjn3+gG406d4NADXBVLr2dGzcVFr35aWXawqTWV03JcD28AJTSoIzxBkxLpiW9f+IkN9l/Q59qyfH5HCKUKwF48tKlnSCSVVvx1EGw54M3UNQL5+NjizH2wmLvrakL5d0os5b1mG78uheIRftO84d23lrNR6tz3XrvDbzqFX8cUbCKaJ1+5a0sN9kX6Vubb+R8Y3ZjDJusTfJQHiGudhCQ92CsIZJzxreQpvldNpPb592vMe7jQl1J4f0UFnlzbVe/8u8k91n2ITd/oZrI01/CeLxeHj0sccBOmIUVXgk/x++euphAG6WbnLy4wwnPzZ5HiqV+fY/b/EnAsJxRpUBBr3j4I8QMix+oeQMZ7wD9CjauS82z1wYIMJ0dpzBoIeeYdCeHOddPL1XytXqJDzDUtL6uhm+WByfdwiSZcD4qq91PSPZGfKGvoSSVm8CtdY3X+xEi18YgSZZCHqYrGvHSYYAPvUFery5al8a5bPUkc14V0Ijk8ZLwSG2FiI2fW13LtjRiTpvXYfu6zLoLTzDkst7xHnuNM8V47w1L29fxrxfjfeLUUare62h3wQYzc7ga8pTI5Qs46vMPYO8o0cihjzzfBI05PGPM5d1fvDwxeaZVj0MBmEpG3fMLwj3NH2LTHi72aOf7kguO4bMGqmE2t4BtA3Z23jOu79an1ss/xKkXC7j8Xhak8qBn45EWOl7hNJDD1jmWffl17w5dqSj7Qp3khRRbwJfdr4F46qdMu2SIupNsf22hgJXgzupQ8EWNcFgcJy8bjjKeAirifwliDOu/xKk00YRwNGpFN+7ABsuXOUbX13XLhZLdP37ejXPo998uOPtCoIg3DGqe8bEKBKEe5GmUNrt5rf7/wDAK78a49MP8jz44Hqe6N7MhZuXueZ/lPK6zoTuBMGcCNMF+X0YQRAEwRzLUNpqsDf6Yzb0f4ff7/3daosiCIIgCPc8EkpzpjGUdlcZRoIgCIIgdA4xjJxxvcdIEARBEAThfkMMI0EQBEEQBB0xjARBEARBEHTEMBIEQRAEQdD5P9nJ+EEfNaspAAAAAElFTkSuQmCC[/img]
общая загрузка CPU 5-8% В итоге: Ваш тест CPU как слону дробина. -------------------
Константин написал: Добрый день! Прошу проконсультировать меня по следующему вопросу: Я разработал приложение, которое получает данные из QUIK накапливает в себе и выставляет заявки на биржу. (Брокер Сбербанк) https://www.вцене24.рф/develop Законно ли будет, если я продавая свою программу буду предоставлять покупателю программы накопленные мною данные о торгах акциями на Московской бирже за 2 года? Или покупатель моей программы должен накопить подобные данные самостоятельно через свое подключение QUIK?
Это не законно. Читайте внимательно регламент брокера, там все написано. ------------------------------------- Не надо искать под столбом то, что потеряли в автобусе.
прикольно, что куча тестов кучу раз вызывает колбеки, которые кучу раз дублируют одну и туже информацию. ----------------------------- В качестве пожелания: Может имеет смысл сделать вызов колбеков один раз для всех скриптов и все их спрятать , чтобы не пугать буратин и не давать им возможность грузить CPU кучей бессмысленных скриптов.
Старатель написал: Демонстрация CPU Usage в Junior 9.3.3.3
3. Загрузка при запущенном скрипте с n = 5000000 и закрытой ТТТ. Скрытый текст Daniil Pozdnyakov, если у вас не получается проделать то же самое, готов продемонстрировать на компьютере вашего тестировщика по RDP.
Для полноты картины не хватает теста с открытой, но свернутой ТТТ.
Новичок написал: Скачала QUIK на сайте сбербанка, нигде нет срочного рынка. Как подключить срочный рынок?
У сбербанка QUIK изначально настрое. Судя потому, что у вас тема черная, Вы чего-то накосячили. Установите исходный пакет. Все перестройки делайте после соединения с брокером .
Добавлю свои пять копеек. чтобы скрипт корректно завершил работу, в колбеке OnStop() специально сделан возврат со значением времени задержки завершения. -------------------------------------- Поэтому все другие колбеки будут вызываться после выхода из OnStop. ------------------------------- функция main - это другой поток и она вызывается вне зависимости от колбеков. ------------------------------------- Чтобы ничего не зависало при выходе вы должны указать время задержки завершение, которое хватит для завершения всех ваших плюшек в скрипте. ---------------------- Это время Вы определяете сами, так как никто не знает что Вы нагородили в своем скрипте. Вполне возможно, что и 5 секунд может не хватить чтобы корректно завершить скрипт.
Вася написал: Владимир, потому что я, начинающий программист, выполняю заказ клиента. Таково его желание. Ему нужно выводить в эксель те данные, которые он сам выберет в ТТТ. И он, естественно, не сможет залезть в код и добавить новую колонку когда решит это сделать. Он сможет только добавить новую колонку в ТТТ и она должна быть выведена. Сложность в том, что выводить данные нужно не только из ТТТ, а еще из одной самодельной таблицы. Вот я и хотел объединить их сперва как-то, а потом сборную таблицу вывести.
Предлагаю реализовать так: TTT выводите в Excel по DDE всю, которая на экране. Убрать лишние столбцы из TTT клиент может без написания кода, по инструкции для терминала QUIK. Убрать(срыть) лишние столбцы в таблице Excel клиент может без написания кода по учебнику Excel . ------------------- В итоге, для получения TTT в Excel писать код вообще не требуется. ========================== Если работаете с Excel, то дополнительные столбцы создавайте в Excel Писать код в терминале КВИК для этого не надо. Передайте всю необходимую информацию из таблиц КВИКА по DDE и пишите код в Excel. ========================= Если комп многоядерный, то Excel и КВИК будут работать параллельно.
JIMB написал: nikolz, понимаю вашу обиду, тк не заказал программу. Но АРКА разработала возможность накопления архива на локальном компьютере и просмотра в терминале QUIK . Поэтому я спрашиваю - может ли брокер Сбербанк технически препятствовать просмотру уже накопленного мной архива?
Цитата
как просмотр мной накопленного локального архива зависит от брокера, может ли Сбербанк препятствовать этому?
Поясню то,что Вам непонятно на примере. Когда Вы подключены к серверу брокера, то терминал КВИК пишет получаемые Вами данные сделок (т.е свечи) для графиков цены и объема в файл архива. Кроме того, терминал при включении допишет в файл свечи до текущего времени , но не более 3000 свечей данного тайма. ------------------------- На следующий день в этот файл будут дописываться данные новых сделок и так далее. Т е если Вы не удаляете эти файлы то они будут хранить историю цены сделок тех инструментов, которые у Вас открыты в терминале. --------------------------- Эти файлы не хранят какие-либо иные данные кроме данных свечей. ------------------------------ Поэтому, если Вы хотите сохранять какие-то иные данные, то Вы сами должны это организовать. ------------------- Т е либо пишите прогу сами, либо покупаете ее, либо ищите халяву в интернете. ------------------- Снимите розовые очки.
JIMB написал: 1. График оборота торгов в деньгах доступен только за 1 день. Хотелось бы сохранять и просматривать его архив аналогично цене и др.
Цитата
JIMB написал: брокер Сбербанк предложил пользоваться сайтом moex для решения вопроса. Мне так неудобно и хотелось бы просматривать историю графика объема торгов в QuikЧто делать дальше?
Цитата
Daniil Pozdnyakov написал: Касательно пункта 1. Вы можете хранить информацию по данному параметру локально. Достаточно отобразить данный параметр в таблице текущих торгов, а также построить и держать открытым по нему график. Информация будет хранится в соответствующем файле с расширением *.dat в директории archive. Информация будет накапливаться, пока соответствующий файл не будет удалён.
10) Не получил ответа от АРКА и вынужденно повторяю вопрос - что делать после отказа Сбербанка помочь в решении вопроса ? Данные архива оборота торгов мной накапливаются, а просмотреть историю я не могу. Пользоваться сайтом мосбиржи для просмотра исторических данных мне неудобно. 11) Также прошу ответить, как просмотр мной накопленного локального архива зависит от брокера, может ли Сбербанк препятствовать этому?
Прочтите внимательно регламент брокера и закон о рынке ценных бумаг. ------------------------- Брокер не обязан Вам предоставлять какие-либо истории торгов. Это Ваши хотелки и решайте их как умеете. ------------------ Брокер - это посредник в подаче ваших заявок на сделки зв Ваши деньги на бирже или вне ее. Он обязан лишь предоставить вам отчет о результатах переправки Ваших заявок на биржу и своей комиссии за эту "ужасно трудную работу". И ВСЕ. ----------------- Хотите смотреть историю - пишите прогу, либо заказывайте ее разработку. ---------------------------- В инете можете найти фирмы, которые продают данные торгов, в том числе и мосбиржа. ---------------- Можете купить подписку или архивы. ----------------- Но это не обязанность брокера. ============= Терминал QUIK - это лишь прога для подачи заявок брокеру, которые тот переправляет на биржу. Остальное - это "бесплатные" плюшки. ------------------------------------------- Снимите розовые очки.
Обратился еще в начале недели. Сказали передадут техническим специалистам. До сих пор молчат
Им надо периодически напоминать. ------------------------ Лучше всего напишите им письмо или попросите чтобы соединили со спецами. -------------------------- В качестве бесплатного совета. Если Вы не профи на рынке, то лучше вообще забудьте про неликвид. Торгуйте лишь ликвидом.
Расчетные цены фьючерсов определяются в соответствии с внутренними документами ПАО Московская Биржа и НКО НКЦ (АО). Если интересно, то алгоритм см на сайте биржи.
Вася написал: Владимир, правильно ли я понял, что данные из моей таблицы нужно сохранять в файл .txt при каждой итерации цикла в скрипте, а этот файл уже открыть в экселе? И при этом все изменения в таблице в квике будут так же отображаться в таблице в экселе?
При этом вы будете видеть в Excel лишь сохраненные до вывода в Excel. Такой вариант не пригоден для работы в реальном времени.
есть два варианта. 1) скачиваете историю сделок с открытых источников например с финам и собираете то, что Вам надо. 2) купить историю у специализирующейся на этом компании. ищите в инете и смотрите на сайте биржи.
Прежде всего предлагаем выполнить рекомендации указанные в сообщении #2 данного трэда. Также предлагаем обновиться до актуальной (9.3.3.3) версии, если у Вас версия ниже таковой. Если после проделанных действий проблема ещё будет актуальна, необходим будет сделать следующее:
2) как только программа зависнет, нужно из каталога с утилитой выполнить команду: procdump.exe -s 1 -n 30 -accepteula info.exe .\
3)после этого в каталоге, откуда выполняли команду, появятся DMP-файлы. Просьба создать архив директории терминала без *.txk ключей, выложить его и созданные DMP-файлы на какой-либо файлообменный сервер и на адрес quiksupport@arqatech.com прислать ссылку для скачивания.
Дополнительная просьба, в письме укажите, пожалуйста, ссылка на данную ветку форум, а также технические характеристики Вашей ОС.
добрый день! Именно «зависания» приложения не происходит. Происходит торможение, длинный отклик (2-5 секунды) при переходе по вкладкам либо отрисовке пунктов меню. Котировки на графиках и в стакане отображаются и обновляются оперативно. Заявки в темной теме после отправки выставляются по несколько десятков секунд, при этом приложение сохраняет работоспособность, тормозит, но сохраняет. В какой момент выполнять дамп, если приложение не висит, а тормозит? Если даже теоретически предположить, что в момент переключения на соседнюю вкладку оперативно вызвать процдамп, то он не успеет снять дамп с нужными данными, так как приложение уже закончит отрисововывать экран.
скажите, уважаемая поддержка, описанная в этой ветке проблема, у вас не воспроизводится? Это только у обычных пользователей такие грабли? Вы сами пробовали добавить в темной теме открытый интерес на фьючерс ртс и повыставлять заявки в период с 10 до 19? Или хотя бы попереключаться между вкладками и графиками?
попробуйте посмотреть используемые ресурсы в момент торможения. Попробуйте свернуть все окна c графиками, кроме одного.
AndyWise написал: Собственно есть 2 варианта источника тиковых данных цены сейчас. Это либо через OnAllTrade, либо через CreateDataSource + SetUpdateCallbac. Вопрос, какой поток меньше тормазит, более легковесный с точки зрения системы, брокера? Вроде по сути тоже самое, что лучше из практики?
Для начала возьмите индикатор. В функцию onCalculate приходят тики. Для вычисления Max/Min на интервале секунда используйте локальное время компьютера. синхронизируйте время компьютера с сервером точного времени, чтобы время компьютера точно совпадало с временем биржи.
Константин написал: Пользуюсь КВИКом более 10 лет, к программе привык, но то что нужно этого нет, много лишнего. Не ужели нельзя сделать, если я например хочу войти по акции в пробой, заведомо выставив условную заявку и при ее срабатывании выставлялся автоматически стоп-лосс. Недавно подключил аллерты, при достижении определенной цены приходит СМС, неужели нельзя чтоб уровень цены отображался на графике, или была какя нибудь метка, а лучше всего в таблице текущих параметров, по заданному алерту можно было бы изменять цвет инструмента. И самое что мне не хватает инструмента для рисования - это простого маркера с разной толщиной рисования.
Попробую пояснить: Как говорил Козьма Прудков "Бди в корень" ------------- Вот несколько простых вопросов и очевидных ответов на них, которые позволят Вам самостоятельно ответить на Ваши многочисленные "не ужели нельзя". ==================== Кто платит разработчикам КВИК? Брокер, который покупает их ПО. --------------------------------------------- Для какой цели сделан терминал КВИК? Чтобы клиент мог подать брокеру заявку и а тот эту заявку автоматически отправить на биржу. Именно так и указывает брокер в своем регламенте - КВИК - это программа для подачи заявок и плюс бесплатно наблюдения торгов на бирже. И ВСЕ. -------------------------------------------- Кто на форуме конючит постоянно про свои хотелки? клиенты брокера. Брокеру это пофиг. ------------------------------------------ Кому платят деньги клиенты? Платят брокеру. ----------------------------------------- А не прикольно, что клиенты платят брокеру, а просят бесплатные хотелки у разработчиков КВИК. ----------------------------------------- Подумайте об этом, прежде, чем просить халяву.
и еще... Применение брокерами сделок РЕПО для получения с вас процентов фактически лишает Вас права на купленные Вами акции на заемные средства. Хотя по закону заемные средства- это Ваши средства и распоряжаться ими имеете право лишь Вы. А купленные Вами акции - становятся Вашими лишь при записи их на счет depo. Но акций в конце дня у вас нет. Поэтому Вы не имеет прав ни на деньги заемные ни на акции. Но это устраивает ЦБ и все молчат о нарушении прав клиентов брокеров. Но это уже другая история.
nikolz написал: Основной доход брокера не в комиссии, а в использовании денег и бумаг клиентов.
На комиссии за маржинальные позиции брокер нехило зарабатывает. А в займы как раз даёт ваши средства. Или вам даёт взаймы Васины ))
Поясняю медленно. --------------------- комиссия брокера - это плата за совершенные на бирже сделки за Ваши деньги от имени брокера. Это и есть брокерская услуга. ------------------- Маржиналка - это предоставление заема (кредит) клиентам. Заем предоставляется под проценты. ---------------------- Т е за деньги и бумаги ,которые вам дают в заем начисляются проценты. -------------------------- Заем - это не брокерская услуга, а финансовая . Именно этим и занимаются банки. ----------------------- Проценты по займам брокер берет с Вас по сделкам РЕПО в конце дня - за перенос позиций по бумагам. ---------------------- комиссия по маржинальным сделкам - это комиссия по сделкам внутри дня. ------------------ Выше я Вам пытался объяснить, что основной доход брокера - это проценты по займам, т е как в банках. ------------------- Но в банках Вам на ваши средства дают процент на депозит ----------------------------- А брокер пользует Вашими средствами бесплатно (в настоящее время все же дает процент типа 0.0000x) ------------------------ Вот доход брокера по займам и есть основной доход. Ранее через фирмы-посредники РЕПО брокеры выводили прибыль от этого дохода чтобы не платить налоги. Так как счет денег клиентов забалансовый, то никто практически не контролирует. --------------------- Примерно так.
Кузьма написал: если я использую функцию getCandlesByIndex я получаю массив данных с VHLOC корректно(цены в данную секунду),но если я запрашиваю время последней свечи,то мне показывает только время открытия,я имею ввиду ,что какая секунда этой свечи он мне не выдаёт.Поковырялся в мануале,но ничего не нашёл
Все правильно - это же свечи. свечи - это функция сжатия данных. Она создается с постоянным квантом времени. Поэтому у свечи есть лишь время ее создания. Внутри свечи время не измеряется. Внутри свечи - это тики. т е конкретные сделки.
Старатель написал: К сожалению, движок этого чудо-форума не позволяет редактировать заголовки тем или сообщения. С учётом полученной раннее информации заголовок темы должен выглядеть так:
Высокая нагрузка CPU в QUIK 9 при вызове колбеков в скриптах, которые содержат много переменных или хранят большое количество элементов в таблицах.
_sk_, посмотрите мои сообщения на первой странице и комментарий Антона #16 . Суть в том, что сам по себе вызов колбеков при большом количестве хранимой информации создаёт огромную нагрузку вне зависимости от кода внутри колбека и параллельно выполняющейся работы в main. Отмечу, что объём хранимых данных (в байтах) не имеет значения. Нагрузка пропорциональна количеству данных. Обратите внимание также на тест в сообщении #19 . Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте. А тормоза в GUI, которые вы наблюдаете, - скорее всего уже следствие, а не причина.
ЗЫ: версии библиотек qlua.dll, lua53.dll, lua54.dll в QUIK 9.3.3 не изменились по сравнению с QUIK 9.3.1
Колбеки выполняются в основном потоке терминала КВИК, Поэтому, когда у Вас исполняется колбек терминал КВИК курит бамбук. Если Вашему main надо данные получаемые основным потоком, то ваш main тоже курит бамбук. и не важно сколько у вас ядер, все ждут основной поток, а тот ждет когда ваш колбек закончит ....