Сирануш (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, ты думаешь что он выхватывает данные из потоков других скриптов? Я грешу на то, что он некорректно получает данные, из соседних таблиц.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, да и зачем, я попытался обратить внимание разработчиков. Не понял только зачем второй скрипт он вроде ниче не возвращает?  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, я перебрался на альфу на AD4. Там у них своя песня, стало нехватать возможностей, явился обратно)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, спасиб те добрый человек, а то я думал уж, что я один во Вселенной)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
На самом деле, хотелось бы обратиться к читающим эту ветку, чтобы вы запустили у себя код( заменив вопросики на соответсвующие значеиния) из 71 поста и если подобное всплывет отписали сюда.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Egor Zaytsev, не знаю странно все это, но я бы увеличил кол-во наблюдаемых инструментов и длительность мониторинга( было бы хорошо чтоб повисели пару неделек без остановок и максимально много скриптов на разных инструментах). У меня в районе 50 скриптов висят и не на каждом всплывает этот баг и не не каждый день.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Скрипт в 71 посте есть, только вместо вопросов вставить нужные значения. Там же есть проблема отражена, то что выводится в сообщении. Не думаю, что я смогу за секунду все это проделать пока значения вернуться в правильное состояние. У вас нет такой проблемы или вы не запускали?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed, с 45 по 48 посты писал уже, что отключился от интернета и это была суббота, все равно всплывало. Я если честно для себя решил проблему(частично) с помощью контроля переменных. Проблему обрисовал, код, версию предстваил. Если есть желание подловить с помощью колбэков можешь у себя запустить, заодно посмотишь есть ли у тебя такой баг.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
TGB, написал же что за версия и скрин привел, какие еще могут быть вопросы? Если есть сомнения то я не буду переуюеждать.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Артем, критикуешь меня и пишешь, что критиковать людей
Цитата
Артем написал:
как минимум глупо.
Действительно
Цитата
Артем написал:
косяки неизбежны
Буду теперь помалкивать)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
TGB,
Цитата
TGB написал:
Если вы работаете с QUIK версии >= 8.5 и < 8.13.1.16, то в них есть ошибка синхронизации, которая может проявляться в виде сбоев (смотрите ветку Отладка QUIK 8.13 ...).
Между этими версиями наверное десятиление и в них есть ошибка синхронизации, которая может проявляться в виде сбоев ( и приводить к потере денег клиентов ), это вообще как, нормально???!!! Это все равно, что продавать самовозгарающиеся авто.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
TGB, вы вообще имеете отношение к разработчикам или как я пользователь?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
TGB терминал сам обновлятся временами. https://wampi.ru/image/R85XdFg
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
TGB, так никто и не спрашивал про версию. Сейчас стоит 8.13.3.1.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Добрый день, получается что из getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND).currentbal пытаюсь получить данные в TotalLots. Для сравнеия и выявления ошибки использую memoryLots. Код выше.
РАЗРОБОТЧИКИ
 
есть проблема ( https://forum.quik.ru/forum10/topic6503/?PAGEN_1=2 ) не могу понять в чем дело
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
ETRN_SPB   date - time  Wed Jun  2 10:06:06 2021   TotalLots  1.0   memoryLots   2.0
ETRN_SPB   date - time  Wed Jun  2 10:06:07 2021   TotalLots  2.0   memoryLots   1.0
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
седня прям с утра поймался баг :

FOLD_SPB   date - time  Wed Jun  2 09:34:10 2021   TotalLots  1.0   memoryLots   2.0
FOLD_SPB   date - time  Wed Jun  2 09:34:11 2021   TotalLots  2.0   memoryLots   1.0

из кода убрал еще одну переменную x,  как видно не в этом дело

SEC_CODE          = ???????????              
CLASS_CODE        =???????????              
CURR_CODE         =???????????              
ACCOUNT           = ???????????          
CLIENT_CODE       =???????????              
TAG               =???????????    
FIRM_ID           =???????????      
LIMIT_KIND        = 365                    

memoryLots = 0 -- сюда запоминаем кол-во лотов полученных из терминала, если не равно TotalLots и не было сделок то...

function main()
while true do

  local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
  if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end

  if( memoryLots~=TotalLots ) then
      message(SEC_CODE.."   date - time  "..tostring(os.date()).."   TotalLots  "..tostring(TotalLots).."   memoryLots   "..tostring(memoryLots),3 )
      memoryLots=TotalLots
  end

sleep(1000)
end
end
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
С утра весь день без ошибок и вот он долгожданный)))

FOLD_SPB   date - time  Tue Jun  1 15:33:36 2021   TotalLots  4.0   mLots   2.0   x   4.0
FOLD_SPB   date - time  Tue Jun  1 15:33:37 2021   TotalLots  2.0   mLots   4.0   x   2.0


код минимизировал и добавил даду/время:


SEC_CODE          = ??????????                
CLASS_CODE        =??????????              
CURR_CODE         = ??????????              
ACCOUNT           = ??????????          
CLIENT_CODE       =??????????            
TAG               =??????????            
FIRM_ID           = ??????????      
LIMIT_KIND        = 365                    

mLots = 0


function main()
while true do

  local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
  if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end

  x=  TotalLots

  if( mLots~=TotalLots ) then
      message(SEC_CODE.."   date - time  "..tostring(os.date()).."   TotalLots  "..tostring(TotalLots).."   mLots   "..tostring(mLots).."   x   "..tostring(x),3 )
      mLots=TotalLots
  end


sleep(1000)
end
end
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, ну вот уже что то, если еще и мой скрипт запустить и оставить поработать то можно и разные циферки получить, что может привести к продаже/покупке( в зависимости от ситуации), а потом к обратной покупке/продаже)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, код есть, логика ясна, где у меня возникает глюк привел, больше информации кому надо сам для анализа наковыряет, разрабы не ответили что у них все идет как по маслу и вообще ничего не ответили. У тебя тоже работает все как часы, проверял?  Я больше ниче писать в пустоту не буду, есть желание пожалуйста, нет желания понятно)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Цитата
Сирануш написал:
Угадывать за вас, что у вас происходит, никто не будет.
Гадать за меня ничего не надо, гадаешь собсна за себя, я просто говорю что у меня есть косяк возможно и у вас есть.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, даже при переподключении между серверами не должно быть никаких ошибок это же понятно. Ошибка всплывает даже при отключенном интернете и при включенном и без совершения торговых действий не до не после ошибки на достаточном интервале времени. Перебирать таблицы за разработчиков смысла особого не вижу, даже если и найду что то исправить не смогу, пишу суда что у меня баг и где они? Если есть желание поковыряться код есть, логику изложил.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, я не правильно пытаюсь получить значения через
  local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
  if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end
?
Зачем мне обязательно
Цитата
Старатель написал:
Старатель  написал:Смотрите таблицу, возвращаемую getDepoEx, сравнивайте, какие поля поменялись
делать перебор полей?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Старатель, а почему бы не запустить все же код даже который выложил в предыдущем посте и самому посмотреть есть ли баг или нет. А если все же всплывет, то уж потом разбираться почему
Цитата
Старатель написал:
Не может. tonumber не меняет вещественное на целое.
Может message округлил до целого, а может как раз и получил целое число из таблиц( как раз об этом я и пытаюсь докричаться).
Я не понимаю почему вы пытаетесь меня уличить в каком то сокрытиии хотя есть код который можно запустить самому и проверить. Зачем все эти бодания вокруг да около, если проблема то не в этом? Вроде код не содержит ничего криминального и не занимает много машиноресурсов, торговых действий не содержит и не может помешать торговле основного скрипта( просто берет данные из таблиц и если видит несоответсвие выводит сообщение для анализа), код уже представлен, чтобы никого не напрягать с программированием.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, думаю даже можно такой код поставить на реал, он просто будет брать данные с реального счета, но делать то ничего не будет( кроме как брать данные и караулить баг) и мешать основному торговому роботу, если всплывет ошибка то засимафорит. Но это по желанию.


SEC_CODE          = 'SBER'
CLASS_CODE        = 'QJSIM'
ACCOUNT           = 'NL0011100043'
CLIENT_CODE       = '11609'
FIRM_ID           = 'NC0011100000'
LIMIT_KIND        = 365                  -- <<<<<<<<

mLots = 0
L=0

function main()
while true do

   local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
   if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end

   x=  TotalLots

   if( mLots~=TotalLots ) then
       message(SEC_CODE.."   TotalLots  "..tostring(TotalLots).."   mLots   "..tostring(mLots).."   x   "..tostring(x),3 )
       mLots=TotalLots
   end


sleep(1000)
 end
end
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Цитата
Старатель написал:
Цитата Сирануш  написал:запустил терминал( сегодня суббота) и отключился от интернета вот что получилось:
10:48:01CORR_SPB   TotalLots  2.0   mLots   1.0   x  
2.010:48:01CORR_SPB   TotalLots  1.0   mLots   2.0   x   1.0
А где строка с первоначальным mLots = 0 ?
баг плавающий, то есть то есть то нет, скрипт был запущен и принял нормальны данные, а потом получил корявые по этому никаких mLots = 0

Цитата
Старатель написал:
Далее, обратите внимание на эту строку
Цитата Сирануш  написал:10:54:40 CORR_SPB   TotalLotsРєРѕРїРёСЏ  0   mLots   1.0   x   0
Почему вдруг TotalLots стал integer в то время, как getDepoEx возвращает currentbal во float?
может потому что:
Цитата
Сирануш написал:
  if tblMinLot==nil       then MinLot=0       else MinLot=tonumber(tblMinLot.param_value)             end        
 if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end    
выделил красным в коде( tonumber https://www.cronos.ru/kb-1513.html ).


Цитата
Старатель написал:
Напрашивается вывод:Цитата Nikolay  написал:Либо Вы приводите не все сообщения, либо не полный код.
код полный и без всяких вырезок/врезок , можно просто выводить переменные для контроля и TotalLots думаю эффект будет тот же . Проще наверное запустить у себя код и посмотреть, есть такой косяк или нет, если нет желания я не настаиваю. Просто пытаюсь донести, что у меня всплывает баг, который может приводить к потере денег из-за корявого получения данных и продажи или покупку роботом крупного лота, если торговля пляшет от объема позиции. Если тебе говорят, что у машины которую ты водишь время от времени могут отказывать тормоза и тебя это не смущает, то тут уже дело хозяйское. Не понимаю почему разроботчики отмалчиваютя, либо пофиг, либо выгодно такое поведение, либо у них нету такого косяка?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, поставь на реал на хотябы на пару деньков и понаблюдай.  LIMIT_KIND        = 0 почему равен 0? Если есть желание поставь посмотри, нет то нет
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, поставь мой код на все свои инструменты, что есть в портфеле, не меняя строк не добавляя ничего кроме ( тех данных SEC_CODE .          
CLASS_CODE и тд) и не убирая ничего от себя для чистоты эксперимента и посмотри недельку что будет, а потом уже пытайся меня обвинить что я не прав.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Цитата
Nikolay написал:
Второе, даже просто глядя на код, возникает вопрос: почему у Вас первое сообщение содержит mLots не 0?При инициализации значение переменной  = 0. После первого сообщения произойдет присвоение некому значению, отличному от 0.У меня так и выводится одно единственное сообщение, и более ничего.

Цитата
Сирануш написал:
10:54:39 CORR_SPB   TotalLotsРєРѕРїРёСЏ  1.0   mLots   0   x   1.0    
10:54:40 CORR_SPB   TotalLotsРєРѕРїРёСЏ  0   mLots   1.0   x   0
где тут первое сообщение и где тут не mLots не 0?



Цитата
Nikolay написал:
Нет такого поведения - это раз. Не при подключении к серверу, ни при отсутствии оного.
это плавающий косяк, может слышали о таком, то есть то нет? может весь день барабанить, а потом внезапно появиться.

Цитата
Nikolay написал:
Либо Вы приводите не все сообщения, либо не полный код. Но даже если у Вас это происходит, то на тестовом сервере нет.
Код целиком, и то что был разово запущен и тут же выключен в попыхах, чтобы ничего не случилось вдруг и не задеть ваше самолюбие не значит что нет бага. Вы кто разработчик почему вы пытаетесь меня разубедить в том что есть? Вы пртвели свой код который точно получает те переменные, что я хочу получать без ошибок и чтоб я смог проверить и сказать вам спасибо, НЕТ. Вы пытаетесь мне, что то доказать но уходите от темы. Нет инета вижу баг, а вы мне это брокер виновать, как у вас с логикой вообще?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, причем тут брокер, если от интернета отключен был компьютер? Как может он транслировать данные когда нет интернета в субботу??? Тикер бумаги указан в СООБЩЕНИИ там же и биржа, какие колбэки, если вы этого не видите, посты из разряда я все сказал сам дурак. Простое упорство и не признание очевидных вещей, зачем этот дискут вы просто доказываете свою правоту вместо того чтобы докапываться до истины.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
вот аналогичный робот, но уже со включенным интерентом
10:54:39 CORR_SPB   TotalLotsРєРѕРїРёСЏ  1.0   mLots   0   x   1.0
10:54:40 CORR_SPB   TotalLotsРєРѕРїРёСЏ  0   mLots   1.0   x   0
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, ну что специально для тебя запустил терминал( сегодня суббота) и отключился от интернета вот что получилось:
10:48:01CORR_SPB   TotalLots  2.0   mLots   1.0   x   2.0
10:48:01CORR_SPB   TotalLots  1.0   mLots   2.0   x   1.0
Что теперь будешь предлагать, какую таблицу смотреть?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Вот я и хочу, чтобы не мы пользователи пытались решить проблему, а разработчик. Вы бы тоже могли запустить код и повесить в поток на пару тройку инструментов и отписаться если проблема всплыла. А если говорить, что дальше будет, если проблемы не будет, то можно тогда вообще ничего не делать, а зачем.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, опять же залез в таблицы увидел, что есть проблема, что дальше, после того как я увидел она сама по себе исчезнет навсегда, как узнаем это брокер подсунул и терминал, и даже если мы узнаем откуда все это дело берется, чтодальше то?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, опять же, если брокер криво котирует, смысл лезть в таблицы depo_limits , если там будут те же кривые данные что подсунул брокер?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay,а по поводу трансляции данных вы так утверждаете как будто точно знаете, что это не терминал сбоит, а брокер котирует криво, откуда такая уверенность?
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, команда вроде как вызывает одно и то же поле, что там может меняться, вызов статичен. Вы бы сами попробовали, код выше есть.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay, не совсем понимаю смысл этого действия. Вроде как правильно вызываю, ошибка не постоянно, но проскальзывает, переберу я таблицы баг от этого не пропадет.
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
только что по второму роботу
18:47:51 CORR_SPB   TotalLotsРєРѕРїРёСЏ  1.0   mLots   2.0   x   1.0
18:47:52 CORR_SPB   TotalLotsРєРѕРїРёСЏ  2.0   mLots   1.0   x   2.0
Хотелось бы увидеть комментарии разработчиков
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikolay.сделки по акциям СПБ, там вроде как Т+2, но это не суть, потому как при отсутсвии сделок через секунду получает разные значения  см:
15:08:03 CORR_SPB   CORR_SPB   TotalLots  3.0   mLots   1.0   x   3.0
15:08:04 CORR_SPB   CORR_SPB   TotalLots  1.0   mLots   3.0   x   1.0
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Nikola, при Limit_kind = 2 та же самая песня
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
SEC_CODE          =   ?????????            
CLASS_CODE        = ??????????  
CURR_CODE         = ???????          
ACCOUNT           =?????????        
CLIENT_CODE       =??????????          
TAG               = ????????????            
FIRM_ID           =?????????      
LIMIT_KIND        = 365                    

mLots = 0
L=0

function main()
 while true do          

    local tblAsk =          getParamEx(CLASS_CODE,  SEC_CODE, "OFFER")
    local tblBid =          getParamEx(CLASS_CODE,  SEC_CODE, "BID")
local tblStatus =       getParamEx(CLASS_CODE,  SEC_CODE, "STATUS")  
    local tblMinLot =       getParamEx(CLASS_CODE,  SEC_CODE, "LOTSIZE")
    local tblBalance =      getMoneyEx(FIRM_ID, CLIENT_CODE, TAG, CURR_CODE,LIMIT_KIND)
    local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
local tblMinStepPrice = getParamEx(CLASS_CODE,  SEC_CODE, "SEC_PRICE_STEP")
                     
    if tblAsk==nil          then Ask=0          else Ask=tonumber(tblAsk.param_value)                   end  
    if tblBid==nil          then Bid=0          else Bid=tonumber(tblBid.param_value)                   end  
if tblStatus==nil       then Status=0       else Status=tonumber(tblStatus.param_value)             end  
    if tblMinLot==nil       then MinLot=0       else MinLot=tonumber(tblMinLot.param_value)             end    
    if tblBalance==nil      then Balance=0      else Balance=tonumber(tblBalance.currentbal)            end  
    if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end    
if tblMinStepPrice==nil then MinStepPrice=0 else MinStepPrice=tonumber(tblMinStepPrice.param_value) end
 
x=  TotalLots
 
    if( Ask>0 and Bid>0 and Ask>Bid ) then

   L       = TotalLots / MinLot
       -- впвапвп
   if( mLots~=TotalLots ) then
           message(SEC_CODE.."   TotalLots  "..tostring(TotalLots).."   mLots   "..tostring(mLots).."   x   "..tostring(x),3 )
           mLots=TotalLots
       end

end
   
  sleep(1000)
  end
end


Вот код который выдавал сегодня ошибки
15:08:03 CORR_SPB   CORR_SPB   TotalLots  3.0   mLots   1.0   x   3.0
15:08:04 CORR_SPB   CORR_SPB   TotalLots  1.0   mLots   3.0   x   1.0

поставил в поток крутиться аналогичный, но без конструкции  
 if( Ask>0 and Bid>0 and Ask>Bid ) then
    ...
 end
ошибок не выдавал.  
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed, вот код:



SEC_CODE          = ????????          
CLASS_CODE        = ????????                  
CURR_CODE         = ????????                
ACCOUNT           =  ????????              
CLIENT_CODE       =????????                  
TAG               =  ????????                  
FIRM_ID           =  ????????        
LIMIT_KIND        = 365                    

var=0

function main()
 while true do          

    local tblAsk =          getParamEx(CLASS_CODE,  SEC_CODE, "OFFER")
    local tblBid =          getParamEx(CLASS_CODE,  SEC_CODE, "BID")
local tblStatus =       getParamEx(CLASS_CODE,  SEC_CODE, "STATUS")  
    local tblMinLot =       getParamEx(CLASS_CODE,  SEC_CODE, "LOTSIZE")
    local tblBalance =      getMoneyEx(FIRM_ID, CLIENT_CODE, TAG, CURR_CODE,LIMIT_KIND)
    local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
local tblMinStepPrice = getParamEx(CLASS_CODE,  SEC_CODE, "SEC_PRICE_STEP")
                     
    if tblAsk==nil          then Ask=0          else Ask=tonumber(tblAsk.param_value)                   end  
    if tblBid==nil          then Bid=0          else Bid=tonumber(tblBid.param_value)                   end  
if tblStatus==nil       then Status=0       else Status=tonumber(tblStatus.param_value)             end  
    if tblMinLot==nil       then MinLot=0       else MinLot=tonumber(tblMinLot.param_value)             end    
    if tblBalance==nil      then Balance=0      else Balance=tonumber(tblBalance.currentbal)            end  
    if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end    
if tblMinStepPrice==nil then MinStepPrice=0 else MinStepPrice=tonumber(tblMinStepPrice.param_value) end
 
 -- впвапвп
if( var~=TotalLots ) then
       message("TotalLots  "..tostring(TotalLots).."   var   "..tostring(var),3 )
       var=TotalLots
    end

   
  sleep(1000)
  end
end

вместо вопросиков ставим значения своих инструментов. Если скрипт увидит расхождения выдаст сообщение, более ничего не делает.Поставил на тот инструмент, что писал об ошибке пока тишина, понаблюдаю)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Разработчики, что нет такой проблемы или все же я криво что то пытаюсь получить???
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed, я смотрю по таблице "Состояние счета" столбец "Позиция, что вроде как должно соответствовать столбику "Текущий остаток "  в таблице "Позиции по инструментам"
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed запусти скрипт в цикл и создай переменную в которую сохрани значение полученное кол-во бумаг по инструменты, а если переменная и получаемые данные из терминала будут различаться то выведи  сообщение, просто ради спортивного интереса у меня одного такой косяк
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed, может неточно выразился, но мне нужно получать что имеется сейчас в портфеле, то есть то кол-во бумаг что сейчас есть
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
BlaZed меня волнует в основном входящий остаток по бумаге, могу получить любое число  даже тогда, когда ордеров нет пишет в остатке например два, то есть совсем любое( похоже хвататет из соседних строк)
[ Закрыто] Опять ошибка получения кол-ва ордеров скриптом
 
Получаю данные из терминала следующим образ:
    local tblAsk =          getParamEx(CLASS_CODE,  SEC_CODE, "OFFER")
    local tblBid =          getParamEx(CLASS_CODE,  SEC_CODE, "BID")
    local tblStatus =       getParamEx(CLASS_CODE,  SEC_CODE, "STATUS")  
    local tblMinLot =       getParamEx(CLASS_CODE,  SEC_CODE, "LOTSIZE")
    local tblBalance =      getMoneyEx(FIRM_ID, CLIENT_CODE, TAG, CURR_CODE,LIMIT_KIND)
    local tblTotalLot =     getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND)
    local tblMinStepPrice = getParamEx(CLASS_CODE,  SEC_CODE, "SEC_PRICE_STEP")
                     
    if tblAsk==nil          then Ask=0          else Ask=tonumber(tblAsk.param_value)                   end  
    if tblBid==nil          then Bid=0          else Bid=tonumber(tblBid.param_value)                   end  
    if tblStatus==nil       then Status=0       else Status=tonumber(tblStatus.param_value)             end  
    if tblMinLot==nil       then MinLot=0       else MinLot=tonumber(tblMinLot.param_value)             end    
    if tblBalance==nil      then Balance=0      else Balance=tonumber(tblBalance.currentbal)            end  
    if tblTotalLot==nil     then TotalLots=0    else TotalLots=tonumber(tblTotalLot.currentbal)         end    
    if tblMinStepPrice==nil then MinStepPrice=0 else MinStepPrice=tonumber(tblMinStepPrice.param_value) end  


Если я не правильно получаю эти данные поправьте меня, чтоб было правильно. Потому как время от времени в переменные транслируются сосвсем левые данные, из-за чего робот начинает тупо набирать или продавать. Тема уже была такая( https://forum.quik.ru/messages/forum10/message45769/topic5506/#message45769) и видимо ниче не поменялось.  
Страницы: 1 2 След.
Наверх