Постов с тегом "Lua": 326

Lua


LUA теперь читает alltrade.qty как дробное число

    • 15 сентября 2020, 12:14
    • |
    • Glago
  • Еще
После обновления Quik до 8.8.4.3 заметил, что alltrade.qty стало приходить с одним знаком после запятой. Для меня это не критично и теоретически можно округлять значения объёма, если скрипт используется на срочке. Однако интересно, может это связано с тем как кодит Notepad++.  Непонятно в какой версии луа он кодит 5.1 или 5.3? Может дробные значения объёма предполагают торговлю дробными лотами например на фонде? Пожалуйста, напишите в комментариях, что вы думаете об этом.
  • обсудить на форуме:
  • Quik Lua

Вопрос алготрейдерам: у вас Квик не зависает при срабатывании OnStop() ?

Столкнулся с такой проблемой буквально на последних паре версий 8.8.1 и 8.8.4

В чем проблема: при остановке скрипта квик стал «уходить в себя» (зависать).
Останавливается скрипт банально через OnStop()

Логика там проще некуда:

IsRun = true

OnInit()
     CreateDataSource()
end

main()
     while IsRun do
         getCandlesByIndex()
         --доп. запрос данных с индикатора
         --и после вычисления
     end
end

OnStop()
     IsRun = false
end

Все. Структура как по учебнику. Все расчеты внутри main. Никаких допов не подключается, все расчеты сугубо арифметические.
Считают каждую минуту при появлении новых данных по свечам.
После остановки скрипта считать нечего. С рояли он зависает?

Причем весь парадокс в том, что подобное происходит только после продолжительной работы скрипты (где-то от часа и более).

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Посоветуйте программу для редактирования Lua

Всем привет!

Посоветуйте плиз прогу для редактирования скриптов Lua чтобы она:

1) мало весила
2) имела опцию темного фона
3) делала подсветку функций
4) имела tool bar с большим количеством инструментов

Сейчас пользуюсь скитом, но темного фона там нет, и тул бар какой-то убогий…
  • обсудить на форуме:
  • Quik Lua

LUA - код инструмента - вопрос

    • 19 августа 2020, 21:25
    • |
    • Vitaliy
  • Еще
Доброго дня, уважаемые коллеги! 

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

С индикаторами все просто — там берем getDataSourceInfo и готово. А вот именно со скриптом как быть? Дергать эту информацию из какого-либо индикатора и передвать ее в скрипт тоже не особо красивое решение задачи.

Буду рад, если есть идеи.

С уважением, Виталий.
  • обсудить на форуме:
  • Quik Lua

LUA: Построитель графиков. Просто поделиться.

Бэктесты, построенные непосредственно в QUIK'e, формируют прогнозные PL тестируемых стратегий в виде простых одномерных индексированных таблиц LUA.
    Но прежде, чем детально копаться в стратегии и манипулировать параметрами (мой LUA-тестер «заточен» и на ввод «точечных» наборов параметров и на перебор Монте-Карло), будет логично качественно оценить направление результатов. Так сказать, посмотреть тренд прибыльности: есть она, эта прибыль, или её стратегия даже не прогнозирует...
   Поскольку, как я писал в предыдущем посте, я — не академик в софте, то просто написал свой графопостроитель.
   Наверное, он смотрится наивно, но, может быть, он и в таком виде сгодится. Обрабатывает сразу 5 файлов (iup позволяет не больше 20 за раз).

  Скрины в порядке манипуляций:

Главная форма

Выбрать файл - источник данных

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Не академик в QLUA, а потому просто спрашиваю знающий народ про DestroyTable/

Существует ли альтернатива стандартному DestroyTable?

Сегодня протестил 8.8 — версию КВИКа.
Destroy… выбивает терминал. Инфо-сообщение примерно такое: «Неожиданная ошибка. Примите извинения».

Спасибо заранее.

Вопрос по Луа 3 - работа циклов


Зарегистрировался для развития на форуме Арки и в разделе по программированию на Луа нашел код (https://forum.quik.ru/forum10/topic5664/)
Смысл в том, что автор хочет продавать актив поштучно пока в портфеле не останется какое-то количество бумаг.
На мой взгляд полезная вещь.
Когда я его попробовал на демо квике, то начались бесконечные продажи (как и у автора).
Судя по записям, проблема не решена.
Может кто подскажет как решить вопрос?

<code class="rainbow" data-language="lua">   while stopped == false do

      Quotes_1 = getQuoteLevel2("SPBFUT", "SRU0")

      Bid_Count_1 = tonumber(Quotes_1.bid_count)

      if Bid_Count_1>1 then
         aa= tonumber(Quotes_1.bid[Bid_Count_1].quantity)
         SetCell(Table, 1, 1, tostring(aa))
      end

      local asset = getFuturesHolding("SPBFUT", "SPBFUT****","SRU0",0).totalnet

      repeat

            if aa>1 and asset>0 then

               local ID_B_Order=10
               local OrderSell = {
                     ["ACTION"]="NEW_ORDER",
                     ["ACCOUNT"]= "SPBFUT****",
                            ["OPERATION"] = "S",
                     ["CLASSCODE"]="SPBFUT",
                            ["SECCODE"] = "SRU0",
                            ["PRICE"] = "0",
                     ["QUANTITY"] = tostring(1),
                     ["TRANS_ID"] = tostring(ID_B_Order),
                     ["TYPE"] = "M",
                     }
               local Err_Order = sendTransaction(OrderSell)
               message(Err_Order)
            end

            asset=asset-1

            sleep(1000)

      until asset==5<br />end</code>
  • обсудить на форуме:
  • Quik Lua

qlua написать скрипт, вывод таблицы в csv файл

сейчас вывожу по dde в excel.
Можно через lua выводить выбранные таблицы в csv файлы с интервалом 5-10мин, сразу после запуска quik ?

ps кто может написать скрипт?
  • обсудить на форуме:
  • Quik Lua

Вопрос 2 по Lua

Всем привет!

Продолжаю изучать волшебный мир Луа в волшебном мире Квика и добрался до размещения скриптом заявок.
На текущий момент есть такой скрипт (в общем виде).

local SecCode = «LKU0»
local Quantity=1

function main()

while stopped == false do


local Quotes = getQuoteLevel2(«SPBFUT», SecCode)
local Offer_Price = tonumber(Quotes.offer[1].price)
local Offer_Vol = tonumber(Quotes.offer[1].quantity)

--отправка формы заявки
local LimitOrderBuy = { ххххх}

--условие входа в лонг

if Offer_Vol>10 then
message(Order)
local Order = sendTransaction(LimitOrderBuy)
end

sleep (200)
end

Смысл его такой: если количество лукойла в первой строке стакана больше 10, то покупается 1 бумага и работа скрипта завершается.
Так как скрипт срабатывает при определенном условии, то для перезапуска используется while stopped == false do и sleep (200).
Прикол в том, что при наступлении условия, скрипт начинает бомбить заявки по 1 шт  пока не кончаются деньги (виртуальные).

Вопрос: какой размыкатель цикла можно тут использовать, чтобы после покупки 1 бумаги работа скрипта завершилась?

На ресурсах есть getItem, битовые флаги и пр., но изложено это как-то непонятно.
Помогите плиз..)
ЗЫ: обещаю поставить лайк хорошим ответам )


  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн