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

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

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

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

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

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

    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