Постов с тегом "lua": 337

lua


Робострой: вопрос из "зала" о неисполненных заявках. Просто поделиться опытом.

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

Мой ответ (в 3-х частях, по мере внесения уточнений и подробностей) ему был следующий:

1. Все перечисленные «проблемы» решаются очень просто и успешно, если немного расширить само понятие «робот».
Добавьте надстройку, следящую за состоянием робота, за состоянием сети, инета, которая автоматически блокирует ненужные явления (задваивание ордеров на одном баре, например, или обрыв связи с сервером), и проблем не будет. Да, это выходит за рамки Lua (или того, на чем реализован робот). У меня такие сервисы реализованы на C#, опять же например. Итог: сам включается/выключается, «фильтрует базар» и поддерживает постоянное подключение, «постукивая» мне логами на почту или джаббер…



( Читать дальше )

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

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