Андрей (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 След.
Почему не сработала сделка?, демо счет
 
Робот вчера выставил стоп заявку "тейк-профит" , заявка имеет статус Активна, сегодня график поднимался до заданной цены, но сделка не произошла, в чем причина? Я не правильно создаю заявку или мне не хватило встречных заявок на покупку, что бы продать по моей цене или что то другое? Все картинки соединил в одну и выкладываю.
человек (не робот)
Можно ли получить минимальную цену фьючерса?
 
Ок этого достаточно) нужна была только наводка, спасибо)
человек (не робот)
Как считается расчет прибыли и убытка на фьючерсах?
 
Спасибо большое за расширенный ответ, почитаю)
человек (не робот)
Можно ли получить минимальную цену фьючерса?
 
Спасибо
человек (не робот)
Можно ли получить минимальную цену фьючерса?
 
Какие минимальные цены можно получить по текущему фьючерсу, и за какой период? (За текущую сессию, за все время жизни фьючерса, минимально возможная его цена до конца закрытия или за произвольный период, например за последние 10 дней?) И по каким таблицам, если это можно
человек (не робот)
По какой причине не отменяется заявка?, Или где и как можно посмотреть причину отмены транзакции по снятию заявки?
 
Понял, спасибо большое) проверю вечером
человек (не робот)
По какой причине не отменяется заявка?, Или где и как можно посмотреть причину отмены транзакции по снятию заявки?
 
Спасибо за ответ, то что вы написали это понятно и логично, я снимаю стоп заявки, или точнее сказать лимитированные заявки, которые не ушли ещё на сервер, они находятся у брокера и не исполнены. Они должны сниматься и снимаются в ручную, у меня не получается снимать их из программы. Формируется ли какой либо флаг на транзакцию по снятию лимитированной стоп заявки. В таблице транзакции я их не вижу или надо просто настроить обратный вызов на транзакцию и там смотреть флаг не исполнения транзакции? Да еаверно так и надо)
человек (не робот)
Как считается расчет прибыли и убытка на фьючерсах?
 
При отправке транзакции по фьючерсу на покупку у клиента резервируется сумма ГО, а прибылью и убытком что является? Разница в цене самого фьючерса между покупкой и продажей плюс комиссии или разница в ГО на момент покупки и продажи? Думаю этот вопрос тоже глупый, но мне это не понятно)
человек (не робот)
Как Quik "понимает" на каком таймфрейме я хочу купить фьючерс?
 
Спасибо
человек (не робот)
Как бороться с nil?
 
Да все получилось, работает). Спасибо.
человек (не робот)
По какой причине не отменяется заявка?, Или где и как можно посмотреть причину отмены транзакции по снятию заявки?
 
Вот опять это сообщение вылетело(
человек (не робот)
По какой причине не отменяется заявка?, Или где и как можно посмотреть причину отмены транзакции по снятию заявки?
 
Написал простого робота, который покупает по рыночной стоимости и продает по тейк-профиту, но если график пошел не туда (куда надо) ставлю фьючерс на продажу по рыночной стоимости, а стоп- заявку пытаюсь снять, но система Quik выдает сообщение, что снять указанную заявку не может. Самые простые причины допускаю или ошибка в коде или ошибка в определении номера заявки и в коде, но как локализовать причину ошибки не могу понять. Вот часть кода на всякий случай, может кто то что то подскажет?
Поиск номера ордера по номеру транзакции
Код
...
 ordernum=snat_zayvk(trans) --номер заявки по которой была отправлена транзакции на покупку ТП
 stopzayvka(ordernum)
...
function snat_zayvk(tran)
  for i=0,getNumberOf('orders')-1 do --количество записей в таблице
    local orders = getItem('orders', i); -- получает строку с номером i
      if tonumber(orders.trans_id)==tonumber(tran) then
         ordernum=tonumber(orders.order_num)
     end
  end
  return ordernum
end
И код транзакции на снятие заявки по номеру ордера заявки
Код
function stopzayvka(nom_order)
   transid_m=tonumber(osdat());
 local Transaction={
    ['TRANS_ID']   = tostring(transid_m),  
    ['ACCOUNT']    = 'SPBFUT000pf',           
   ['CLASSCODE']  = 'SPBFUT',
    ['ACTION']     = 'KILL_ORDER',
   ['ORDER_KEY']   = tostring(nom_order)
  }
 sendTransaction(Transaction)
   end
человек (не робот)
Как Quik "понимает" на каком таймфрейме я хочу купить фьючерс?
 
Если подавать заявку руками, то наверно заявка сработает на том таймфрейме на котором открыт график. А если я подаю транзакцию на заявку программно, я не указываю какой тайм фрейм меня интересует. Или все заявки, не зависимо от таймфрейма торгуются по одной бумаге в общей куче? Я уже пока писал, понял что вопрос глупый. Но раз уж написал спрошу, таймфрейм нужен только для индикаторов, а для покупки и продажи все равно какой тайфрейм?
человек (не робот)
Как бороться с nil?
 
Цитата
Алексей написал:
Вторую строчку можно записать короче:
Код
  start6  =  fh  and  fh.totalnet  or   0   
Спасибо всем большое за помощь, посробую вечером)
человек (не робот)
Как бороться с nil?
 
При запуске программы первый раз такой вот код выдает ошибку
Код
start6 = tonumber(getFuturesHolding('SPBFUT000000','SPBFUT000pf','BRG9', 0).totalnet) 
...
...am Files\QUIK-Junior\LuaIndicators\m2_14_BRG9_M1.lua:40: attempt to index a nil value
но если я куплю бумагу и потом ее продам например по рыночной, то после этого программа с таким кодом спокойно работает дальше и проверяет количество бумаг на остатке в различные периоды работы кода. По идее понимаю, что надо как то сделать проверку на nil и если nil, то переменной start6 присвоить ноль, но что то методом тыка пока не получилось это сделать, пробовал и так и эдак:
Код
start6 = tonumber(getFuturesHolding('SPBFUT000000','SPBFUT000pf','BRG9', 0).totalnet) or 0
...
if getFuturesHolding('SPBFUT000000','SPBFUT000pf','BRG9', 0).totalnet==nil then
start6=0
все равно программа ругается на код, подскажите пожалуйста как можно решить эту задачу?  
человек (не робот)
Где находится структура таблицы текущих торгов?
 
Функция обратного вызоваOnParam(class_code,sec_code) через функцию getParamEx() может получить значение нужного
параметра таблицы текущих торгов. А в QLUA.chm в разделе "Структуры данных" такой таблицы нет. Где можно найти поля структуры , в примере есть только один параметр это bid (tbid = getParamEx(class,  sec, "bid") ).А какие остальные?
Скрытый текст
человек (не робот)
Как прочитать стакан котировок?
 
Хочу просто вывести стакан котировок по своему фьючерсу и посмотреть как он изменяется, такой код будет работать?
Код
function OnQuote(class, sec )
   if class =="SPBFUT" and sec == "SRH9" then
      ql2 = getQuoteLevel2(class, sec)
      PrintDbgStr(ql2.bid_count.."-"..ql2.offer_count)
      for i,#ql2.bid do  
        PrintDbgStr(ql2.offer[i].price ..'-'.. ql2.offer[i].quantity)
      end
      PrintDbgStr("-----------------------------------------------")
   end
end
человек (не робот)
Как определяется цена по рыночной заявке на продажу?, фьючерсы
 
И почему в таблице обезличенных сделок моя заявка прошла как лимитированная на продажу, она должна идти по рынку и закрыть заявку на покупку, следовательно она не должна быть видна в таблице обезличенных сделок, как и в стакане тоже. А она видна вот выборка
Код
SRH9   10 614 082   11:59:07   19 339   2   38 678,00   Продажа   846000

В таблице обезличенных сделок по идее должна быть видна встречная заявка на покупку  
человек (не робот)
Как определяется цена по рыночной заявке на продажу?, фьючерсы
 
Продаю 2 фьючерса по рыночной цене на демо счете, вот код
Скрытый текст

Формируется заявка, но цена у нее очень странная, откуда такая берется цена?
Код
[4816] обратный вызов ордер OnOrder(orders)
[4816] сист дата и время      заявка   сделка    флаг  бум лот цена сумм    транз    сост   напр    дата и время сделки
[4816] #03.01.2019 11:59:01  87655808        100011100 SRH9 2 17872 35744 0 исполн продажа 3.1.2019 11:59:7 846000
Затем проходит сделка, но уже по более похожей цене, но все равно по самой низкой за текущую минуту
Код
обратный вызов сделка OnTrade(trade)
[4816] сист дата и время      заявка   сделка    флаг    бум лот цена сумм    транз    сост   напр    дата и время сделки
[4816] #03.01.2019 11:59:01 87655808 10614082 001000100  SRH9 2 19339 38678 31158 исполн продажа 3.1.2019 11:59:7 846000
Каким образом настроен алгоритм квика, что берутся такие цены? И почему то не открывается тиковый график, что бы посмотреть реальные данные на сервере в данный момент времени, может у меня настройки не так выставлены? Картинку с минутным графиком прилагаю.






человек (не робот)
Можно ли продлить работу в программе.
 
По выходным да, я понял, но кроме выходных есть еще праздничные, у вас праздничные и выходные это разные дни или праздничные тоже считаются выходными?, вот привожу картинку с праздничными и выходными днями за 2018 год, там желтым цветом выделены выходные, а красным праздничные.
Скрытый текст
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
все работает, спасибо всем за помощь)
Код
params = {"startbuy","startsell","startnet","todaybuy","todaysell","totalnet","session_status"}
    for key,v in ipairs(params) do
        local totalnet = getFuturesHolding('SPBFUT000000','SPBFUT000pf','SRH9', 0)[v]
       if totalnet~=nil then
         PrintDbgStr(v.." = "..totalnet)
       end       
    end
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
Цитата
vgi написал:
Во втрой строке должно быть естественно
Спасибо за все поправки и подстановки, очень полезная информация, последний ваш ответ я даже пока не знаю где можно применять(пусть будет в запас), а предыдущие сейчас все попробую. Еще тогда уж разрешите вопрос, что бы все было прозрачно что пока не ясно:
Код
local Transaction={
    ['TRANS_ID']   = '271333',   
    ['ACCOUNT']    = 'SPBFUT000pf',           
   ['CLASSCODE']  = 'SPBFUT',
    ['SECCODE']    = 'SRH9',             
    ['ACTION']     = 'NEW_STOP_ORDER',          
    ['OPERATION']  = 'S',                 
    ['TYPE']       = 'L',                 
    ['QUANTITY']   = '1',                 
   ['PRICE']      = '1800',  
   ['STOPPRICE']  = '1810', -- условие срабатывания заявки
   ['EXPIRY_DATE']='20110519'
  }

как правильно записывать переменные для подстановки в транзакцию по цене (numeric) и текстовые переменные (string) , так правильно?
Код
local cena=tostring(1800)
local bumaga='SRH9'
...
['PRICE']      = cena,  
['SECCODE']    = bumaga,  
...
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
Цитата
Sergey Gorokhov написал:
Если Вы передаете параметр не в виде строки  а как имя параметра
спасибо большое!
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
И упрощенный вариант не работает, может в синтаксисе что то не так?
Код
PrintDbgStr("***"..getFuturesHolding('SPBFUT000000','SPBFUT000pf','SRH9','1').'cbplplanned')
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
Почему не выводятся данные можете сказать?, кстати подстановка в квадратных скобках в данном случае не работает, пишет сообщение об ошибке, а если выводить параметр подстановки v без скобок, то вообще ничего не выводится, вернее с другим кодом выводится, а именно этот пустой, код и ошибка ниже
Код
--ДОБАВЛЕНИЕ ДАННЫХ В ТАБЛИЦУ Позиции по клиентским счетам
PrintDbgStr("Позиции по клиентским счетам (фьючерсы) из таблицы")
params = {"startbuy","startsell","startnet","todaybuy","todaysell","totalnet","openbuys","opensells","cbplused","cbplplanned"}
    
    for key,v in ipairs(params) do
          PrintDbgStr(v .. " = " .. getFuturesHolding('SPBFUT000000','SPBFUT000pf','SRH9','1').v)
   --PrintDbgStr(v .. " = " .. getFuturesHolding('SPBFUT000000','SPBFUT000pf','SRH9','1').[v])
    end

вот ошибка с квадратными скобками
Код
Syntax error while compiling C:\Program Files\QUIK-Junior\LuaIndicators\k12_8.lua: C:\Program Files\QUIK-Junior\LuaIndicators\k12_8.lua:95: '<name>' expected near '['

А другой код где последовательно прописываю все поля нормально выводит, но его очень долго писать, в цикле быстрее получилось бы)
Код
[4680] сделка из таблицы
[4680] сист дата и время      заявка   сделка    флаг    бум лот цена сумм    транз    сост   напр    дата и время сделки
[4680] *0 27.12.2018 11:55:30 82958504 10251485 001000000 SRH9 1 18941 18941 2147483647 исполн покупка 27.12.2018 11:54:33 166000
[4680] Позиции по клиентским счетам (фьючерсы) из таблицы
Хотя это не так и важно, долго писать не долго, но интересно почему не работает?

человек (не робот)
Можно ли продлить работу в программе.
 
Я так понимаю, что учебный демо счет работает в праздничные дни? А не работает только в выходные (суббота и воскресенье)? Простите за тупость.
человек (не робот)
Можно ли продлить работу в программе.
 
Цитата
Sergey Gorokhov написал:
это значит что будет работать как обычно работает. т.е. по графику на сайте:
Спасибо, извините не знал что на сайте есть график
человек (не робот)
Какими функциями на луа можно посмотреть количество фьючерсов у себя на текущем остатке?, срочный рынок
 
Цитата
Sergey Gorokhov написал:
Дополним. К таблице позиций по клиентским счетам (futures_client_holding) можно обратиться функциями getFuturesHolding или через getItem
Спасибо большое, конечно посмотрю потом подробнее, просто надо с чего-то начать)
человек (не робот)
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
Цитата
Павел Bosco написал:
Всё решилось обновлением win32kfull.sys и корректировкой синхронизации времени.Сейчас время не улетает
Интересно вы все рассуждаете про свечи, но не учитываете что сама операционная система windows компьютера не является системой реального времени, линукс может чуть лучше, но то же не может выдать вам реальное время в микросекундах, миллисекунды наверно может причем десятки может быть, поэтому все рассуждения о синхронизации по атомным часам даже в теории мне кажется не реально. Но у меня другой вопрос, где можно посмотреть чем отличаются различные модули квика при обновлении, это где то пишется? Я тупо обновляю программу, что приходит, а что там обновилось не имею представления. Может где то можно почитать или это не имеет особого значения при работе программы?
человек (не робот)
Где посмотреть описание на флаг в транзакции?
 
Цитата
Sergey Gorokhov написал:
К сожалению эта информация не попала в документацию, приносим извинения.
Не нужно извиняться у вас очень хорошая программа и бесплатная и форум хороший, на вопросы отвечаете всегда очень быстро и не важно, что они повторяются и бестолковые иногда по неопытности. Очень приятно, что у вас такая команда) Хочется поздравить Вас с новым годом и пожелать удачи всем и дальнейших улучшений и убыстрений Квика)
человек (не робот)
Где посмотреть описание на флаг в транзакции?
 
Цитата
Sergey Gorokhov написал:
Согласно документации, TRANS_ID нельзя указывать больше чем 2 147 483 647.
Спасибо понятно
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
Цитата
Sergey Gorokhov написал:
Сделайте так:
Спасибо огромное!, так короче будет код
человек (не робот)
Какими функциями на луа можно посмотреть количество фьючерсов у себя на текущем остатке?, срочный рынок
 
С остатком по деньгам, объяснили в прошлой теме, стало примерно понятно буду пробовать их получать. А вот с остатком по количеству, нужно самому считать сколько купил и сколько продал и каких бумаг? или в системе Quik где то есть количество лотов фьючерсов на срочном рынке имеющихся в данный момент в плюсе или в минусе у себя?
человек (не робот)
Где в программе остаток денег и бумаг?, по фьючерсам
 
Цитата
Stanislav Tvorogov написал:
Программно, через QLUA к таблице можно обратиться с помощью функции getFuturesLimit
Спасибо большое!
человек (не робот)
Можно ли продлить работу в программе.
 
Цитата
Alexey Ivannikov написал:
в обычном режиме
Спасибо, но я не понял, что такое обычный режим? С 1 по 9.01.2019 не работает или как?  
человек (не робот)
в чем ошибка в коде?, просмотр таблицы заявок
 
Пытаюсь вывести в отладочное окно некоторые поля таблицы заявок, но подстановка не работает, можете подсказать в чем ошибка?
Код
PrintDbgStr(" Просмотр полей таблицы заявок")   
params = {"order_num", "flags", "sec_code"}
         for i=0,getNumberOf('orders')-1 do 
       PrintDbgStr(i)
            local order = getItem('orders', i); 
         for key,v in ipairs(params) do
            PrintDbgStr(v .. " = " .. order.v)
         end
      end
аналогичный пример взял из справки для функции getInfoParam(), там немного иная подстановка и все работает
Код
params = {"VERSION", "TRADEDATE", "SERVERTIME"}
    
    for key,v in ipairs(params) do
       PrintDbgStr(v .. " = " .. getInfoParam(v).."\n")
   
    end
, а мое не хочет?
человек (не робот)
Можно ли как то почистить таблицу транзакций?
 
Цитата
Stanislav Tvorogov написал:
Перенести таблицы можно через пункт меню "Окна/Переместить окно на вкладку".
спасибо большое!
человек (не робот)
Можно ли как то почистить таблицу транзакций?
 
Таблица транзакций почистилась, если так можно сказать, настройкой вывода таблицы транзакций
человек (не робот)
Где в программе остаток денег и бумаг?, по фьючерсам
 
(На реальном счете и на демо счете вижу остаток в таблице "Ограничение по клиентским счетам", но как программно обратиться к этому остатку в поле "Лимит открытых позиций" не могу найти()
человек (не робот)
Где в программе остаток денег и бумаг?, по фьючерсам
 
В каких таблицах программно можно смотреть остаток денежных средств на счете и количество бумаг (в плюсе или минусе)?
человек (не робот)
Можно ли продлить работу в программе.
 
Цитата
Alexey Ivannikov написал:
Продлили ещё на месяц
большое спасибо!, скажите а в новогодние праздники по каким дням будет работать демо счет?
человек (не робот)
Где посмотреть описание на флаг в транзакции?
 
Цитата
Андрей написал:
И еще почему то номер trans.trans_id 2147483647 не совпадает с тем , который я отправлял в запросе (['TRANS_ID']  = '2412181506')
Это я кажется понял, при покупке выходит не мой номер ид транзакции, а того кто продавал, а я у него купил
человек (не робот)
Где посмотреть описание на флаг в транзакции?
 
После срабатывания обратного вызова транзакции в поле
Цитата
flagsNUMBERФлаги транзакции
выход код 1001000000000000000001 - что он обозначает, есть где то битовые значения этого флага. Получаю данные из следующего кода

(может этот флаг и не нужен для работы, но просто интересно, почему на него нет описания в QLUA.chm или я его просто не нашел(
И еще почему то номер trans.trans_id 2147483647 не совпадает с тем , который я отправлял в запросе (['TRANS_ID']  = '2412181506')
Код
--ДОБАВЛЕНИЕ ДАННЫХ В ТАБЛИЦУ ТРАНЗАКЦИЙ
function OnTransReply(trans)
   -- Если поступила информация по текущей транзакции
   
obrv_trans_text1(tostring(trans.trans_id),trans.sec_code,tostring(trans.status), tostring(tobin(trans.flags)),
 tostring(trans.order_num),tostring(trans.quantity),tostring(trans.price),trans.result_msg);
   obrv_trans_data1(trans.date_time);   
               
end;


систем дата и время  ид транз   бум  ст флаг                  заявка   л ц сообщение                                Дата выполн и время

*24.12.2018 15:08:43 2147483647 SRH9 3 1001000000000000000001 78807678 1 0 Заявка 78807678 успешно зарегистрирована. 24.12.2018 15:8:43   789238 
====================
local Transaction={
    ['TRANS_ID']  = '2412181506',   -- Номер транзакции надо сделать время с днем с часами минутами и секундами
    ['ACCOUNT']   = 'SPBFUT000pf',           
   ['CLASSCODE']='SPBFUT',-- Код класса
    ['SECCODE']   = 'SRH9',             -- Код инструмента
    ['ACTION']    = 'NEW_ORDER',          -- Тип транзакции ('NEW_ORDER' - новая заявка)
    ['OPERATION'] = 'B',                  -- Операция ('B' - buy, или 'S' - sell)
    ['TYPE']      = 'M',                  -- Тип ('L' - лимитированная, 'M' - рыночная)
    ['QUANTITY']  = '1',                  -- Количество
    ['PRICE']     = '0'                -- Цена
  }
 sendTransaction(Transaction)
человек (не робот)
Обучение или заказ робота?, Нужен совет: стоит ли обучаться написанию роботов или лучше сразу готовый заказать?
 
Цитата
Василий написал:
Согласен, что все равно надо изучать
Если на самом деле писали раньше, то не нужно сомневаться, садитесь и пишите код, язык программирования мало чем отличается один от другого, везде одни и те же функции - массивы, циклы, строковые, математические, условия и тд.  а заказывать кота в мешке абы у кого себе выйдет дороже...
человек (не робот)
Можно ли продлить работу в программе.
 
Уважаемые администраторы продлите пожалуйста лицензию на quik jnior логин U0131676 демо версия, а то заканчивается через 2 дня) Если можно)
человек (не робот)
Как исправить ошибку транзакции?, Ошибка отправки транзакции
 
Цитата
Андрей написал:
Еще разрешите вопрос по этой теме, каким образом понять к какой транзакции относится заявка? В сделке например есть поле trans_id, а в заявке такого поля я не нашел trans_id, как быть?
Это не надо, есть такое поле, как то не заметил(
человек (не робот)
Можно ли как то почистить таблицу транзакций?
 
там скопилось много пустых записей и они мешают визуальному просмотру таблицы, пример картинки прилагаю, только две нормальные транзакции , которые сами удалятся после закрытия текущей сессии , а пустые так и останутся.
И еще вопрос где то видел, что таблицы можно перенести из одной вкладки в другую, но не могу найти как это сделать?
человек (не робот)
Как исправить ошибку транзакции?, Ошибка отправки транзакции
 
Еще разрешите вопрос по этой теме, каким образом понять к какой транзакции относится заявка? В сделке например есть поле trans_id, а в заявке такого поля я не нашел trans_id, как быть? (наверно можно выкрутить если сделку по полю  trans_id привести в соответствие с транзакцией, а затем сделку с заявкой через поле order_num. Но как это делается на практике?)
человек (не робот)
Как исправить ошибку транзакции?, Ошибка отправки транзакции
 
о понял , слишком сократил код и не отправил транзакцию
человек (не робот)
Как исправить ошибку транзакции?, Ошибка отправки транзакции
 
Интересно, вчера получилось и код нормально работал (транзакция создавалась и заявка и сделка) Сегодня заменилось большое количество бумаг при входе в систему демо квик юниор и код перестал работать. Поменял бумагу на другую из текущей таблицы торгов, но код все равно не работает, обрезал его до минимума и все равно не хочет код выполнять транзакцию и сообщений об ошибке нет, и счет нужный подключен. В чем может быть причина?
Код
function main() 
 local Transaction={
    ['TRANS_ID']  = '13579',   -- Номер транзакции
    ['ACCOUNT']   = 'SPBFUT000pf',           
   ['CLASSCODE']='SPBFUT',-- Код класса
    ['SECCODE']   = 'BRF9',             -- Код инструмента
    ['ACTION']    = 'NEW_ORDER',          -- Тип транзакции ('NEW_ORDER' - новая заявка)
    ['OPERATION'] = 'B',                  -- Операция ('B' - buy, или 'S' - sell)
    ['TYPE']      = 'M',                  -- Тип ('L' - лимитированная, 'M' - рыночная)
    ['QUANTITY']  = '1',                  -- Количество
    ['PRICE']     = '0'                -- Цена
  }
 
while run do sleep(1000) end
end
человек (не робот)
Страницы: Пред. 1 2 3 4 5 6 След.
Наверх