s_mike@rambler.ru (Все сообщения пользователя)

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 27 След.
Вопрос по индикатору.
 
И ещё нужно учитывать, что на тиковых интервалах  все свечи имеют разное время. Непонятно, что вы хотите увидеть, вычитая значение Газпрома в один момент времени из значения Лукойла в другой момент.
www.bot4sale.ru        t.me/bot4sale
Вопрос по индикатору.
 
Может быть потому, что у разных инструментов разное количество свечей?
www.bot4sale.ru        t.me/bot4sale
Trans2QUIK.dll подключение несколько Quik одновременно, Как подключиться к нескольким квикам сразу для получения сделок из них?
 
Цитата
Юрий написал:
Требуется из приложения на QT C++ одновременное подключение через Trans2QUIK.dll к нескольким QUIK, для получения сделок в реальном времени и сведения их в единую базу.
Вопрос как организовать одновременное подключение Trans2QUIK.dll к нескольким квикам?
Идеологически правильно для каждого действия сначала подключать trans2quik к нужному терминалу, при завершении действия отключаться
www.bot4sale.ru        t.me/bot4sale
Получение признака "Субординированный инструмент" в lua
 
Цитата
Андрей написал:
Цитата
   s_mike@rambler.ru написал:
 
Цитата
Андрей  написал:
 
Цитата
 _sk_   написал:
  Может вы тоже подскажете, как это делается обобщенно через win32 ф-ции библиотеки w32 конкретно для стакана? Название активного окна (стакан) и выделенная в стакане строка. И как в макросе ожидать нажатие клавиш.
 нужно написать свой скрипт, который рисует вам стакан (так же как это делает сам терминал), ловить действия пользователя в нем стандартными средствами и запускать нужные вам обработчики.
Но так горазда больше оверхеда по ведению онлайн еще одного стакана, хотя ф-цию нужно запускать на разовой основе. Неужели прочитать окно стакана нельзя?  
Доступа к экранной таблице терминала, отображающей стакан, нет.

Что касается оверхеда - если это напишет программист с правильным пониманием мироустройства вселенной, то вы запустите 100 стаканов в скрипте и какого либо неудобства не почувствуете.
www.bot4sale.ru        t.me/bot4sale
Получение признака "Субординированный инструмент" в lua
 
Цитата
Андрей написал:
Цитата
_sk_ написал:
Может вы тоже подскажете, как это делается обобщенно через win32 ф-ции библиотеки w32 конкретно для стакана? Название активного окна (стакан) и выделенная в стакане строка. И как в макросе ожидать нажатие клавиш.
нужно написать свой скрипт, который рисует вам стакан (так же как это делает сам терминал), ловить действия пользователя в нем стандартными средствами и запускать нужные вам обработчики.
www.bot4sale.ru        t.me/bot4sale
Заявка + метка на графике
 
Цитата
Константин Рейм написал:
Ставим лимитную заявку роботом, поверх этой заявки (по той же цене) робот ставит метку в виде линии (можно сначала метку поставить потом заявку), в результате имеем на графике две линии одна из них это заявка, другая - метка, т.к. цены заявки и метки равны, на графике видим только метку, а заявка казалось бы лежит под меткой, но при наведении курсора на линию и попытке перетащить метку - цепляется не метка, а заявка. Есть ли какой то способ зацепить именно метку, а не заявку.
Настройте в диаграмме порядок отображения слоёв
www.bot4sale.ru        t.me/bot4sale
Индикатор средних Объемов типо скользящей средней
 
http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/volumeaverage.html
www.bot4sale.ru        t.me/bot4sale
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
 
Цитата
Sergey Hlynovskii написал:
 Здравствуйте  BlaZed ,
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Похоже, у каждого вновь прибывшего сотрудникпа Арка свой маленький блокнотик, в который он чирикает пожелалки карандашиком.

в 2013 году Михаил Булычев дважды обещал мне исправить эту проблему - в приватной переписке и на этом форуме тоже.

Потом я поднимал эту тему в ином разрезе. Написал, что в момент смены инструмента на вызывается destroy() уже на этом форуме. Алексей Иванников попросил сделать скрипт и прислать , чтобы "провести исследования". Как понимаю, в надежде, чтобы я отвязался. Я прислал. 6 строчек. После длительных обсуждений и "проверок на непротиворечивость и соответствие политике компании" признали, ну и дальше по тексту, "в одной из следующих версий". В результате потеряли блокнотик, или рыбу завернули неудачно в ту самую страничку.

Сергей Горохов, помнится, тоже поучаствовал, и с его блокнотиком тоже беда приключилась. Или просто карандашик сломался и записать было нечем.

а вы какую рыбу любите, Сергей?

P.S. Номера обращений не нужно спрашивать, поиск по форуму даст все ответы.
www.bot4sale.ru        t.me/bot4sale
Написание автономного бота
 
Цитата
Mixa написал:
Цитата
Sergey Gorokhov написал:
Терминал подключается к серверу, начинает качать данные и сообщает скрипту isLimitsLoaded=true, т.е. на сервере все лимиты действительно загружены
Это действительно странно, что вы отвечаете в разделе "Программирование" и тем более имеете право принимать решения.
Цитата
Mixa написал:
А вслед за лимитами - уведомление "лимиты загружены". Отдельно для каждой секции.
Таким образом, в какое бы время не подключился клиент, уведомление "лимиты загружены" должно быть отправлено  после  лимитов.


Цитата
Sergey Gorokhov написал:
этому вопросу уже очень и очень много лет
Потому что этим вопросом занимается человек, мало понимающий в программировании.
миха, прекращай.

не нравится Горохов - не задавай ему вопросы. Ищи ответы в другом месте.
www.bot4sale.ru        t.me/bot4sale
Доступ к Settings.line из кода индикатора, Пропадает доступ к массиву line структуры Settings в индикаторе после добавления индикатора на график и последующего изменения какого-либо параметра.
 
Здравствуйте

известная проблема. Несколько лет назад  разработчики мне ответили в стиле : так и должно быть, пользуйся тем что дали.
www.bot4sale.ru        t.me/bot4sale
Все индикаторы на Lua
 
Цитата
Kander написал:
Цитата
Andrey Bezrukov написал:
Контрактов во всех сделках - Общее количество - Объем совершенных в текущей сессии сделок, штук.
Контракт и переводится как сделка. Вы можете дать вменяемый ответ, можно ссылкой на статью. Почему из вас надо сутками ответ выбивать?

О каких контрактах идет речь на скрине выше(акции Five)?
контракт - это обязательство, которое возникает вследствие сделки по определённым активам. Например, на акциях Газпрома возникает позиция по акциям, на фьючерсах Газпрома возникает позиция по контрактам. Контракт есть обязательство выполнить определенные действия к какому то сроку (например купить или продать акции)

не нужно наезжать, сначала имеет смысл определиться в терминологии.
www.bot4sale.ru        t.me/bot4sale
AddLabel из скрипта-индикатора
 
Цитата
swerg написал:
Если запрашиваемой возможности инет - просьба зарегистрировать пожелание.
году в 15 предлагал, регистрировали. Видимо, невозможно.
www.bot4sale.ru        t.me/bot4sale
Оповещение на основе формулы с индикатором, Как создать оповещение с использованием индикатора
 
Цитата
Сергей написал:
Здравствуйте!

Пользуюсь Квиком в версии Сбербанка.
Прошу помощи в следующем.

Хочу создать смс оповещение когда цена закрытия на часовом интервале станет меньше moving average с периодом, скажем 9.
Другое оповещение, это когда цена закрытия, скажем, на часовом интервале станет меньше нижней границы Bollinger bands.

Есть ли в квике такая штатная возможность или нужно программировать?

спасибо и будьте здоровы!
и вам не хворать
http://bot4sale.ru/download-categories/2012-06-13-15-10-36/item/rasshirennyj-servis-opoveshchenij-qu...
www.bot4sale.ru        t.me/bot4sale
string.upper(S) - русские буквы, Русские буквы в верхний регистр не получается сделать в string.upper(S) в Lua QUIK версии 8.13
 
Цитата
swerg написал:
Считаю это ошибкой, которую разработчики QUIK должны исправить.
Интерфейс у терминала русский, по умолчанию для русских букв штатные upper / lower должны корректно работать.
интерфейс у терминала не только русский, увы...
www.bot4sale.ru        t.me/bot4sale
2048 game
 
Каждая уважающая себя среда должна иметь кроме прочего, исполняемую в ней игрушку. Я таких для терминала quik не встречал.

Одно время была очень популярна игра 2048б мне заказывали ее написать для какого-то сайта. Вот ее вариант для quik, нарисовал под пиво:
Код
local stopped

game = {
   cell = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
   best = 0,
--   key = nil,
-- t = nil,
   colors =   {   [0]   = QTABLE_DEFAULT_COLOR,
               [2]   = RGB(248,248,255),
               [4]   = RGB(255,239,213),
               [8]   = RGB(255,222,173),
               [8]   = RGB(255,218,185),
               [16]   = RGB(205,92,92),
               [32]   = RGB(255,69,0),
               [64]   = RGB(238,238,0),
               [128]   = RGB(238,118,33),
               [256]   = RGB(255,160,122),
               [512]   = RGB(255,0,0),
               [1028]= RGB(238,18,137),
               [2048]= RGB(139,0,0)
            },
   
   create_table =
      function(self)
         self.t = AllocTable()
         for i = 1,4 do
            AddColumn(self.t, i, "", true, QTABLE_INT_TYPE, 10)
         end
         CreateWindow(self.t)
         SetWindowPos(self.t,100,100,300,130)
         for i = 1,4 do
            InsertRow(self.t,i)
         end
         SetTableNotificationCallback(self.t,       
                                      function(_t, msg, _p, key)
                                       if msg == QTABLE_VKEY then
                                          self.key = key
                                       elseif msg == QTABLE_CLOSE then
                                          stopped = true
                                       end
                                      end)
         SetWindowCaption(self.t, "2048 game by www.bot4sale.ru")
      end,
   
   draw = 
      function(self)
         local cell = self.cell
         for row=1,4 do
            for column=1,4 do
               local value = cell[(row-1)*4 + column]
               SetCell(self.t,row,column,value==0 and "" or tostring(value))
               SetColor(self.t,row,column,game.colors[value],0,game.colors[value],0)
            end
         end
     end,
  
   incr = 
      function(self)
         local t,open = self.cell,{}
         for i=1,16 do 
            if t[i]==0 then 
               open[#open+1]=i 
            end
         end
         t[open[math.random(#open)]] = math.random()<0.1 and 4 or 2
      end,
  
   pack = 
      function(self,ofr,oto,ost,ifr,ito,ist)
         local t = self.cell
         for outer=ofr,oto,ost do
            local skip = 0
            for inner=ifr,ito,ist do
               local i = outer+inner
               if t[i]==0 then 
                  skip=skip+1 
               else 
                  if skip>0 then 
                     t[i-skip*ist],t[i],self.diff = t[i],0,true 
                  end 
               end
            end
         end
      end,
  
   comb = 
      function(self,ofr,oto,ost,ifr,ito,ist)
         local t = self.cell
         for outer=ofr,oto,ost do
            for inner=ifr,ito-ist,ist do
               local i,j = outer+inner,outer+inner+ist
               if t[i]>0 and t[i]==t[j] then 
                  t[i],t[j],self.diff,self.best = t[i]*2,0,true,math.max(self.best,t[i]*2) 
               end
            end
         end
      end,
  
   move = 
      function(self,dir)
         local loopdata =   {   {0,12,4,1,4,1},
                              {0,12,4,4,1,-1},
                              {1,4,1,0,12,4},
                              {1,4,1,12,0,-4}
                           }
         local ofr,oto,ost,ifr,ito,ist = table.unpack(loopdata[dir])
         self:pack(ofr,oto,ost,ifr,ito,ist)
         self:comb(ofr,oto,ost,ifr,ito,ist)
         self:pack(ofr,oto,ost,ifr,ito,ist)
      end,
  
   full = 
      function(self)
         local t = self.cell
         for r=0,12,4 do
            for c=1,4 do
               local i,v = r+c,t[r+c]
               if (v==0) or (c>1 and t[i-1]==v) or (c<4 and t[i+1]==v) or (r>0 and t[i-4]==v) or (r<12 and t[i+4]==v) then
                  return false
               end
            end
         end
      return true
   end,
  
   play = 
      function(self)
         math.randomseed(os.time())
         self:incr()
         self:incr()
         while not stopped do
            self:draw()
            if self.best == 2048 then 
               message("Поздравляю!\n\nwww.bot4sale.ru") 
               break 
            end
            if self:full() then 
               message("Game Over!")
               break 
            end
            
            self.diff = false
            if       self.key==0x25 then       -- Left
               self:move(1)
            elseif self.key==0x27 then         -- Right
               self:move(2)
            elseif self.key==0x26 then       -- Up
               self:move(3)
            elseif self.key==0x28 then         -- Down
               self:move(4)
            end
            self.key = nil
            if self.diff then 
               self:incr() 
            end
            sleep(100)
         end
      end,
      
   rules = 
      function()
         message("Правила игры:\n\nВ каждом раунде появляется плитка номинала «2» или «4». Нажатием стрелки игрок может скинуть все плитки игрового поля в одну из 4 сторон. Если при сбрасывании две плитки одного номинала «налетают» одна на другую, то они превращаются в одну, номинал которой равен сумме соединившихся плиток. После каждого хода на свободной секции поля появляется новая плитка номиналом «2» или «4». Если при нажатии кнопки местоположение плиток или их номинал не изменится, то ход не совершается. Если в одной строчке или в одном столбце находится более двух плиток одного номинала, то при сбрасывании они начинают соединяться с той стороны, в которую были направлены.\nЛевый столбец с номерами строк участия в игре не принимает.\n\ns_mike@rambler.ru")
      end
}
local game = game

--------------------------------------------------

function main()
   game:create_table()
   game:rules()
   game:play()
end
Также можно взять здесь

Не имею возражений, если разработчики включат игрушку в список своих демонстрационных скриптов ))))
www.bot4sale.ru        t.me/bot4sale
_dataline_data_metatablegc
 
Добрый день

Что за тип данных такой

_dataline_data_metatablegc

у меня не получилось осознать и не смог найти в спецификации lua
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Владимир написал:
   s_mike@rambler.ru, Да, Вам слушать этот бред явно противопоказано. ::

Меня это блеяние про МОЖНО сделать достало ещё много лет назад. Так СДЕЛАЙТЕ, наконец, "простейшую таблицу под любым соусом при помощи метаметодов", чтобы у таблицы заявок строки не пропадали при обрыве связи! Что, не можете? Способны только языком чесать? А что происходит с этими долбаными таблицами "с любыми свойствами" после DeleteRow - не подскажете? А то я от этого говна вообще отказался. Что до loadstring - эта "deprecated" чуть ли не единственная приличная функция во всём языке, и я ею активно пользуюсь.

вам следует научиться различать  таблицы языка луа и оконный табличный интерфейс расширения qlua.

Владимир, вы хам и невежда. Я больше вам писать не буду. К сожалению, на этом форуме невозможно заблокировать вас и не читать то, что вы пишете.

поэтгму я предлагаю остальным посетителям форума более не отвечать вам с целью очищения атмосферы от запахов.
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Владимир написал:
TGB, Да хрен с ними, с  "неокрепшими умами" - пущай укрепляются! Не в инкубаторе же их держать! ::

Все-таки это таблицы как деревья. С обращениям к их элементам как к многомерным массивам. И ничего не надо "с помощью них строить" - всё уже построено. Мой ТРЕТИЙ коммент в этот форум содержал фразу:

В общем, с языком почти всё ясно: граф (точнее, дерево) объектов построить можно, а простейшую таблицу или даже массив - нельзя. Остаётся разобраться со строковыми переменными: способна ли эта loadstring интерпретировать строки как операторы языка (или, скажем, функции), то есть имеется ли здесь техническая возможность программирования данными.

Не нужно слушать этот бред.

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

функция loadstring является deprecated.
www.bot4sale.ru        t.me/bot4sale
Изменить версию Lua с 5.4.1 до 5.4.2
 
Цитата
Старатель написал:
QUIK 8.13.1.16, Lua 5.4
Получил очередную ошибку  
Цитата
invalid key to 'next'
в древнем скрипте
Код
   local  ID  =  {}
 function   main ()
   .. .
   for  TableName, id  in  pairs(ID)  do 
    ID[TableName]  =   nil 
     DestroyTable (id)
   end 
   .. .
 end   
с функцией next проблемы давние, в 5.3 тоже присутствуют.
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Старатель написал:
Проще самому написать.

Цитата
Глебов Александр написал:
суммарные  обновляемые объемы сделок для каждого ценового уровня внутри дня
Как-то так:
Код
   local  Volume  =  {}
 local   function   Claster (alltrade)
   if  alltrade.sec_code  =  =  sec  and  alltrade.class_code  =  =  class  then 
    Volume[alltrade.price]  =  (Volume[alltrade.price]  or   0 )  +  alltrade.qty
   end 
 end 

 function   OnInit ()
   for  i  =   0 ,  getNumberOf ( "all_trades" ) -  1   do 
    Claster( getItem ( "all_trades" , i))
   end 
 end 

 function   OnAllTrade (alltrade)
  Claster(alltrade)
 end   

Можно SearchItems задействовать для боле быстрого поиска.
можно. Но в этом случае индикатор будет подвешивать терминал в случае запуска на ликвидном инструменте ближе к концу торговой сессии. А если таких индикаторов будет несколько - терминал умрет.
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Глебов Александр написал:
Цитата
   s_mike@rambler.ru написал:
 
Цитата
Глебов Александр  написал:
 
Цитата
    s_mike@rambler.ru  написал:
   
Цитата
  Глебов Александр    написал:
   
Цитата
      s_mike@rambler.ru    написал:
Вот       такой       вариант. Но не в таблицу выводит, а рисует на графике.
    Знакомо.Неинтересно.
   вывести результаты в таблицу на порядок (или на два порядка) проще, чем нарисовать все эти уровни и на графике.

Поэтому ответ на ваш вопрос о возможности реализации на lua имеет вполне себе утвердительный ответ.
  А  в чем конкретно состоит ответ на мой вопрос, кроме "посмотреть на Ваш график", а мне нужны данные для дальнейшей обработки?
 если вам хочется обрабатывать результаты, можно просто читать базу соответствующего дня и получать в луа сразу готовую таблицу с разблюдовкой по ценам сделок. Базы лежат в виде отдельных файлов в текстовом виде в формате языка луа.
Ну, собственно, это я и пытаюсь выяснить -  какими средствами QLUA  можно  читать  базу текущего дня и  получать готовую таблицу?

Вот такой функцией читают файлы базы индикатор из архива, ссылку на который я писал выше
Код
-----------------------------------------------------------------------------------------------------------------------------------
-- Чтение таблицы из файла в массива или таблицу. Вырезает сигнатуру из файла
-- Параметры:
--      Имя файла
--      Функция декодирования (или nil)
-- Возвращает:
--      Таблицу или nil
--      Сообщение об ошибке или nil
--      Полное имя читаемого файла
ifuse(`table',`read',`
   function table.read(filename,decode)
      m4_assert(type(filename) == "string","Вместо строки передано (" .. type(filename) .. ") " .. tostring(filename))
      m4_assert(type(decode) == "function" or decode == nil,"Вместо функции или nil передано (" .. type(decode) .. ") " .. tostring(decode))

      filename = io.makepath(filename,".dat")

      local result
      local f,status = io.open(filename,"r")
      if f then
         local str = f:read("*a")
         f:close()
         local _,_,s = string.find(str,"^%-%-%s.*%s%-%-\n(.*)$")
         str = s or str

         if decode then
            str = decode(str)
         end

         status,result = pcall(loadstring("return " .. str))
         if status then
            status = nil
         else
            status = "Файл поврежден" ifdef(`DEBUG',`.. ": " .. result')
            result = nil
         end
      end
      return result,status,filename
   end
')

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

Файлы базы формируются в папке <квик> / www.bot4sale.ru / VaP / <инструмент>

Таблица в файле содержит две подтаблицы.
[1] это общие итоги по дню
[2] это таблица данных по каждой торговой цене дня

Последовательность полей

Код
dnl Общие данные за день
pushdef(`COUNTER',            0)         dnl Поля в разделе DAT_TOTALS
define(`TOTAL_VOLUME_BUY',      m4_inc(`COUNTER'))      dnl Объём покупок за день
define(`TOTAL_VOLUME_SELL',   m4_inc(`COUNTER'))      dnl Объём продаж за день
define(`TOTAL_VOLUME',         m4_inc(`COUNTER'))      dnl Объём за день
define(`TOTAL_MAXVOLUME',      m4_inc(`COUNTER'))      dnl Максимальный объём, прошедший по какой-либо цене за день
define(`TOTAL_TRADES_BUY',      m4_inc(`COUNTER'))
define(`TOTAL_TRADES_SELL',   m4_inc(`COUNTER'))
define(`TOTAL_TRADES',         m4_inc(`COUNTER'))
define(`TOTAL_MAXTRADES',      m4_inc(`COUNTER'))      dnl Максимальное кол-во сделок, прошедших по какой-либо цене за день
define(`TOTAL_MINPRICE',      m4_inc(`COUNTER'))      dnl Минимальная цена дня
define(`TOTAL_MAXPRICE',      m4_inc(`COUNTER'))      dnl Максимальная цена дня
define(`TOTAL_TABLE_SIZE',      COUNTER)      dnl Размер таблицы total
popdef(`COUNTER')
Код
dnl Структура данных по конкретной цене
pushdef(`COUNTER',            0)         dnl Поля в разделе DAT_DATA
define(`VOLUME_BUY',            m4_inc(`COUNTER'))         
define(`VOLUME_SELL',         m4_inc(`COUNTER'))
define(`TRADES_BUY',            m4_inc(`COUNTER'))
define(`TRADES_SELL',         m4_inc(`COUNTER'))
define(`VOLUME_BS',            m4_inc(`COUNTER'))
define(`TRADES_BS',            m4_inc(`COUNTER'))
define(`PRICE_TABLE_SIZE',      COUNTER)                  dnl Размер таблицы по одной конкретной цене
popdef(`COUNTER')

Если что-то конкретное непонятно, спросите.
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Глебов Александр написал:
Цитата
   s_mike@rambler.ru написал:
 
Цитата
Глебов Александр  написал:
 
Цитата
    s_mike@rambler.ru  написал:
Вот     такой     вариант. Но не в таблицу выводит, а рисует на графике.
  Знакомо.Неинтересно.
 вывести результаты в таблицу на порядок (или на два порядка) проще, чем нарисовать все эти уровни и на графике.

Поэтому ответ на ваш вопрос о возможности реализации на lua имеет вполне себе утвердительный ответ.
А  в чем конкретно состоит ответ на мой вопрос, кроме "посмотреть на Ваш график", а мне нужны данные для дальнейшей обработки?
если вам хочется обрабатывать результаты, можно просто читать базу соответствующего дня и получать в луа сразу готовую таблицу с разблюдовкой по ценам сделок. Базы лежат в виде отдельных файлов в текстовом виде в формате языка луа.
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Владимир написал:
   s_mike@rambler.ru, Вот уж АБСОЛЮТНО до лампочки! Достаточно взглянуть в начало текста:
Версия:5.05
Требования:Quik 8.6
Размер:1.57 MB
и любому дебилу ясно, что это никак не Lua.

Достаточно взглянуть в конец:
Адаптировано для работы с библиотекой bot4sale.dll
и любому дебилу...
прекрасно.

как вы замечательно про дебила-то... Сами, никто за язык не тянул.

скрипт этот я написал как раз на луа. Это чистый незамутненнвй луа, который просто помещен в контейнер.  
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Владимир написал:
   s_mike@rambler.ru,
1. Вы что, предполагаете самостоятельно разработать и графическую библиотеку? Если нет, то сложность представления данных в виде таблицы или графика ОДНОГО порядка.
2. Нет там ответа на его вопрос, ибо совершено очевидно, что вся тамошняя хрень написана НЕ на Lua.
позволю себе спросить - а на чем она написана?
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Цитата
Глебов Александр написал:
Цитата
   s_mike@rambler.ru написал:
Вот   такой   вариант. Но не в таблицу выводит, а рисует на графике.
Знакомо.Неинтересно.
вывести результаты в таблицу на порядок (или на два порядка) проще, чем нарисовать все эти уровни и на графике.

Поэтому ответ на ваш вопрос о возможности реализации на lua имеет вполне себе утвердительный ответ.
www.bot4sale.ru        t.me/bot4sale
Получать объемы сделок
 
Вот такой вариант. Но не в таблицу выводит, а рисует на графике.
www.bot4sale.ru        t.me/bot4sale
QUIK 8.13 индикаторы перестали загружаться из подпапок., Раньше было лучше...
 
Поместите ваш индикаторкуда вам удобно, а в LuaIndicators создайте прокладку типа


dofile("путь к файлу индикатора")
www.bot4sale.ru        t.me/bot4sale
Оповещения по индикатору
 
Цитата
YURY написал:
Пожалуйста добавьте в программу функцию оповещений по индикатору
посмотрите это. Возможно, подойдёт.
www.bot4sale.ru        t.me/bot4sale
URL in message function
 
message("www.bot4sale.ru")

В сообщении на экране www.bot4sale.ru будет оформлена как ссылка, тут все в порядке. Но при нажатии на эту ссылку открывается проводник, а не браузер. Думаю, что и с другими типами (call-to и прочими будет то же самое)

По умолчанию приложением для открытия URL назначен Хром.

Поправьте.  
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Владимир написал:
swerg, Ну хватит тяфтяфкать, милок! За слова свои отвечать квалификации не хватает - понимаю, но тогда уж приличнее помолчать

Программирование давно и далеко ушло от Фортрана на БЭСМ-6. И даже от Кернигана с Ричи.

Самое простое, что  можно сделать для расширения кругозора, это обратиться к Википедии. Окажется, что существует несколько разных способов организации строкового типа. Я даже ссылку вам дам на русском языке: Строковый тип

P.S. Про ваше героическое прошлое мне известно, про удивительный скрипт тоже. Убедительная просьба больше не хамить, всему есть предел.
www.bot4sale.ru        t.me/bot4sale
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Владимир написал:
   s_mike@rambler.ru, Это Вы с зеркалом разговорились, сударь? Повторяю для бестолковых:  Единственная таблица, из которой я получаю данные для торговли - это ТТТ, а она непустая даже если вообще не соединяться с сервером.
ну ладно. Вот вам несколько примеров. Исключительно чтобы ваша дурь и глупый  апломб были всем видны.

1. Таблица текущих торгов пуста после установки терминала до первого подключения к брокеру

2. Ттт пуста, если в ней нет ни одного инструмента.

3. ТТТ пуста, если запрещены к получению все добавленные в нее колонки параметров. Зависит от набора полей.

4. Ттт пуста утром, если в наcтройках стоит флаг очистки при смене торговой даты. Зависит от набора полей.

5.ттт пуста после очистки данных до начала их перезакачки с сервера брокеоа

наверняка есть и другие моменты и их более чем достаточно.


P.S. Да, мне известно о вашем героическом прошлом, чудесном скрипте и стиве джобсе, который носил вам кофе.
www.bot4sale.ru        t.me/bot4sale
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Владимир написал:
   s_mike@rambler.ru, Что именно "неверно"?
"ТТТ, а она непустая даже если вообще не соединяться с сервером"

вам следует набраться опыта, прежде чем делать безапелляционные утверждения.  
www.bot4sale.ru        t.me/bot4sale
Событие получения данных всех таблиц и графиков после подключения к серверу
 
Цитата
Владимир написал:
Артем, Огласите весь список, пжалста!(с)  

Единственная таблица, из которой я получаю данные для торговли - это ТТТ, а она непустая даже если вообще не соединяться с сервером.

Обычное неверное утверждение.
www.bot4sale.ru        t.me/bot4sale
Добавить аргумент param в колбек OnParam
 
Цитата
Roman Azarov написал:
Добрый день!

Прошу прощения, действительно, допустил ошибку в ответе.
Вызов OnParam происходит при изменении параметра(ов) и, в текущей реализации, функции действительно неизвестно, значение каких конкретно параметров было изменено.

Пожелание по добавлению параметра (массива) для OnParam зарегистрировали, постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.

В случае, если необходимо зарегистрировать какие-либо пожелания по прочим функциям обратного вызова, просим описать их явным образом.
Это пожелание за последние 6-7 лет регистрировалось раза 3, столько же раз было признано целесообразным и 0 раз было реализовано.

Смысла ждать нет.
www.bot4sale.ru        t.me/bot4sale
Добавить аргумент param в колбек OnParam
 
Цитата
Roman Azarov написал:
Добрый день!

Прошу прощения, действительно, допустил ошибку в ответе.
Вызов OnParam происходит при изменении параметра(ов) и, в текущей реализации, функции действительно неизвестно, значение каких конкретно параметров было изменено.

Пожелание по добавлению параметра (массива) для OnParam зарегистрировали, постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.

В случае, если необходимо зарегистрировать какие-либо пожелания по прочим функциям обратного вызова, просим описать их явным образом.
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
TGB написал:
Цитата
s_mike@rambler.ru написал:
print(string.len("a"))print(string.len("a\0b"))
    Длины разные, но "a" .. "a\0b" = "aa". Проверено в Lua 5.3.5 и 5.4.1. Непорядок. Разработчикам Lua это надо бы довести до сведенья.
Здесь вы опять ошибаетесь

print(#("x" .. "a\0\b"))
4
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата


Цитата
s_mike@rambler.ru написал:
во втором случае результат явно неверен. "a" и "a\0b" - совершенно разные строки.
    Так как символ \0 в Lua это признак завершения строки, то для Lua "a" и "a\0b" - эквивалентные строки.

вот даже так?

print(string.len("a"))
print(string.len("a\0b"))

вообще то это самые базовые вещи.
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
TGB написал:
Цитата
s_mike@rambler.ru написал:
dump_tbl ({[{"xx","yy"}]=5}, " ", 0)c dump_tbl ({math.huge}, " ", 0) тоже как то не очень.dump_tbl ({"a\0b"}, " ", 0)Торопитесь,  TGB ..  
  Спасибо за нетривиальные примеры для тестирования.

local str = ""    
for k,v in next, dump_tbl ({ [ {"xx","yy"} ] =5}, " ", 0) do   str = str .. v  end        РЕЗУЛЬТАТЫ теста (в квадратных скобках индексы таблиц)
MessageDlg ( 1, 1, "Скрипт", " Результат: \n" .. str)                                             Результат: [table: 0F4ED2F0]   (number) = 5
-------
str = ""    
for k,v in next, dump_tbl ({"a\0b"}, " ", 0) do   str = str .. v  end
MessageDlg ( 1, 1, "Скрипт", " Результат: \n" .. str)                                             Результат: [1]   (string) = a
MessageDlg ( 1, 1, "Скрипт", " Результат: \n" .. "a\0b")                                        Результат:  a   ---
message ("a\0b")                                                                                                Результат:  a
-------
str = ""    
for k,v in next, dump_tbl ({math.huge}, " ", 0) do   str = str .. v  end
MessageDlg ( 1, 1, "Скрипт", " Результат: \n" .. str)                                             Результат: [1]   (number) = 1.#INF
message (tostring(math.huge))                                                                            Результат: 1.#INF
-----------------------------------------------------------------------------------------
 Я ошибок не нашел. Где они?
в первом примере не раскрыто содержимое таблицы, являющеся ключом. Сериализация это подразумевает. Таблица ключа может содержать вложенные таблицы, которые также должны быть раскрыты.

во втором случае результат явно неверен. "a" и "a\0b" - совершенно разные строки.

в третьем случае 1.#inf не является допустимым числом lua. Это всего лишь нерегламентированное внутреннее представление, которое не может попадать в результат.
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
торОпитесь....
www.bot4sale.ru        t.me/bot4sale
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
TGB написал:
dump_tbl (_G, " ", 0)


dump_tbl ({[{"xx","yy"}]=5}, " ", 0)

c dump_tbl ({math.huge}, " ", 0) тоже как то не очень.

dump_tbl ({"a\0b"}, " ", 0)


Торопитесь, TGB..  
www.bot4sale.ru        t.me/bot4sale
Экспорт ежедневных цен за прошедшие 365 дней, Возможно ли выгрузить и от кого зависит - системы или брокера
 
Цитата
Артем написал:
В продолжении этой темы есть вопрос: Есть ли подобная процедура функция на Lua?
Есть ))
www.bot4sale.ru        t.me/bot4sale
агрегировать значения из таблицы сделок по временному условию
 
Цитата
Владимир написал:
   s_mike@rambler.ru, Да неужели?! И что, тип INTEGER ввели? А если нет, на кой всё это кастрированное убожество

Чем больше визга, тем меньше элементарных знаний.  

сначала нужно читать документацию, а потом выносить свое кастрированное убожество в форум  
www.bot4sale.ru        t.me/bot4sale
агрегировать значения из таблицы сделок по временному условию
 
Цитата
Nikolay написал:
Цитата
Игорь М написал:
Да, 2-ой. И у меня 2-ой. Можно с префиксом "0x" поставить для наглядности: bit.band(trade.flags, 0x4). И bit.band в отличие от bit.test число возвращает. Почему bit.test лучше, чем bit.band - готов узнать.
Кроме быстродействия и наглядности никаких.
В луа 5.3 есть битовые операции.

bit.band(trade.flags, 0x4)

можно заменить на

trade.flags & 0x4
www.bot4sale.ru        t.me/bot4sale
Получить имя исполняемого скрипта., Возможно?
 
В oninit передается путь к скрипту
www.bot4sale.ru        t.me/bot4sale
Сделайте упрощённый вариант
 
Цитата
Алексей написал:
По моим ощущениям принцип создания Квика такой : "Зачем просто, когда можно сложно". Кому-то может и надо столько таблиц, но кто с форекса пришёл, и кто пользовался, например, терминалами от форекс клуба, (Либритек-менее удобен, Румус- по мне так идеальный вариант) не надо столько наворотов. Сделайте кнопку - "Упрощённый вариант", при нажатии на которую выдет что-то похожее на Румус, Либритек или Метатрейдер (на худой конец). И будет всем счастье. И не надо будет читать инструкцию в 1000 листов, чтоб найти две кнопки "Купит" и "Продать" во всей этой мешанине таблиц и стаканов. Стакан по завершении сделки на столе я лучше увижу :)
Зачем мне эти ПДД, педали, руль и всякая дрянь типа адаптивного круиз контроля? Для тех, кто привык на лошади и телеге - все это лишнее.

Никто такой вариант делать не станет.
www.bot4sale.ru        t.me/bot4sale
Данный инструмент запрещен для операции шорт
 
Цитата
Владимир написал:
Господа разработчики! Что за хрень? Я пытаюсь продать СВОИ акции, они у меня ЕСТЬ, они принесли мне прибыль, которую я собираюсь зафиксировать. Какой, в задницу, может быть "шорт"? Раз пять уже такое случалось, но. как правило, со второй или третьей попытки акции всё-таки удавалось продать. Но на этот раз Квик с упорством носорога зудит: "Данный инструмент запрещен для операции шорт". Это глюк в программе или неизвестный мне доселе способ воровства моих денег?
гении обычно болтливы и рассеянны. Они с упорством носорога считают виноватыми всех, кроме себя. А достаточно просто посмотреть чуть внимательнее и окажется, что акции заблокированы выставленными заявками  
www.bot4sale.ru        t.me/bot4sale
QUIK для ARM
 
Да они с тем, что имеется не могут справиться, а вы им предлагаете ещё один продукт себе на шею повесить.
www.bot4sale.ru        t.me/bot4sale
Индекс формирующегося бара.
 
Цитата
Alexander написал:
Цитата
   s_mike@rambler.ru написал:
 
Цитата
Nikolay  написал:
Так я Вам уже написал:

Текущий бар всегда равен Size
 это неверное утверждение  
Вы хотите сказать, что это до сих пор не исправили и Size считает временные интервалы?
Size() совершенно необязательно возвращает номер последнего формирующегося бара инструмента. Это может быть в случае (например) если на диаграмму нанесены графики разных инструментов. И ещё в нескольких случаях.
www.bot4sale.ru        t.me/bot4sale
Индекс формирующегося бара.
 
Цитата
Nikolay написал:
Так я Вам уже написал:

Текущий бар всегда равен Size
это неверное утверждение  
www.bot4sale.ru        t.me/bot4sale
Звуковой сигнал в интерпретаторе lua.exe, Как сделать сигнал beep при запуске программы с помощью lua.exe
 
Возьмите в архиве http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/md.html библиотеку bot4sale64.dll

// PlaySound(sound_file)
// Returns error code (0 if successful) and string error description

require "bot4sale64"
err = bot4sale64.PlaySound("file.wav")  -- mp3 и все остальное тоже


для луа 5.3
www.bot4sale.ru        t.me/bot4sale
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 27 След.
Наверх