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

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

Страницы: 1 2 3 4 5 6 След.
Торговля в выходные
 
Какая прелесть.
Торговля в выходные
 
Цитата
Karina Dmitrieva написал:
Не понятно какой параметр мы должны добавить в ТТТ, чтобы Вы его получали с помощью getParamEx.
Предложенные текущие параметры STATUS и TRADINGSTATUS судя по всему Вам не подходят.
Параметры, которые Вы видите в ТТТ, едут напрямую с биржи в Рабочее место QUIK, соответственно если на бирже будет транслироваться отдельный параметр для инструментов дополнительной сессии выходного дня, то и мы сможем его показывать в Рабочем месте QUIK.
Мне жаль, что вам не понятно, попробую объяснить. В TTT есть параметры MORN_SESS_ALLOW и EV_SESS_ALLOWED которые  по сути являются флагами разрешения
каждого торгуемого инструмента для соответствующих сессий. Полагаю биржа не позднее пятницы такой флаг для торгов в выходные дни начнет отдавать и нам очень
хотелось бы его увидеть в ТТТ не сильно позже .
Торговля в выходные
 
Цитата
Nikolay написал:
Они рекомендую как раз два параметра STATUS и TRADINGSTATUS. Первый не все брокеры транслируют. Второй, вроде, все.

Если для параметра TRADINGSTATUS вернулся result == '1', то можно увидеть идут ли торги по значению param_value из возвращаемой таблицы.
Здесь на форуме были как-то написаны значения.

Правда для срочного рынка надо еще смотреть на параметр CLSTATE.
Nikolay, у меня замены торговых инструментов делаются в предторговый период. При этом проверяются MORN_SESS_ALLOW, EV_SESS_ALLOWED и FULLCOVEREDFLAG.
Я полагаю, что теперь этот набор необходимо дополнить чем-то типа SUNDAY_SESS_ALOWE, иначе будем городить костыли.


Как пользоваться параметром  TRADINGSTATUS я как бы в курсе.
Торговля в выходные
 
Цитата
Karina Dmitrieva написал:
Вам стоит уточнить у Вашего брокера будет ли предоставлен доступ к серверу и возможность торговли в выходные дни, а также об особенностях торговли.

Цитата
Ну прежде всего допуск тикеров к торговле в выходные т.к. биржа заявила что не все инструменты будут допущены.
Рекомендуем смотреть в ТТТ на следующие параметры "Статус торговли инструментом" (Status) и "Состояние сессии" (TradingStatus).
Большое спасибо Катерина за развернутый ответ.
 Я порекомендую брокеру уточнить у биржи будет ли ему представлен доступ к к торговле в выходные дни.
А сам буду каждое субботнее  утро в 7-00, 10-00 и в 19-00 проверять статус каждого тикера  составлять список инструментов
допущенных к торговле на отдельной бумажке и потом из нее создам для робота таблицу рекомендуемых тикеров на воскресенье.
Но может все-таки это будет параметр для getParamEx?
Торговля в выходные
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, Kolossi,

уточните какой параметр ожидаете увидеть в ТТТ?
Ну прежде всего допуск тикеров к торговле в выходные т.к. биржа заявила что не все инструменты будут допущены.

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

"1 марта 2025 года на рынке акций Московской биржи стартуют торги в выходные дни в экспериментальном режиме"

Параметр в ТТК на эту тему будет.?
getParamEx актуальный список param_name
 

Дождались...

"1 марта 2025 года на рынке акций Московской биржи стартуют торги в выходные дни в экспериментальном режиме"

Параметр в ТТК на эту тему будет.?
Установить ширину нулевой колонки таблицы, задать ширину колонки с номерами строк
 
Никак. Вам разреши ширину менять, так вы ее и убрать захотите.
Имена параметров ТТП и других данных торгового сервера MOEX
 
Цитата
Nikolay написал:
Проблема не в инструкции, а в невозможности выполнить действия, сформулированные там. В данном руководстве предлагается использовать платный продукт, который на данный момент не поддерживается на территории где работает терминал. И даже если бы поддерживался, предлагается ради получения имён параметров купить программный продукт за 6000 руб. Спрашивается - это как понимать? Т.е. вывести набор полей в инструкцию - так сложно, что пусть пользователи сами с этим возятся.
Похоже это вопрос к Роскомнадзору.
Новый период и время проведения торгов на бирже.
 
Цитата
ДмитрийР написал:
Цитата
Kolossi написал:
Еще бы кто рассказал как это выгрузить не имея Экселя (у меня Квик на Mac)
есть простой способ. настройки-программа-буфер обмена-формальные поля. далее капируем всё из таблицы и вставляем куда угодно. хоть в блокнот. там в полях столбцов будут нужные поля
Крутой лайфхак, спаибо!
Новый период и время проведения торгов на бирже.
 
Цитата
Nikolay написал:
Цитата
Kolossi написал:
Искренне рад за вас. Как замечательно, что коммерческий продукт российской фирмы опционально требует софт, запрещенный производителем к распостранению на территории РФ.
Я уже не раз писал об этом. У меня, например, MS Office нет. Нет желания платить деньги, а устанавливать сломанное тем более. Тем более, что есть бесплатный облачный от того же MS. Раза два в год открыть документы достаточно. Но точно это не нормально - устанавливать тяжеленный пакет с потенциально опасными приложениями (вспоминаем про исполнение скриптов даже не открывая файл) только для того, чтобы узнать формальное описание полей. Мне проще собрать DDE сервер на С для этой задачи. И всё это потому что их описания нет в документации.
При этом и в Python и в Lua полно библиотек, которые выведут данные в .xls файл легко и просто, если уж приспичило. А уж чем этот файл открывать каждый сам решит.
Дождутся пока им за обязательную установку Exсel Минцифры нахлобучит.  
Новый период и время проведения торгов на бирже.
 
Цитата
Станислав написал:
Цитата
Я их получаю выгрузкой таблицы в excel через DDE
Искренне рад за вас. Как замечательно, что коммерческий продукт российской фирмы опционально требует софт, запрещенный производителем к распостранению на территории РФ.
Новый период и время проведения торгов на бирже.
 
Еще бы кто рассказал как это выгрузить не имея Экселя (у меня Квик на Mac)
Новый период и время проведения торгов на бирже.
 
Цитата
Станислав написал:
Таблица текущих торгов MORN_SESS_ALLOWE и EV_SESS_ALLOWED это?
Кто-нибудь расскажите мне, убогому, где находится секретная документация включающая эти param_name.
Раньше помню админ посылал на... QPile  с этими вопросами. Но нет там этого.
Новый период и время проведения торгов на бирже.
 
Прочел, что во втором квартале ммвб собирается ввести торговлю в выходные дни. Причем в эти дни доступна будет только дневная сессия и не для всех инструментов. Вот бардак-то получим...
Проблема с нажатием клавиш в таблице пользователя
 
Привыкайте
https://forum.quik.ru/forum10/topic8748/
Вопрос кодерам
 
nikolz, извиняюсь что бестолково сформулировал вопрос .
Я, балбес, разобрался. Вопрос закрыт.

В общем дело было так:
Пыльный скрипт из чулана написаный  несколько лет назад
в первых строках которого было
my_folder = getWorkingFolder().."\\scripts\\"
Скрипт спокойно запускается и работает в Квике под Lua 5.3, однако при попытке
проверки синтаксиса в SublimeText выдавался отлуп типа :  ...attempt to call a nil value (global 'getWorkingFolder').

В итоге вылечилось как и должно было :)
function OnInit()
   my_folder = getWorkingFolder().."\\scripts\\"
   ...
end
Причина тоже понятна - другая версия Lua в последнем релизе редактора.
Вопрос кодерам
 
Даже в голову не приходило.  Я под словом "пустышка" понял пустые функции с тем же именем в коде.
Можно подробнее про создание dll  и подключения его (куда?) для той же getWorkingFolder()?
Вопрос кодерам
 
Ну как-то ручные манипуляции с пустышками по 3 тысячам строк кода не особо вдохновляют. И даже если собрать все q-функции
в одном месте, то делать подмену после каждой правки то еще удовольствие.
Возможность подключение к редактору qlua буду изучать.
Я просто подумал может быть кто подскажет как в скрипте объявить функцию внешней и успокоить интерпретатор что, мол, она типа существует.
Вопрос кодерам
 
Sublime Text 3 при проверке синтаксиса путем тестовой прогонки скрипта (Build) ругается на встроенные функции qlua, например на getWorkingFolder().
Понятно, что встроенный интерпретатор Lua их не знает и считает не объявленными глобальными переменными.
Как его заткнуть? Мешает.
Как обрезать число типа float до 2х знаков после запятой
 
Цитата
VPM написал:
Еще один вариант.
Код
   function   round (num, idp)
    
     -- Если num некорректное, вернуть как есть 
     if   not  num  or  type(num) ~ =   "number"   then   return  num  end 
   
     -- Если idp не указан, использовать 0 (округление до целого числа) 
    idp  =  idp  or   0  
     local  mult  =   10 ^idp

     -- Округление для любого числа 
     local  rounded  =   math.floor (num  *  mult  +   0.5 ) / mult

     -- Если число целое, убрать .0 
     if  rounded  =  =   math.floor (rounded)  then 
         return   math.floor (rounded)
     end 

     return  rounded
 end 
  
local  rounded  =   math.floor (num  *  mult  +   0.5 ) / mult для отрицательных чисел не корректно
Как обрезать число типа float до 2х знаков после запятой
 
А в луа есть тип float?  :).  
Код
function round(num,idp) --функция округления
   if idp and num and type(num)=="number" and type(idp)=="number" then
      local mult=10^(idp or 0)
      local x=0
         if num>=0 then
         x=math.floor(num * mult + 0.5) / mult
         else 
         x=math.ceil(num * mult - 0.5) / mult
      end
      if x==math.floor(x) then x=math.floor(x) end -- обрезка нуля
      return x
   else
      return num
   end
end
MCFTR
 
А в каком разделе данных находится индекс полной доходности MCFTRR ?
Что-то я его никак не найду.
Пользовательская таблица.
 
А разве еще не зарегистрировано?
Ну тогда зарегистрируйте. Только не удаление, а отвязать его от ячейки и оставить в заголовке столбца.  
Пользовательская таблица.
 
Полагаю в вызове меню сортировки одновременно с вызовом колбэка при нажатии правой клавише мыши в окне ячейки таблицы.

Совсем не обязательно прикидываться не понимающим для того что бы послать пользователя, не стесняйтесь.
Пользовательская таблица.
 
Цитата
swerg написал:
Никак
https://forum.quik.ru/forum10/topic4921/

https://forum.quik.ru/forum10/topic5808/
Да, я наверное не четко сформулировал вопрос.
:
Когда работа функции SetTableNotificationCallback будет приведена в соответствие с заявленной в официальной документации?
Пользовательская таблица.
 
Господа разработчики,

объясните пожалуйста мне, убогому, как в функции SetTableNotificationCallback  пользоваться событиями

QTABLE_RBUTTONDOWN  и  QTABLE_RBUTTONDBLCLK, если вы намертво прикрутили к правому клику ячейки менюшку сортировки

без возможности его отключения?

И вопрос даже не в том, нахрена нужно это меню, когда в клике по заголовку есть точно такое же, а в том, как теперь средствами Lua cделать

хотя бы простейшее меню Y/N?    Проктологи, блт. ((

При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
За то за это время разработчики сделали для пользователей очень удобную весч - якорек на графике для переключения инструменов.
Классно, можно переключать десяток инструментов имея один открытый график. А то, что метки всех инструментов торчат
на одном и том же графике по всем углам, это не проблема шерифа.
Тикер в индикаторе.
 
Вылечилось перезаказом данных
Тикер в индикаторе.
 
Рано я обрадовался. С утра и до открытия сессии getDataSourceInfo().sec_code возвращает пустое значение ((
Как на графике нарисовать свечу?
 
Код
Settings= {
    Name = "Test",    
    line =
    {
        {
            Name    = "Candle",
            Color    = RGB(255, 0, 0),
            Type    =  TYPE_CANDLE,
            Width    = 1
        }
    }
    
}
function OnCalculate(i)
   local candle={O(i),C(i),H(i),L(i),V(i),T(i)}
   return ???
end
function Init()
    return 1
end
  Восемь лет назад разработчики сказали "никак в текущей версии". Версия тогда была 7-я. Что нибудь изменилось?
Тикер в индикаторе.
 
Ну вот. Со второй попытки в коде появилась функция getDataSourceInfo() за подсказку которой могу поблагодарить.
Остальной гарнир полностью лишний.  
Тикер в индикаторе.
 
Цитата
VPM написал:
Цитата
Kolossi написал:
Как в скрипте индикатора можно получить наименование тикера обрабатываемой свечи?
Нужно использовать функцию getSecurityInfo для получения информации о тикере. Вот пример:

local function getTicker(class_code, sec_code)
   local sec_info = getSecurityInfo(class_code, sec_code)
   if sec_info ~= nil then
       return sec_info.short_name
   else
       return nil
   end
end
Из этого совета можно сделать анекдот : " Что бы получить имя тикера нужно в параметре функции указать sec_code".
Такой же ответ мне выдал ChatGPT, вы не родственники?  
Тикер в индикаторе.
 
Споткнулся тут о проблему: в скрипте индикатора нужно обрабатывать свечи для бумаги прошедшей сплит по правилам, отличным от правил обработки других инструментов. Как в скрипте индикатора можно получить наименование тикера обрабатываемой свечи?
Снятие заявки от администратора (брокера)
 
У меня ведется локальная таблица заявок поданных роботом. При исполнении заявки она из таблицы убирается.
Периодически эта таблица проверяется на соответствие таблицы заявок квика. В случае несовпадения подается команда на удаление из списка или на снятие заявки в зависимости от типа расхождения.
Что изменилось в версии 11.1.1.11?
 
Цитата
Nikolay написал:
Так данные не обязаны прийти сразу. Установили соединение, ждем данные. Да. было бы хорошо иметь что-то определяющее приход данных. Но этого нет. Можно как минимум проверить, что загружены классы, счета, денежные лимиты. А потом уже заказывать потоки.
Не так. Всегда было: установили соединения, заказали данные, ждем данные.  Я не спорю насчет необходимости наличия флага прихода данных, но с тем, что бы при заказе данных выявлялось отсутствие наименования класса столкнулся впервые за много лет.
Что изменилось в версии 11.1.1.11?
 
Цитата
Nikolay написал:
Не уверен, что здесь что-то изменилось. Это просто данные с сервера шли долго (справочники, данные таблиц и т.д.) после установки соединения. На форме уже столько раз об этом спорили, просили разработчиков дать методы определения прихода пактов данных.
Дак вот же оно, в логе - сообщение о коннекте через целую секунду после IsConnected()==1. Что мешает этот признак выставлять после сообщения?

Опять костыли строгать ((
Что изменилось в версии 11.1.1.11?
 
Обнаружилось, что при запуске терминала вместе со скриптом и последующем коннекте функция IsConnected() возвращает значение 1 раньше чем устанавливается фактическая связь с сервером.

в итоге
Код
if isConnected()==1 then
  message("IsConnected "..tostring(Isconnected()))
  csi,error_desc=CreateDataSource("INDX", "IMOEX", INTERVAL_D1)
...
...
пишет в лог:
10:06:35 isConnected 1
10:06:35 csi Source error==>INDX - unknown class code.
10:06:36 Соединение установлено. Предыдущий вход был 07.03.2024 10:05:04 с адреса 92.62.59.149.

Что за ...? В этой части скрипта я уже лет пять ничего не трогал.
Приходится перезапускать скрипт после коннекта.
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
 
Цитата
Цитата
Вроде решил проблему принудительным обновлением CreateDataSource  перед самым началом торгов.
Код
   if  SEC_CODES[ 'm15' ][i]  =  =   0   or  SEC_CODES[ 'm15' ][i]  =  =   nil   then             
   SEC_CODES[ 'm15' ][i]  =   CreateDataSource (SEC_CODES[ 'class_codes' ][i],SEC_CODES[ 'sec_codes' ][i],INTERVAL_M15)
 end     
 --- обновление свечей утром перед стартом 
 if  (dt.hour  =  =   9   and  dt.min  =  =   59   and  dt.sec  <   20 )  then 
    SEC_CODES[ 'm15' ][i]  =   CreateDataSource (SEC_CODES[ 'class_codes' ][i],SEC_CODES[ 'sec_codes' ][i],INTERVAL_M15)
 end 
 local  m15d  =  SEC_CODES[ 'm15' ][i]
SEC_CODES[ 'pre_m15' ][i]  =  m15d:C(m15d: Size () -  1 )
  
Но вопрос остается открытым, можно ли так обновлять результат CreateDataSource? Не занимает ли это дополнительной памяти?
Это не перед самым началом торгов, а по окончанию предторговой сессии.  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Для того что бы понять нужна ли вам такая логика достаточно вставить в скрипт использующий эту библиотеку функцию выставления заявок и дать доступ к деньгам. Своим деньгам ;)
Предлагаю реализовать
 
Цитата
nikolz написал:
Поясняю ...
1) Зачем загромождать робота функциями индикаторов,
...
Тут соглашусь. Полагаю это только если не хватает смекалки использовать расчетную формулу.
Предлагаю реализовать
 
Никому такая реализация нахрен не нужна, что с ней не так?
Более быстрый перебор ключ - значение в таблице
 
Цитата
Nikolay написал:
Для массивов так, конечно, быстрее.
pairs применяют для хеш таблиц, где простой итератор не применить.
Я конечно пошутил, но все же полагаю что если (по возможности) использовать массив вместо хэш-таблицы то перебор будет быстрее.
Во всяком случае такие выводы у меня получились при сравнении обработки таблицы обезличенных сделок с приличным объемом.
in pairs проигрывает построчному перебору.
Более быстрый перебор ключ - значение в таблице
 
А вот так:

for k=1,#t do
 local v=t[k]
end

))
CalcBuySell. Что не так?
 
Пардон, это я про то, что просто вывести message(tostring(qty).." "..tostring(com))
CalcBuySell. Что не так?
 
Функция возвращает NUMBER,NUMBER. На всякий случай поставьте в message() tostring
Рассчитать текущую цену от ММ на начало торгов
 
Вряд ли. В этом случае на предторговой сессии нужно рассчитать и выставить заявку так, что бы она была последней в период приема заявок.
Cкорость обмена данными через файлы
 
Через файлы это хорошо, сам пользую. Как для передачи, так и для сохранения для последующего запуска. Вот только бэкапится приходится т.к. при коллизиях
и вывыливании терминала в дамп файлы частенько бьются. А поскольку в файл писать приходится часто это становится проблемой.
Тормоз подключения тиков
 
Цитата
Anton Belonogov написал:
nikolz, добрый день.

Увеличенное время объясняется разницей в запрашиваемом объеме данных.
Да ладно )).  Если посмотреть размеры получаемых тиковых баз, то там совсем не космические объемы, а по некоторым инструментам вообще смешные.
Обезличенные сделки. Подписка/отписка
 
отправил
Страницы: 1 2 3 4 5 6 След.
Наверх