Alex Hell
Alex Hell Ответы на вопросы
14 февраля 2018, 13:39

(QUIK Lua) Здравствуйте, я знаю что вас задолбали такие как я) но прошу помочь с кодом, конкретно нужен код для получения цены открытой позиции,цена нужна для выставления точного стоп ордера. Спасибо

(QUIK Lua) Здравствуйте, я знаю что вас задолбали такие как я) но прошу помочь с кодом, конкретно нужен код для получения цены открытой позиции, цена нужна для выставления точного стоп ордера.Спасибо
11 Комментариев
  • Сергей Кузьминов
    14 февраля 2018, 16:43

    Есть функция. Она бегает по «trades» циклом и ищет последнее значение. На вход функция получает SEC_CODE, например RIH8, SiH8. Возвращает она цену последней ВАШЕЙ сделки.

    function getLastPrice(sec)
          for i = 0,getNumberOf(«trades») do
               local pr = getItem(«trades», i)
               if pr ~= nil and type(pr) == «table» then
                    if pr.sec_code == sec and i == getNumberOf(«trades»)-1 then
                           return pr.price
                    end
                end
          end
    end



    В вашей main функции создайте локальную переменную, которая в необходимый момент будет дергать эту функцию. Не забудьте передавать в параметрах код инструмента.

    local lastPrice = getLastPrice(SEC_CODE)

    Ну как-то так.

    • Сергей Кузьминов
      16 февраля 2018, 12:53
      Alex Hell, попробуйте сделать так в функции main в цикле.

      while is_run do
             local lastPrice = getLastPrice(p_seccode)
             message («Цена:»..lastPrice) 
      sleep(10)

      Если я правильно понимаю, cb получает на вход index, т.е. каждую свечу? По идее, каждую свечу вы должны получать значение цены последней вашей сделки. Но так как переменная локальная, функция main ничего про нее не знает и она видна только в функции cb.




    • Сергей Кузьминов
      16 февраля 2018, 16:39
      Alex Hell, не совсем понятен вопрос
        • Сергей Кузьминов
          16 февраля 2018, 17:44
          Alex Hell, не знаю, со стаканом не работал. Но можно получить цену последней сделки
          local lPrice = tonumber(getParamEx(«SPBFUT»,SEC_CODE,«last»).param_value) 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн