Quik Lua

Сайт продукта: https://forum.quik.ru/forum10/
Lua — язык программирования, который используется в программировании торговых роботов под популярный в России терминал Quik.
  1. Аватар Vatrudor
    скрипты
    После последних изменений на говномосбирже, пришлось перейти на 64бит версию квика, какие варианты есть бесплатных луа  скриптов типо кускальп

    Авто-репост. Читать в блоге >>>
  2. Аватар fabiola
    Проблема перевода dll на lua 5.3 x64 vs15 (уже всё попробовал)
    C2664 «void luaL_setfuncs(lua_State *,const luaL_Reg *,int)»: невозможно преобразовать аргумент 2 из «luaL_reg []» в «const luaL_Reg *»

    static struct luaL_reg ls_lib[] = {

    Виктор Некрасов,
    Выделил ключевые строки. В первой описание проблемы, вторую надо исправить. Все дело в регистре одной буквы R.
    Надо заменить
    static struct luaL_reg ls_lib[] = {
    на
    static struct luaL_Reg ls_lib[] = {
  3. Аватар Виктор Некрасов
    Проблема перевода dll на lua 5.3 x64 vs15 (уже всё попробовал)
    Я пытаюсь перевести dll на x64 lua5.3 vs15
    Действую по инструкции https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/
    Перечитал все комменты, всё испробовал, но так и не решил.

    Библиотеку lua я скачал, всё заменил, но не заводится она.
    Т.е. я просто меняю библиотеки с 5.1 на 5.3, прописываю новую lua53.lib но всё-время вылазят ошибки:

    C2079 «ls_lib» использует неопределенный struct «ls_lib»
    C2078 слишком много инициализаторов
    C2664 «void luaL_setfuncs(lua_State *,const luaL_Reg *,int)»: невозможно преобразовать аргумент 2 из «luaL_reg []» в «const luaL_Reg *»

    Из-за чего так?
    Скачивал проект LuaProba (https://smart-lab.ru/blog/605815.php), но он был для 5.1
    Опять же, в нём библиотеки поменяю — и опять эти же ошибки вылазят.

     
    //=== Регистрация реализованных в dll функций, чтобы они стали "видимы" для Lua ================================//
    static struct luaL_reg ls_lib[] = {
    	{ "TestFunc", forLua_TestFunc }, // из скрипта Lua эту функцию можно будет вызывать так: QluaCSharpConnector.TestFunc(); здесь можно указать любое другое название
    	{ NULL, NULL }
    };
    
    
    //=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
    //extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
    //	luaL_openlibs(L, "connector", ls_lib, 0);
    //	return 0;
    //}
    extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
    	lua_newtable(L);
    	luaL_setfuncs(L, ls_lib, 0);
    	lua_pushvalue(L, -1);
    	lua_setglobal(L, "connector");
    	return 0;
    }

    Как жить?

    Авто-репост. Читать в блоге >>>
  4. Аватар Glago
    LUA теперь читает alltrade.qty как дробное число
    После обновления Quik до 8.8.4.3 заметил, что alltrade.qty стало приходить с одним знаком после запятой. Для меня это не критично и теоретически можно округлять значения объёма, если скрипт используется на срочке. Однако интересно, может это связано с тем как кодит Notepad++.  Непонятно в какой версии луа он кодит 5.1 или 5.3? Может дробные значения объёма предполагают торговлю дробными лотами например на фонде? Пожалуйста, напишите в комментариях, что вы думаете об этом.

    Авто-репост. Читать в блоге >>>
  5. Аватар Винни Пух
    Вопрос алготрейдерам: у вас Квик не зависает при срабатывании 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. Никаких допов не подключается, все расчеты сугубо арифметические.
    Считают каждую минуту при появлении новых данных по свечам.
    После остановки скрипта считать нечего. С рояли он зависает?

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

    Авто-репост. Читать в блоге >>>
  6. Аватар Алексей Чирва
    Добрый вечер. Можете сделать мне робота на lua для quik, или посоветовать мастера?
    Задача простая: на любом графике валют на ммвб(но скорее всего на м5 или м1) в определенный оператором момент в торговую сессию крутится лонг/шорт определенным количеством лотов от точки задаваемой оператором пока не станет позиция по тренду…
  7. Аватар Алексей Чирва
    ЛУА — программирование
    Добрый день, уважаемые коллеги!

    Не знаю снесут ли данный топик или же пройдет по правилам.

    Суть такая, что я полтора года программирую разных роботов в ЛУА, а еще имею косяк в недокапитализации счета и посему, учитывая, что живу исключительно с рынка уже почти два года, приходится встать на путь недалекий от околорынка :) Каюсь, но недостаток средств на счету, а точнее даже то, что расходы перекрывают доходы от торговли, все это стало причиной поиска сотрудничества и предложения создать робота под квик на заказ. Когда начинал торговать, то вход на всю котлету и пересиживание убытков по началу как-то вывозило. Но когда дошел до системного трейдинга с соблюдением рисков и ММ доходность упала, правда и нервы стали целее.

    Вдруг кому интересно что-то заполучить в виде скрипта луа, или индикатора какого. Сразу оговорюсь, до сего момента на заказ ничего не писал, расценок не знаю, но, полагаю, с заинтересованным человеком договоримся.

    Буду рад обратной связи и всякого рода помидорного закидывания :)

    С уважением, Виталий.

    Авто-репост. Читать в блоге >>>

    Vitaliy,
  8. Аватар Vitaliy
    ЛУА - программирование
    Добрый день, уважаемые коллеги!

    Не знаю снесут ли данный топик или же пройдет по правилам.

    Суть такая, что я полтора года программирую разных роботов в ЛУА, а еще имею косяк в недокапитализации счета и посему, учитывая, что живу исключительно с рынка уже почти два года, приходится встать на путь недалекий от околорынка :) Каюсь, но недостаток средств на счету, а точнее даже то, что расходы перекрывают доходы от торговли, все это стало причиной поиска сотрудничества и предложения создать робота под квик на заказ. Когда начинал торговать, то вход на всю котлету и пересиживание убытков по началу как-то вывозило. Но когда дошел до системного трейдинга с соблюдением рисков и ММ доходность упала, правда и нервы стали целее.

    Вдруг кому интересно что-то заполучить в виде скрипта луа, или индикатора какого. Сразу оговорюсь, до сего момента на заказ ничего не писал, расценок не знаю, но, полагаю, с заинтересованным человеком договоримся.

    Буду рад обратной связи и всякого рода помидорного закидывания :)

    С уважением, Виталий.

    Авто-репост. Читать в блоге >>>
  9. Аватар Алексей
    Вчера второй день программирования на lua и четыре часа искал параметр, который запрашивает цену закрытия предыдущего дня через функцию getParamEx

    В итоге нашёл через форум quik со ссылкой на сайт:

    76 PREVLEGALCLOSEPR NUMERIC Цена закрытия предыдущего дня


    euvgub.github.io/quik_user_manual/ch8_12_1.html

    оказывается в lua зашиты константы qpile
    оставлю здесь на память.
  10. Аватар Врач-бондиатОр
    Посоветуйте программу для редактирования Lua
    Всем привет!

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

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

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

    Авто-репост. Читать в блоге >>>
  11. Аватар Vitaliy
    Vitaliy, данная задача решается следующим образом (даю алгоритм варианта готовой отработки автороллирования):

    1. Задается функция определения экспирируемого инструмента и нового (целевого) инструмента с ближайшей(например) датой следующей экспирации по, например, маске: «SR» — маска фьючей Сбера.
    Использовал штатные функции QLUA getClassSecurities(ClassCode),
    getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    2. Задается функция определения самого момента роллирования с использованием getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    3. Задается функция расчета параметров двух транзакций: одной — закрытие текущей позиции по экспирируемому инструменту; второй — открытие новой позиции по целевому инструменту.

    4. Формируются таблицы транзакций с обособленными кодами id транзакций для автоматического контроля и сопровождения ордеров.

    5. Отправка транзакций по моменту времени (функция 2) и инструменту (функция 1).

    Eugene Bright, Спасибо! Хорошая логика.
  12. Аватар Eugene Bright
    Vitaliy, данная задача решается следующим образом (даю алгоритм варианта готовой отработки автороллирования):

    1. Задается функция определения экспирируемого инструмента и нового (целевого) инструмента с ближайшей(например) датой следующей экспирации по, например, маске: «SR» — маска фьючей Сбера.
    Использовал штатные функции QLUA getClassSecurities(ClassCode),
    getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    2. Задается функция определения самого момента роллирования с использованием getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    3. Задается функция расчета параметров двух транзакций: одной — закрытие текущей позиции по экспирируемому инструменту; второй — открытие новой позиции по целевому инструменту.

    4. Формируются таблицы транзакций с обособленными кодами id транзакций для автоматического контроля и сопровождения ордеров.

    5. Отправка транзакций по моменту времени (функция 2) и инструменту (функция 1).
  13. Аватар Vitaliy
    LUA - код инструмента - вопрос
    Доброго дня, уважаемые коллеги! 

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

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

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

    С уважением, Виталий.

    Авто-репост. Читать в блоге >>>
  14. Аватар Eugene Bright
    LUA: Построитель графиков. Просто поделиться. (по заявкам - сложение и вычитание графиков)
       Предыдущий краткий постик вызвал определенный интерес, что настраивает на позитив.

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

    Сложение и вычитание графиков

    Пока всё просто...

    ссылка на архив -здесь.

    Авто-репост. Читать в блоге >>>
  15. Аватар Turbo Pascal
    TurboStop (автостоп)
    Искал скрипт по автоматическому выставлению стопа при входе в сделку. Когда-то пользовался скриптом, который заказывал давным давно у какбыгобота (который конечно пришлось переписывать), но и он прекратил работать при переходе на QUIK 8.

    Вариантов для квика нашел немного.

    Из платного: несколько, от 1500 до 12000, в зависимости от наглости продавца (но никак не характеризует сам скрипт). Жаба не завизировала, ибо, на мой взгляд, это скрипт простой, как винтовка Мосина (странно что разработчики квика никак это не сделают, хотя их уже давно просят).

    Из бесплатного:
    1) http://o-s-a.net/forum/threads/23
    Не попробовал, т.к. скачать так и не удалось. Авторизоваться на этом кривом сайте то ещё приключение.
    2) Автостоп от какбыгобота. У него всего две проблемы: он не наботает, и он тащит с собой закрытые библиотеки и EXE-файл для настройек, которые и так можно поправить в текстовых файлах. Это стрём — х.з. что наш знаменитый говнокодер туда встроил.

    Авто-репост. Читать в блоге >>>
  16. Аватар Денис Базарнов
    Прилипала для Quik


    Всем привет. В своих прошлых постах я писал, что увлекся анализом обезличенных сделок.
    Вот что описывал:
    https://smart-lab.ru/blog/583818.php
    https://smart-lab.ru/blog/584792.php

    В комментариях и личных сообщениях меня активно просили разработать аналог «Прилипалы» для Квика (Quik). Ну не прошло и полгода, как сделал. Забрать можно вот отсюда:
    https://кбс.онлайн/soft.html

    На странице есть бесплатная версия, полностью аналогичная таблице в Excel, пользуйтесь на здоровье.

    Но… ну или как говорил Джобс «Ах да, забыл сказать… » — в своих поисках я ушел дальше, а именно:
    1) Реализовал индикацию изменения скорости сделок. Как сделал и зачем? Как: считаю каждую минут число сделок, через минуту с момента запуска скрипта начинаю делить общее число сделок на количество прошедших минут. Так получаем среднюю скорость. Чем больше прошло времени, тем объективнее средняя скорость. Ну а резкое изменение скорости фиксируется когда текущая скорость вдвое выше средней. Зачем: на момент осуществления больших сделок резко вырастает скорость. Почему? Представьте «боковое» движение: цена меняется не сильно, кто-то «немного» покупает, кто-то продает. И тут приходят «ребята с большими деньгами» и выкупают большой объем акций, тем самым закрывая большой объем выставленных заявок. Поэтому и скорость резко увеличивается.
    2) Подгружаю весь архив обезличенных сделок с начала торгового дня. Предидущая версия Прилипалы (та которая в Excel-е) — работала в режиме реального времени.
    3) Начал экспериментировать с Телеграммом — создал канал kbs.online (



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

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

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

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

    Авто-репост. Читать в блоге >>>
  18. Аватар Fin-65
    Нужен индикатор MACD для квика, стандартный не катит, нужен как в МТ4 стоял. второй который залил на яндекс yadi.sk/d/hbfIYDrc_rNXWw

    код
    //+------------------------------------------------------------------+
    //| Custom MACD.mq4 |
    //| Copyright 2005-2014, MetaQuotes Software Corp. |
    //| www.mql4.com |
    //+------------------------------------------------------------------+
    #property copyright «2005-2014, MetaQuotes Software Corp.»
    #property link «www.mql4.com»
    #property description «Moving Averages Convergence/Divergence»
    #property strict

    #include <MovingAverages.mqh>

    //--- indicator settings
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Silver
    #property indicator_color2 Red
    #property indicator_width1 2
    //--- indicator parameters
    input int InpFastEMA=12; // Fast EMA Period
    input int InpSlowEMA=26; // Slow EMA Period
    input int InpSignalSMA=9; // Signal SMA Period
    //--- indicator buffers
    double ExtMacdBuffer[];
    double ExtSignalBuffer[];
    //--- right input parameters flag
    bool ExtParameters=false;

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int OnInit(void)
    {
    IndicatorDigits(Digits+1);
    //--- drawing settings
    SetIndexStyle(0,DRAW_HISTOGRAM);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexDrawBegin(1,InpSignalSMA);
    //--- indicator buffers mapping
    SetIndexBuffer(0,ExtMacdBuffer);
    SetIndexBuffer(1,ExtSignalBuffer);
    //--- name for DataWindow and indicator subwindow label
    IndicatorShortName(«MACD(»+IntegerToString(InpFastEMA)+","+IntegerToString(InpSlowEMA)+","+IntegerToString(InpSignalSMA)+")");
    SetIndexLabel(0,«MACD»);
    SetIndexLabel(1,«Signal»);
    //--- check for input parameters
    if(InpFastEMA<=1 || InpSlowEMA<=1 || InpSignalSMA<=1 || InpFastEMA>=InpSlowEMA)
    {
    Print(«Wrong input parameters»);
    ExtParameters=false;
    return(INIT_FAILED);
    }
    else
    ExtParameters=true;
    //--- initialization done
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Moving Averages Convergence/Divergence |
    //+------------------------------------------------------------------+
    int OnCalculate (const int rates_total,
    const int prev_calculated,
    const datetime& time[],
    const double& open[],
    const double& high[],
    const double& low[],
    const double& close[],
    const long& tick_volume[],
    const long& volume[],
    const int& spread[])
    {
    int i,limit;
    //---
    if(rates_total<=InpSignalSMA || !ExtParameters)
    return(0);
    //--- last counted bar will be recounted
    limit=rates_total-prev_calculated;
    if(prev_calculated>0)
    limit++;
    //--- macd counted in the 1-st buffer
    for(i=0; i<limit; i++)
    ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
    iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
    //--- signal line counted in the 2-nd buffer
    SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
    //--- done
    return(rates_total);
    }
    //+------------------------------------------------------------------+

  19. Аватар XoraX
    Бесплатный робот на quik XoraX боковик на lua, нефть Brent (обновление)
    Давно я сюда ничего не писал. Некогда было и работы много.
    Ну ладно, поехали ))

    Что нового в роботе, для тех кто следит:

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


    Бесплатный робот на quik XoraX боковик на lua, нефть Brent (обновление)


    Робот обожает волатильность, это важно знать. 

    Шортить бот не умеет

    Отдаю так как есть, без претензий ко мне

    Сразу хочу обратиться к тем кто пожелает его поставить и попробовать. 

    Легких денег не бывает и граалей тоже


    Авто-репост. Читать в блоге >>>
  20. Аватар Врач-бондиатОр
    Вопрос по Луа 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>


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

    Авто-репост. Читать в блоге >>>
  22. Аватар Евгений Шибаев
    QLua скринер, или то, о чём мечтал Weddy!
    Всем, привет!
    Мечты сбываются (и не только у Газпрома)! Weddy, надеюсь этим постом я полностью закрываю ваше ТЗ.
    QLua скринер, или то, о чём мечтал Weddy!
    Суть скринера в вышеизложенном пожелании. Т.к. первый и второй скринеры не удовлетворяли требованиям ТЗ Weddy.
    Надеюсь, теперь все ок. Выглядит так:
    QLua скринер, или то, о чём мечтал Weddy!

    Авто-репост. Читать в блоге >>>
  23. Аватар уже не пенсионер
    бюджетный вариант удаленного робота на виртуальном сервере
    Последние пару дней смотрел вебинар организованный Альфадиректом и Мосбиржей по торговле с помощью роботов в системе AD4. Альфа не изменяет своей стратегии и пытается разрабатывать (имхо напрасно) «велосипед». Но сейчас не о них. Я давно пытаюсь понять, возможно ли реализовать торговлю с помощью смартфона, но при этом иметь возможность использовать свои стратегии/советники. Все «тяжелые» варианты типа TCЛаб и прочие меня не устраивают, т.к. мое кредо — чем проще, тем надежнее и дешевле. Мне хотелось бы услышать критику уважаемой аудитории СЛ своего видения на бюджетный вариант удаленного «робота/советника» на виртуальном сервере. В качестве ПО, я считаю, что QUIK со встроенным QLUA, вполне подойдет для простейших вычислений. Для обработки инфы и организации интерфейса (подойдет даже эл почта), мне проще использовать Python 3. Мои эксперименты с VPS показали, что можно запустить эту связку  Windows XP — QUIK — QLUA — Python   и, вполне сносно работать, на самом дешевом варианте с 512 МБ / 7 ГБ (RAM/HDD). Стоимость аренды такого сервера меньше 100 р в месяц. Торговые поручения можно выставлять «ручками» через мобильное приложение. Уверен, что подобное решение имеет право на жизнь для случая, если сигналы приходят не чаще чем несколько раз в день.

    Авто-репост. Читать в блоге >>>
  24. Аватар Врач-бондиатОр
    Вопрос 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, битовые флаги и пр., но изложено это как-то непонятно.
    Помогите плиз..)
    ЗЫ: обещаю поставить лайк хорошим ответам )




    Авто-репост. Читать в блоге >>>
  25. Аватар Евгений Шибаев
    QLua скринер. Обновление.
    Всем привет!
    В продолжение топика «QLua скринер в 10 строк кода. Или „за базар отвечаю“, можно качать обнулённый обновлённый скринер.
    Выглядит так в статике:
    QLua скринер. Обновление.
    А так в динамике.
    Если в прошлом скринере отображалось изменение текущей цены от цен закрытия за соответствующее количество торговых сессий (список „срезов“ задается пользователем), то в этом будет две таблицы. Первая таблица — изменение текущей цены от предыдущих хаев (чуть не оговорился...) за N-торговых сессий, вторая — от предыдущих лоёв.
    В первой таблице от минимумов выделена строка с длинными ОФЗ. Видно, что минимум цены за 30 торговых сессий был на прошлой сессии.
    А во второй таблице, мы видим, что Яндекс и Магнит обновили сегодня свои максимумы за последние 90 торговых сессий.
    Таким образом, техзадание (ТЗ) участника тусовки Weddy практически выполнено, остается доделать, как он просил, тот же функционал, только относительно списка заданных дат.

    Авто-репост. Читать в блоге >>>
Чтобы купить акции, выберите надежного брокера: