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

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

Страницы: Пред. 1 ... 24 25 26 27 28 29 30 31 32 33 34 ... 79 След.
Прерывание экспорта по DDE
 
Цитата
Михаил Филимонов написал:
Цитата
nikolz написал Вы экспортируйте своим сервером в свою прогу или  сервером Excel  в таблицу Excel.
------------------
У меня свой сервер для скрипта луа, вроде нет проблем.

А возможно из луа экспортировать таблицу "Купить/Продать", которая в Квике составляется из таблицы "Клиентский портфель" ?
в луа можно получить это :
getPortfolioInfo  -Функция предназначена для получения значений параметров таблицы «Клиентский  портфель», соответствующих идентификатору участника торгов «firmid» и коду  клиента
и это
getBuySellInfo -  Функция предназначена для получения параметров таблицы «Купить/Продать».
проблема с функцией getDepo
 
и еще
вот такое сообщение :
 
проблема с функцией getDepo
 
Добрый день,
тестирую функции на демо сервере.
Сделал лишь старт квика. т е ничего не покупал и не продавал.
-----------------
поясняю:
колбек OnParam принимает сделки:function OnParam(c,s)
Код
for i=1,#tparam do local t=tparam[i]; if t=="table" then if t[1]==14 and t[3]==s then return end end end
local t={14,c,s}; if #tparam==0 then tparam[1]=t; ESet(event); else table.sinsert(tparam,t); end
end 
и загружает clas и sec в таблицу tparam

фунция main  в цикле принимает значения из tparam и вызывает функцию getDemo
Код
Log:write("clas="..clas..",sec="..sec..",firm="..firm..",account="..account..",client="..client.."\n");Log:flush();
local t1=getDepo(client,firm,sec,account);
Log:write("type="..type(t1).."\n");Log:flush();

1 строка выводит в лог файл все параметры функции getDemo, которая вызывается  во 2-ой строке
3 строка - выводим в лог файл тип возвращенного значения t1
------------------
В результате получаем следующий кирдык:
---------------------
Таблица позиций по инструментам имеет вид:

т е в таблице есть лишь SBER c нулевыми значениями
================
А теперь смотрим лог файл
Код
 clas=CETS,sec=EURUSD000TOM
clas=CETS,sec=EURUSD000TOM,firm=MB1000100000,account=MB1000100002,client=10323
type=table
tim=29.6543,tim1=0.061899999999998

 clas=CETS,sec=USD000UTSTOM
clas=CETS,sec=USD000UTSTOM,firm=MB1000100000,account=MB1000100002,client=10323
type=table
tim=28.3573,tim1=0.041400000000007

 clas=CETS,sec=CNYRUB_TOM
clas=CETS,sec=CNYRUB_TOM,firm=MB1000100000,account=MB1000100002,client=10323
type=table
tim=26.3304,tim1=0.044000000000008

 clas=CETS,sec=USD000000TOD
clas=CETS,sec=USD000000TOD,firm=MB1000100000,account=MB1000100002,client=10323
type=table
tim=26.163,tim1=0.048399999999997

 clas=CETS,sec=EUR_RUB__TOM
clas=CETS,sec=EUR_RUB__TOM,firm=MB1000100000,account=MB1000100002,client=10323
type=table
tim=26.6879,tim1=0.0442

 clas=QJSIM,sec=ALRS
clas=QJSIM,sec=ALRS,firm=NC0011100000,account=NL0011100043,client=10323
type=table
tim=27.8828,tim1=0.052700000000005

 clas=QJSIM,sec=MSTT
clas=QJSIM,sec=MSTT,firm=NC0011100000,account=NL0011100043,client=10323
type=table
tim=27.8581,tim1=0.125

 clas=QJSIM,sec=PLZL
clas=QJSIM,sec=PLZL,firm=NC0011100000,account=NL0011100043,client=10323
type=table
tim=27.1135,tim1=0.051300000000001

 clas=QJSIM,sec=SBER
clas=QJSIM,sec=SBER,firm=NC0011100000,account=NL0011100043,client=10323
до последней строки инструменты в таблице позиций отсутствуют
в последней строке SBER и QUIK висит.
--------------------
Что не так?
Демо счет.
 
 
Демо счет.
 
Добрый день,
Сейчас на демо сервере отсутствуют фьючерсы как класс.
Заказывал подключение с ними.
Так должно быть?
Прерывание экспорта по DDE
 
Цитата
Михаил Филимонов написал:
Цитата
Anzhelika Belokur написал:
Михаил Филимонов , добрый день.

Уточните, настроены ли фильтры в таблице  "Текущие торги"? Если да, то какие? А так же поясните подробнее, что значит "пропадает экспорт"? Для наглядности желательно со скриншотами.
Добрый вечер!

Фильтров нет (таблица по умолчанию)
В таблице 100 фьючерсов, при начале работы все данные по фьючерсам из таблицы экспортируются, а через некоторое время (бывает минуты, бывает 1 - 2 часа)
перестают экспортироваться данные по произвольным инструментам.
Данные других фьючерсов передаются.
Нет никаких ошибок и зависаний.
Сегодня обновился до 10,0,1,18 все тоже самое.  
Невозможно представить скриншот, странно, что Вы не знаете, что в такой ситуации скриншот бесполезен.

К участникам форума
У меня только такое поведение терминала, при выводе данных по DDE ?
Вы экспортируйте своим сервером в свою прогу или  сервером Excel  в таблицу Excel.
------------------
У меня свой сервер для скрипта луа, вроде нет проблем.
Что еще за М60 в периоде построения графика??
 
Цитата
serggio написал:
И что еще за проблема вставки картинок из буфера в предыдущем сообщении?
А где Вы прочитали, что это показание часов?
Написано -"Интервал"  А интервал может быть и 60 минут и 600 минут.
-------------------
Трудно быть бестолковым.
Ошибка присвоения значения переменной
 
Цитата
VargoR написал:
dis_not = true  and false or true
dis_not = false and false or true
дают одинаковые значение true?
Ведь должны давать разные.если сделать такКод
dis_not = true  and true or false
dis_not = false and true or false  

приоритет логических операций  определяется их порядком слева на право.
--------------------------
В данных примерах первым исполняется AND потом  OR
true and false ==false
true and true==true
-----------------
в итоге имеем
dis_not = (true  and false) or true=(false or true)=true
dis_not = (false and false) or true= true
---------------------
dis_not = (true  and true) or false=true
dis_not = (false and true) or false =(false or false)=false
-----------------
в результат  всех операторов :
true true
true false
=================
Резюме:
Автор не знает булевой алгебры.
читайте учебники.
По некотрым акциям - формируются не все интервалы свечи
 
Цитата
Quikos_1 написал:
Здравствуйте,

По некоторым акциям - формируются не все интервалы.

Для примера: TQBR: ZILL

В самом Квике на графике интервалы 1 и 3 минуты не формируются - окно просто черное.
А вот с 5 минутным интервалом без проблем.

Это так и должно быть или такое поведение допускается или это ошибка ?
вы об этом ?
 
На разных интервалах Quik показывает графики только за сегодня
 
Цитата
D7DSk написал:
Цитата
nikolz написал:
Сессия по фьючерсам начинается с момента клиринга.Т е торги сегодня по фьючерсам начались в пятницу вечером.
Отсортировал по дате, вчерашняя вечерняя сессия  выглядит в ТОС как аукцион открытия, но расписание MOEX показывает старт торгов срочного рынка в 9:00  https://www.moex.com/ru/derivatives/
Наверное клиринги  вечерней и следующей уиренней/дневной сессии совмещены и проводятся сегодня днём. Других причин включать вчерашние сделки в ТОС за сегодня пока не вижу.  
Вы не придумывайте, а ищите в документах биржи.
я этот вопрос выяснял лет десят назад. с тех пор ничего не изменилось.
На разных интервалах Quik показывает графики только за сегодня
 
Цитата
D7DSk написал:
После перезагрузки принципиальных изменений нет, стык между текущей сессией и прошлой немного сместился от текущего времени сервера (скриншот 7)
Все правильно.
Сессия по фьючерсам начинается с момента клиринга.
Т е торги сегодня по фьючерсам начались в пятницу вечером.
На разных интервалах Quik показывает графики только за сегодня
 
Цитата
D7DSk написал:
Цитата
nikolz написал:
У вас на первом тики - а они всегда лишь сегодня.
у сбера сегодня  30.01 отображаются тики за 27.01.2023  , подробности в теме  https://forum.quik.ru/messages/forum1/message68048/topic7894/#message68048
перезапустите квик.
чтобы так не получалось надо запускать квик не раньше,
чем за 10 минут до начала торгов особенно в понедельник.
Такая фишка у сбербанка.  
На разных интервалах Quik показывает графики только за сегодня
 
и еще
на первом фьючерсы - а они обычно живут 3 месяца
а на втором акции -живут пока живет фирма  
На разных интервалах Quik показывает графики только за сегодня
 
Цитата
D7DSk написал:
На разных интервалах (перебрал все доступные) Quik показывает графики только за сегодня, а на другой вкладке такой проблемы нет - масштабирует по оси времени.  
У вас на первом тики - а они всегда лишь сегодня.
Обновления Quik, Работал на 7 версии после обновления пишет о повреждении.
 
Цитата
vladindre написал:
При отсутствии класса Фьючерсы пропали мои ранее выставленные стоп-заявки.
Сейчас я нахожусь на откатанной версии и все в порядке.
Для Вашего предложения мне надо опять все заломать , а потом вернутся назад.
Уж поверьте мне на слово. Пока я чувствую себя комфортно.
Лучше подожду следующие 2-3 обновления и потом решусь опять обновиться.(может быть)
Бесплатный совет.
вы можете не обновлять, а установить в новой папке.
И запустить и настроить .
старая версия тоже будет рабочая.
Запускать можно лишь одну.
-------------------
Но ставить версию 9 не рекомендую
Ставил три раза и возвращался на 8.7.  
жду 10-ю.
DDE export работает только в Excel, DDE export работает только в Excel
 
Цитата
Hius74 написал:
Я использую собственный DDE сервер. Если я вводу в поле DDE сервера отличное от excel, то QUIK не дает выводить во внешние системы.
имя сервера определяется в вашей программе.
если оно не excel,
то предположу,
что у вас ошибка в программе и ваш сервер
либо не регистрируется ОС,
либо не работает колбек функция.
---------------
поставьте контрольную печать в функции открытия сервера и в колбеке.
Кривые шибки в QLua
 
Цитата
Павел Bosco написал:
Уф, после долгого отдыха доделал таки тест кейс, который доказывает что действительно в Quik есть мьютекс на lua_lock/lua_unlock.
Моя ошибка в  прошлый раз  было предположение что sleep в Quik Lua - это функция на lua. Вот и нет, это cfunction.
Поэтому вызов её с любым большим значением из нескольких потоков к блокировке не приводит.
Если я поменял тест: сделал два потока в C++, которые обращались в CustomSleep на Quik Lua, одновременно. А в CustomSleep я просто сделал очень большой цикл.
В итоге поток Б ждал возврата потока А из lua CustomSleep. Блокировка налицо, хотя в моем C и моем Lua её нет.

Итак схема работы как я её сейчас вижу, ещё раз:
Quik Lua обычный работает в однопоточном режиме (+ колбэки), под единой блокировкой.
При обращении из lua в C функцию (любая ваша собственная библиотека dll), блокировка снимается, при возвращении оттуда - снова возвращается блокировка.
Если же из C функции идет вызов другой функции по pcall например, то при обращении в Lua блокировка тоже навешивается, а при возврате - снимается.
всё просходит попарно.
Так же блокировки вешаются при обращении к любым функциям которые меняют стек, типа lua_pop. Но не к tonumber (о чем тут начался пост), потому что он стек не меняет.

Почему это было важно мне? Хотел понимать, где могут блокироваться потоки из C, которые конкуретно, но под моей собственной критической секцией обращаются в Lua.
Возможно, в моем случае эта самая дополнительная критическая секция не очень-то и нужна, или надо очень аккуратно выстраивать работу, чтобы не пересекать блокировки в Quik Lua и мои собственные.
На форуме я выкладывал результаты теста исполнения обращения к общему глобальному стеку и там все предельно ясно.
------------------------
По моим тестам ситуация следующая.
-------------------------
Функция main запускается в отдельном потоке, но имеет общий глобальный стек с основным потоком, в котором запускаются колбеки.
Поэтому, если Вы обращаетесь к глобальным переменным , то обращение к этим переменным реализуется через критические секции
и следовательно майн и основной поток будут ждать друг друга т е буде блокировка.
--------------------
Локальные стеки у луа машин майн и основного потока разные и следовательно синхронизация потоков при обращении к ним не требуется и нет блокировки.
==================

Кроме того, уже писал на форуме, что тестил работу пула потоков.
------------------
Тест состоял в следующем.
Новый поток активировался для нового колбека
или для колбека активировался новый поток,
если предыдущий вызов колбека еще не был полностью обработан потоком.
---------------
В тесте при совершении сделки по инструменту выставлялась заявка и после ее регистрации она снималась.
-----------------
В итоге тест работал 4 часа по 200 инструментам выставил и снял более 200 тысяч заявок.
в процессе выполнения активировалось максимум 12 потоков (1 раз) , наиболее часто активировалось 5 потоков.
=================
И все работало без проблем и ошибок.
===============
 
DDE export работает только в Excel, DDE export работает только в Excel
 
ограничений нет.
Я вывожу в свои DDE сервера, которые обзываю как хочу.
Максимальный лот для фьючерса., Подскажите формулу расчета максимального лота для фьючерсов.
 
https://www.i-tt.ru/articles/kak-rasschitat-stoimost-fyuchersa
Индикаторы RSI и EMA на графике
 
вот функция для расчета и расчет для 3-х значений:
Код
function EMA(y,x,N,i)     if i==1 then return x;  else    return (y*(N-1)+2*x)/(N+1); end
----------
--Вот есть три цены закрытия:
local N=3;
x=193.6 i=1
y=EMA(y,x,N,i)    print(y)
x=193.98 i=2
y=EMA(y,x,N,i)     print(y)
x=200.16 i=3
y=EMA(y,x,N,i)     print(y)

результат:
193.6
193.79
196.975
Не про Сбербанк., Доступ к торгам всеми валютными парами на MOEX_или_SPBE
 
Цитата
D7DSk написал:
Цитата
nikolz написал:
у сбербанка есть все валюты имеющиеся на мос бирже
nikolz,  как  у сбера в quik можно посмотреть графики цен семейства GLDRUB_TOD, GLDRUB_TOM, GLDRUB_SPT, GLD_TODTOM ... ?  

https://www.moex.com/s3041
https://mfd.ru/marketdata/ticker/?id=59909
Очевидно у Вас нет средств для торговли на валютном рынке, поэтому Вам этот класс не подключили.
В любом случае, свяжитесь с брокером и узнайте что Вы должны сделать чтобы этот класс Вам подключили.
------------------
класс: МБ Валюта: ETC(металлы)
Индикаторы RSI и EMA на графике
 
и еще...
При обработке сигналов есть такое понятия как окно наблюдения.
так вот на приведенном вами графике сигнал слева от первого видимого значения свечи считается равным нулю как и сигнал справа от текущего  видимого значения
т е мы предполагаем что применяем прямоугольное окно.
в итоге у вас не два отсчета для расчета третьего, а бесконечное множество отсчетов слева от третьего, но лишь два из них не равны нулю.
поэтому можно считать что у вас всегда отсчетов столько, сколько желаете, т е в вашем случае их N+1 даже для первой свечи на графике.
-------------------
читайте учебники.
Индикаторы RSI и EMA на графике
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
от периода зависит весовой коэффициент "альфа"
читайте учебники
От периода так же зависит, то с какой свечи от начала будет произведен расчет. Можете читать учебники или не читать - это ни как не изменит данный факт.
Рассказываю начальные понятия.
-------------------
В цифровых фильтрах, как и в аналоговых есть понятие - "переходной процесс"
Т е это процесс установления на выходе EMA сигнала равного входному при условии что входной сигнал постоянный.
время за которое сигнал на выходе станет равный входному - это время запаздывания сигнала или время переходного процесса.
---------------------
Это время зависит от периода т е от N но не равно ему.
-------------------
Вы спросили про расчет значения на выходе EMA, а не про время запаздывания (установления) сигнала.
===============
поэтому повторяю еще ...надцатый раз
Для расчета достаточно одного значения на входе и предыдущего значения на выходе.
Т е число отсчетов для расчета не зависит от периода.
=====================
От периода зависит время запаздывания сигнала на выходе.
Время запаздывания больше чем период.
--------------------
Точно равенство сигнала на выходе сигналу на входе будет в бесконечности.
-------------------------
Фильтр EMA - это фильтр с бесконечной импульсной характеристикой.
В аналоговом варианте - это RC цепочка.
Период - это постоянная времени этой цепи.
Выходной сигнал EMA - это эквивалент заряда емкости через резистор.
------------------
Если Вы подадите на вход EMA  постоянный уровень например 100, то на выходе сигнал будет изменятся от 0 до 100,
но 100 будет лишь в бесконечности.
Индикаторы RSI и EMA на графике
 
от периода зависит весовой коэффициент "альфа"
читайте учебники
Индикаторы RSI и EMA на графике
 
 
Индикаторы RSI и EMA на графике
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
 
Цитата

Вы увидите, что там лишь 3 значения - текущий входной предыдущий входной и предыдущий выходной.
Неправильно.
------------------------
Для расчета RSI и EMA для третьей с начала свечи с  периодом 3,  нужно кол-во свечей равное: period + 1,  то есть в данном  случае для расчета нужны 4 свечи с указанным периодом.
Посмотрите формулу для EMA
Индикаторы RSI и EMA на графике
 
Если есть желание разобраться в математике обработки сигналов,
то для начала почитайте учебник,
чтобы иметь хотя бы начальные знания по цифровой обработке сигналов.
--------------------
Например, можно почитать это:
http://www.pselab.ru/Books/Gold_Rader_1973.pdf
Индикаторы RSI и EMA на графике
 
Цитата
Quikos_1 написал:
Цитата
nikolz написал:
НЕправильно
-------------------  
В цифровой обработке сигналов эти индикаторы называются БИХ фильтрами.
Новое значение таких индикаторов рассчитывается на основе предыдущего значения и приращений значений на входе.
Так как это простейшие фильтры ,то для их расчета достаточно приращения текущего значения относительно предыдущего.
Таким образом,   необходимое для расчета число отсчетов на входе не зависит от периода.
Что именно "Неправильно" ?

Вот есть три цены закрытия:

193,6
193,98
200,16
Рассчитайте "Правильно" значение EMA для третьей свечи с периодом 3.
мне лень считать.
возьмите формулу и посмотрите какие значение туда ставить.
Вы увидите, что там лишь 3 значения - текущий входной предыдущий входной и предыдущий выходной.
т е два входных отсчета.
если непонятно, то покажите свой расчет.
Скажу, где ошибка.
В Квике не исполняется заявка на сдедку
 
все параметры после = должны быть строками
Индикаторы RSI и EMA на графике
 
НЕправильно
-------------------  
В цифровой обработке сигналов эти индикаторы называются БИХ фильтрами.
Новое значение таких индикаторов рассчитывается на основе предыдущего значения и приращений значений на входе.
Так как это простейшие фильтры ,то для их расчета достаточно приращения текущего значения относительно предыдущего.
Таким образом, необходимое для расчета число отсчетов на входе не зависит от периода.
Ошибка подключения, Ошибка подключения БКС оператор интернета Билайн
 
попробуйте на компе очистить кеш DNS.
как см в интернете.
не могу войти в Квик, проблемы со входом
 
надо снять флаг "только для чтения" у файлов в распакованной папке.
Как работать с битовыми флагами?, Как получить бит из битогового флага?
 
Цитата
awkozlov написал:
Код
   function   CntTradesSellPosition (zCLASSCODE,zSECCODE)
cnt =  0 
    local  TableName =  'trades' 
    local  rows_total  =   getNumberOf (TableName)
    for  r = rows_total -  1 ,  0 ,  -  1    do 
       local  table_row =  getItem (TableName,r)
       --message(tostring(table_row.flags));stop() 
       if  table_row.class_code =  = zCLASSCODE  and  table_row.sec_code =  = zSECCODE  and  table_row.flags =  =  36   then   -- сделка продажа 
         cnt = cnt +  1 
       end 
    end 
 return  cnt
 end   

Пишу как самоучка, но мне как-то сложно (невозможно) вытаскивать из битовых флагов эти нужные значения, которые там закодированы в двоичной системе.
В частности мне нужно определить только тип заявки ордера Buy или Sell.

Я так и не нашёл нигде пример алгоритма получения этих битовых значений, поэтому беру 10-тичные числа, но это кривовато, ибо по причине изменения других свойств и числа будут другие.
Вот я методом научного тыка определил коды для продаж  и второй флаг (бит) принимает разные значения:
64 = 1000000
36 = 100100
28 = 11100
1048604 = 100000000000000011100 - Продажа от стоплосса

Прошу, измените мой код, чтобы он нормально обрабатывал эти битовые флаги.

В документации в скобках указано значение в 16 формате для каждого бита (до 8 это тоже самое что и в 10 формате)
если надо несколько бит то складывайте эти значения
Флаги для таблиц «Заявки», «Заявки на внебиржевые
сделки»

Флаг установленЗначение
бит 0 (0x1) Заявка активна, иначе – не активна
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то  заявка исполнена
бит 2 (0x4) Заявка на продажу, иначе – на покупку
бит 3 (0x8) Заявка лимитированная, иначе – рыночная
бит 4 (0x10) Исполнить заявку по разным ценам
бит 5 (0x20) Исполнить заявку немедленно или снять (FILL OR KILL)
бит 6 (0x40) Заявка маркет-мейкера. Для адресных заявок – заявка отправлена контрагенту  
бит 7 (0x80) Скрытая заявка
бит 8 (0x100) Снять остаток
бит 9 (0x200) Айсберг-заявка
бит 10 (0x400) Заявка отклонена торговой системой
бит 20 (0x100000) Поле «linkedorder» заполняется номером стоп-заявки

Обновление пользовательской таблицы/окна
 
поясняю, для тех кто пишет на "чистом" луа.
---------------
в исходном примере
операторы типа   _G.QTABLE_CLOSE  заменил на QTABLE_CLOSE
так как исходная запись это - масло масленое
_G  - это глобальная таблица
а QTABLE_CLOSE  - это функция в ней
поэтому _G.QTABLE_CLOSE   это тоже самое , что просто QTABLE_CLOSE
------------------
такая запись используется в создании модулей , а здесь не модуль, поэтому смысла в ней нет.
Обновление пользовательской таблицы/окна
 
если взять пример выше и убрать последний параметр в функции SetCell и Highlight , то все обновляется.
Может пример другой кто-нибудь напишет?
Код
local sec_code      = 'SBER'
local class_code    = 'QJSIM'

local SeaGreen      = 12713921  --  RGB(193, 255, 193) нежно-зеленый
local RosyBrown     = 12698111  --  RGB(255, 193, 193) нежно-розовый
local getParamEx    = getParamEx
local GetCell       = GetCell
local Highlight     = Highlight
local SetCell       = SetCell

local function get_price()
if flag then
        local last_price = tonumber(getParamEx(class_code,  sec_code, 'LAST').param_value) or 0
        local lp = GetCell(t_id, 1, 0).value or last_price
      SetCell(t_id, 1, 0, tostring(last_price))--, last_price)
   --   if lp < last_price  then      Highlight(t_id, 1, 0, SeaGreen, 0, 1000)
   --   elseif lp > last_price then     Highlight(t_id, 1, 0, RosyBrown, 0, 1000)
--      end
    end
flag=false
end

function OnParam(class, sec)
     if t_id and sec == sec_code and class == class_code then    flag=true  end
end

function CreateTable()

    t_id =AllocTable()
    AddColumn(t_id, 0, "price", true, QTABLE_DOUBLE_TYPE, 15)
    CreateWindow(t_id)
    SetWindowPos(t_id, 90, 120, 170, 100)
    InsertRow(t_id, 1)
    InsertRow(t_id, 2)
end

local function Animate(sym,maxSym)
    if sym and maxSym>string.len(sym) then sym=sym..'|' else sym='|' end
    return sym
end


function event_callback(_, msg)
    if (msg == _G.QTABLE_CLOSE) then
        isRun = false
    end
end

function OnInit()
    CreateTable()
    SetTableNotificationCallback(t_id, event_callback)
   flag=true
   get_price()
end

function main()
    ds   = CreateDataSource(class_code, sec_code, 1)
    isRun = ds ~= nil
    if ds then
        ds:SetEmptyCallback()
    end


    while isRun and ds do
   get_price();
    sym=Animate(sym,20)
     SetCell(t_id, 2, 0, sym, 0)
    sleep(100)
    end
end
Обновление пользовательской таблицы/окна
 
 у SetCell 5 параметров
---------------------------------------1  ---------------2---------------3----------------4-----------------5-----------
BOOLEAN SetCell(NUMBER t_id, NUMBER key, NUMBER code, STRING text, NUMBER value)
если оставить 3 ,то что тогда будет обновлять ячейку?
----------------
Но спорящим видимо один ...
продолжайте
=======================
Тест зависания терминала QUIK 10.0.1.18
 
_sk_,
Вы не ответили, я исправил Ваш тест.
Что теперь не так?
Тест зависания терминала QUIK 10.0.1.18
 
TGB,
исправленный скрипт не виснет
Вы вместо брызжания проверьте тест.
-------------------
если есть другие проблемы , то пишите я исправлю.
----------------------
И очевидно, и у кого что болит тот о том и говорит
Тест зависания терминала QUIK 10.0.1.18
 
Цитата
TGB написал:
Цитата
nikolz написал:
_sk_ ,вот Ваш тест с исправленными Вашими ошибками. Работает без проблем.
    Вы до сих пор не поняли, что у _sk_ нет проблем со скритом ( он делает flag  =   true и все у него хорошо ). Его интерисует странное поведение скрипта когда flag =false и это нормально.
  Вообще, из того что видно невооруженным взглядом, у вас постоянный зуд отметиться на форуме (как у собачки, выпущенной на прогулку  :: ). Зачем вы работаете на форуме «прокладкой» между комментариями?
  Явно, что у вас проблемы с вашими комплексами и вы пытаетесь здесь их скомпенсировать. Но вы до сих пор не научились выделять фрагменты текстов комментариев, которые вы цитируете. Вас можно пожалеть (девочки точно не любят), но вы постоянно спамите на форуме и скоро переполните его базу  :: .  Меня это беспокоит и только поэтому я на вас реагирую  :: .
Вы не поняли, я исправил у него ошибки и можете делать хоть faLSE  
Проблема Сервера QUIK?, Вопрос риторический
 
Сегодня в Сбербанке повторилось.
Дата торгов была вчера. И естественно вчерашний день пропал.
--------------
Проблема решилась лишь после разрыва связи , длительного ожидания и установки связи заново.
----------------
Так как такую и подобные проблемы наблюдал неоднократно, то хочу высказать свое предположение о ее источнике.
===================
проблема возникает, если установить соединение до начала торгов, либо в момент начала.
Предположу, что при этом происходит не полная загрузка с сервера начальных данных, но после начала торгов сервер не проверяет некорректность данных у клиентов
а продолжает работу с неполными либо с неверными данными.
============
Полагаю, это недоработка разработчиков QUIK.
Но это лишь мои предположения.
===============
Проблема решается иногда лишь перезагрузкой но после начала торгов и длительного ожидания.
Индикатор со сдвигом влияет на отрисовку lua индикатора без сдвига
 
Aleksei,
попробуйте у индикатора убрать флаг



 
Проработка стратегии на виртуальной торговле, Формирование стратегии, виртуальная торговля
 
если бы сделали возможность подгружать в архив данные из файлов , то было бы совсем хорошо.
но и без этого все вполне работает и историю можно подгружать но без графического изображения.
Проработка стратегии на виртуальной торговле, Формирование стратегии, виртуальная торговля
 
в квике можно тестировать стратегии на истории.
например , тестирование стратегии по дням, месяцам и по всей истории в QUIK и в реальном времени.

 

 
Не про Сбербанк., Доступ к торгам всеми валютными парами на MOEX_или_SPBE
 
Цитата
Г.Растопаефф написал:
Сбербанк предоставляет торговый доступ только к валютным парам USD_RUB и EUR_RUB. Посоветуйте пожалуйста российского брокера без кухни, который  поддерживает QUIK и предоставит доступ к торгам по всем или большинству  валютных  пар  Мосбиржи или СПбиржи.
у сбербанка есть все валюты имеющиеся на мос бирже
Тест зависания терминала QUIK 10.0.1.18
 
_sk_,
вот Ваш тест с исправленными Вашими ошибками.
Работает без проблем.

Код
local flag =false -- можно и false и true

local foregroundColor = RGB(0, 0, 0)
local backgroundColor = RGB(192, 255, 192)

local function setTableColors(foregroundColor, backgroundColor)
    local nRows, nCols = GetTableSize(tableId)
    if nRows and nCols then
        for row = 1, nRows do
            for col = 1, nCols do
                SetColor(tableId, row, col,
                        backgroundColor, foregroundColor,
                        backgroundColor, foregroundColor)
            end
        end
    end
end

local function ensureWindowOpened()
    if tableId == nil then     return   end
    if IsWindowClosed(tableId) then
        CreateWindow(tableId)
        SetWindowPos(tableId, 0, 0, 300, 100)
        SetWindowCaption(tableId, "hang_test")
        InsertRow(tableId, 1)
        InsertRow(tableId, 2)
        SetCell(tableId, 1, 1, "11")
        SetCell(tableId, 1, 2, "12")
        SetCell(tableId, 2, 1, "21")
        SetCell(tableId, 2, 2, "22")
        SetSelectedRow(tableId, 1)
    end
    setTableColors(foregroundColor, backgroundColor)
end

function OnInit(scriptPath)
    tableId = AllocTable()
    AddColumn(tableId, 1, "col1", true, QTABLE_STRING_TYPE, 5)
    AddColumn(tableId, 2, "col2", true, QTABLE_STRING_TYPE, 5)
    SetTableNotificationCallback(tableId, function(tId, msg, par1, _)
        if msg == QTABLE_SELCHANGED then
            SetSelectedRow(tId, 1)
        end
    end)
    ensureWindowOpened()
end

local function run()
    ensureWindowOpened()
    if tableId then
        SetSelectedRow(tableId, 2)
    end

end

function OnStop(flag)
   DestroyTable(tableId);
    interrupted = true
end

function main()
    message("STARTED", 1)
    while not interrupted do
        run()
       if flag then
            sleep(0)
        end
    end
    message("SHUTDOWN", 1)
end

 
Тест зависания терминала QUIK 10.0.1.18
 
исправьте ошибку в скрипте и сделайте так:
Код
function main()
    message("STARTED", 1)
    while not interrupted do
        run()
       sleep(10)
    end
    pcall(closeWindow)
    message("SHUTDOWN", 1)
end
и читайте больше учебники а не треп на форуме.
Тест зависания терминала QUIK 10.0.1.18
 
"Чистый луа" к пустой голове прикладывать бесполезно.
Тест зависания терминала QUIK 10.0.1.18
 
в колбеке
в этой функции Вы уничтожаете окно
----------------------------
local function closeWindow()
   local t = tableId
   tableId = nil
   if t then
       DestroyTable(t)
   end
end
------------------
А в main вы уничтожаете nil.
Очевидно у Вас все вылетает по ошибке
и вы вместо того чтобы правильно сделать ставите pcall
----------------
Т е не зная причину Вы блокируете сообщение об ошибке.
полный дилетантизм.
Тест зависания терминала QUIK 10.0.1.18
 
зачем закрывать окно и в колбеке и в main?
----------------------------
function OnStop(flag)
  pcall(closeWindow)
   interrupted = true
end

function main()
   message("STARTED", 1)
   while not interrupted do
       run()
       if flag then
           sleep(0)
       end
   end
  pcall(closeWindow)
   message("SHUTDOWN", 1)
end
====================
Тест зависания терминала QUIK 10.0.1.18
 
читайте внимательно документацию прежде чем писать тесты.
----------------
Например,
OnStop - Функция вызывается терминалом QUIK при остановке скрипта из диалога  управления и при закрытии терминала QUIK.

Функция возвращает количество миллисекунд, которое дается скрипту на  завершение работы.

Если функция не возвращает число, то таймаут завершения  работы скрипта остается равным 5 секундам.

По истечении интервала времени, данного скрипту на завершение работы,
функция main() завершается принудительно. При этом возможна
потеря системных ресурсов.

=======================

Т е Вам дали время на завершение потока майн

Там и надо закрывать окна. А Вы делаете это в колбеке.

Вы это где прочитали?

Страницы: Пред. 1 ... 24 25 26 27 28 29 30 31 32 33 34 ... 79 След.
Наверх