Вопрос-ответ

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 8, среднее: 5,00 из 5)
Загрузка...
LogoNew
Если Ваш вопрос не имеет отношения к какой-то определенной статье на данном сайте, то, пожалуйста, задавайте его в комментариях здесь.

Добавить комментарий

Вопрос-ответ: 2 385 комментариев

  1. Здравствуйте, подскажите, как узнать цену открытия дня или цену первой сделки сессии без data source . В таблице текущих торгов есть, а в справочнике getparamex не нашел . Спасибо

    1. Здравствуйте.
      описание параметров для getParamEx находится в info.chm -> 8-й раздел -> Функции для получения значений Таблицы текущих торгов.
      В самом низу будет ссылка на значения параметров функций. Вам пригодится.

  2. Здравствуйте. Возможно ли добавлять в файл .dat с котировками из папки \archive больше котировок за предыдущие периоды из текстового файла ? Т.е. есть текстового файл с котировками и его можно было загнать QUIK для анализа?

  3. Здравстсвуйте.
    Почему иногда происходит покупка по 1 лоту , когда в заявке стоит несколько лотов по рыночной цене и условие робота подразумевает совершение сделки только в тот момент , когда в стакане есть даже большее количество лотов ?

      1. Но получается так , что 60 человек по 1 лоту поставили по одной цене одновременно? Именно с 60 тью лотами такое происходило в моем примере и не один раз.
        Или как формируется сделка по заявке в тонком механизме - не совсем понятно, объясните пожалуйста и как можно избежать таких ситуаций, как подстраховаться?

        1. не обязательно одновременно, кто-то вчера поставил заявку, кто-то неделю назад, ну вы поняли.
          ваша позиция формируется путем заключения сделок с несколькими контрагентами, от чего вы собрались страховаться?

            1. Никто с вас не будет брать комиссию за отдельную сделку, если эти сделки вызваны исполнением одной заявки.
              Никто не может знать - сколько сделок пройдет по заявке - никто.

  4. Добрый день.
    Пытаюсь использовать функцию AddLabel. В хепле написано, что дату и время метки нужно передавать в виде числа:
    DATE DOUBLE Дата в формате «ГГГГММДД», к которой привязана метка
    TIME DOUBLE Время в формате «ЧЧММСС», к которому будет привязана метка
    Не пойму как записать в указанном формате дату и время в вещественное число. Пробовал передавать сроки типа "20211020" и "180000" - метка не добавляется. Как правильно сформировать эти параметры?

  5. Здравствуйте.
    Подскажите какой ноут по характеристикам процессора и оперативки выбрать для оптимальной работы Quik c одновременным включением 10-20 роботов , не сложного уровня ( открыто будет 10-20 таблиц одновременно, несколько математических выражений, 1-2 функции коллбэка, и 3 последовательных заявки на сделку). Какой минимум выбрать ?

  6. Здравствуйте.
    Подскажите ,если не работают функции обратного вызова , просто не обрабатываются, что делать???
    пример скрипта :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    is_run = true
    function main()
        while is_run do
            sleep(50)
        end;
    local depo={}
         function go()
    						local y=1
    						local depo = getDepoEx ("MC0003300000","10KXAX","VTBE","L01-00000F00",2)
    						if  type(depo)~="table"  then
    						message( "Таблицы  НЕТ, есть только..  "..type(depo),1)
    						else
    						y = depo.currentbal
                           end
    						return  y
    					end
    message("количество акций     "..tostring (y),1)
    end
     
     
    function OnStop()
    is_run = false
    end
    1. Привет!
      У вас ЛОКАЛЬНАЯ функция go() стоит ниже цикла поддержания работы потока main(). И у вас из функций обратного вызова только OnStop.
      Предполагаю, что подразумевается обработка события

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      local is_run = true
      function OnDepoLimit(dlimit)
        message( "OnDepoLimit\n" ..
         "Счет депо: " .. dlimit.trdaccid .. "\n" ..
          "Код клиента: " .. dlimit.client_code .. "\n" ..
          "Код инструмента: " .. dlimit.sec_code .. "\n" ..
          "Текущий остаток : " .. dlimit.currentbal .. "\n" , 2)
      end
       
      function main()
          while is_run do
              sleep(1)
          end;
      end
       
       
      function OnStop()
      is_run = false
      end
      1. Да, необходимо отследить результат сделки, поступление акций на счет, чтобы дальше выставить заявку на следующую сделку. Здесь фрагмент робота .

      2. Понял идею. Попробую сделать. Просто в самом начале по учебнику так пытался сделать , не получилось, может ошибся тогда. Проверю Спасибо.

    1. Привет!

      1
      2
      3
      4
      5
      6
      7
      8
      
      function main()
        while is_run do
          --тут код по обработке события исполнения стоп заявки, лучше сделать функцию и вызывать ее по необходимости
          while is_run do
            if стоп заявка исполнена then break end
          end
        end
      end