Здравствуйте! При запуске разработчика он загружает текущую позицию но не прорисовывает графики. Заказ данных для инструментов включен, фильтров параметров нет. Из видимых причин - в поле цена б/а ноль. Пытался подставлять актуальную цену в сценарии - результат тот же. Возможно причина в том что сегодня суббота - но подключение установлено даже данные перезаказаны и получены графики перерисованы - только стаканы(пардон) пустые. Да и проявился этот баг еще вчера. В чем причина может быть?
День добрый всем! В обозначенном колбеке обрабатываются сделки по указанному класскоду. При этом есть фильтр для отсеивания повторных вызовов с одинаковыми номерами. Но в результате " ни когда такого не было и вот опять" - прошла одна сделка по FUTSPREAD и получил два срабатывания колбека.
function OnTrade (trade) if tr_num~=trade.trade_num then tr_num=trade.trade_num; new_trade=1
if (trade.sec_code==spreadPara) and (string.match(trade.brokerref,"limit")) then local lot=math.abs(trade.qty) --================================================================= if bit.band(trade["flags"],4)>0 then
SendOrder("S",lot,bid-500,"M", "market", fF,M_SellFF,"SPBFUT") SendOrder("B",lot,bid+500,"M", "market", nF,M_BuyNF,"SPBFUT") end end end end Это что какие то особенности FUTSPREAD.Возможно появление сделок по фьючам которые следуют за спредом несут признаки сделки по спреду?
Возникла необходимость ускорить обработку данных в написанном тестере стратегий поскольку на том железе что я имею мой бот с таблицей необходимгого мне размера плохо справляется - всего 4 прохода в секунду(весь скрипт). По личному опыту знаю что аналогичный скрипт исполняемый не в квике а запущенный в винде работает в десятки раз быстрее. Подскажите есть какие нибудь варианты связать два скрипта работающие в квике и в винде кроме как через запись в файл? Вариант с С# пока не подходит поскольку с ним пока не работал.
День добрый! Строка: if st.n_f[i] > 0 then st.open_fut[i] = offer_Fut elseif st.n_f[i] < 0 then st.open_fut[i] = bid_Fut end вызывает ошибку: attempt to index field 'n_f' (a number value)
Есть задача вычислять онлайн количество лонговых и шортовых открытых позиций. Для этого в OnAllTrade вставил код просчета опираясь на open_interest и qty. Предварительно делаю снимок потока этих данных по нужному мне инструменту. Складывается впечатление что обновление open_interest несколько запаздывает. Это может быть так? В колбеке поставлена защита от повторных срабатываний.
transaction={ ["TRANS_ID"]="111", ["ACTION"]="NEW_ORDER", ["CLASSCODE"]="SPBFUT", ["SECCODE"]="SiU7", ["EXECUTION_CONDITION"]= "KILL_BALANCE", ["OPERATION"]="B", ["QUANTITY"]="50", ["ACCOUNT"]=account, ["PRICE"]= price, } Заявка появляется в таблице как снятая. Подскажите что не так делаю?
Пример кода: .... function ...(dp) for i=-8.8,-0.8 do --message(i.."/"..dp) if dp==i then ..... end end end ... Для проверки совпадения переменных включил оператор message, совпадения происходят а проход через if нет. Оговорюсь что пару дней назад все работало. Файлы dat и info.log удалял не помогло, откат обновления не делал. Это что америка начала воплощать хакерские угрозы :D Или это подтверждение существования практики двойных стандартов и программировании:D
Версия терминала 7122. Часто проявляется такой баг заявок активных нет а в таблице открытых позиций FORTS висит актуальная покупка или продажа. Иногда это уходило после удаления дат файлов. Сегодня ни чего не помогает. В результате система отвергает заявки - превышен лимит по инструменту.
День добрый! Подскажите пожалуйста где можно найти инструкцию по подключению Квика к тестовому контуру биржи через Plaza2. От биржи получены адрес, логин и т.д. для доступа. Первые попытки неудачные.
Уже не первый раз система не дает снять заявку без каких либо комментариев. Снятие производил всеми возможными способами. И сама заявка есть в таблице моих сделок но позиция по фьючу не изменилась в таблице лимитов. В прошлый раз помогло переустановление соединения. Теперь даже это не спасает.
День добрый! В описании работы учебного сервера говорилось что за основу берется один из торговых дней реального сервера. На следующий день эта корреляция сохраняется или будет браться новый день реального сервера из другого временного периода. Т.е. сохраняется ли логика тренда от дня ко дню - будет ли иметь смысл тестирование долгосрочных позиционных стратегий?
Если открыть шаблоны для стаканов то можно увидеть массу вариантов сохраненных. Откуда они берутся. Что разработчик имеет доступ в директорию Квика на пользовательских компьютерах?
Поделитесь пожалуйста опытом кто работал или работает через Plaza или Fix. Суть вопроса. Есть пара роботов на Lua. Ключевым моментом в их работе является скорость выставления заявок и своевременность котировок. Назрела необходимость опробовать их на хорошей скорости. Сам о возможных способах реализации задачи знаю лишь со слов нескольких финансовых консультантов брокера информация от которых не всегда совпадает. Мало того что они скорее всего имеют теоретический опыт так еще наверняка не могут знать множества тонкостей и нюансов которые могут иметь решающее значение. Помогите плиз определиться что выбрать Plaza или Fix? Как это соотносится с виртуальным сервером - он по умолчанию предполагает эти примочки? Если не ошибаюсь брокер тарифицирует виртуальный сервер в зависимости от количества используемых ядер - достаточно ли будет одного?
На днях снова были проблемы. Не отображались изменения позиций по срочному рынку. Мой робот в связи с этим малость накосячил. Конечно теперь придется прописывать проверку на этот случай. Но пардон, на каждый возможный косяк с "той" стороны за ранее обходы не пропишешь. Ситуацию можно несколько облегчить если биржа после выявления возможных проблем на своей стороне показывала бы нам это например трансляцией параметра скажем "трабл_варнинг". А так что получается. Проблема появилась, на бирже зашевелились что то ищут. У людей роботы трудятся - не вкурсе. Кто то заметил неполадки отключился - но надо еще разобраться что это неполадки а не просто убытки по стратегии.
День добрый. Система отвергла заявку с ошибкой Ошибка создания заявки. (FORTS)(32)"Цена сделки вне лимита Хотя заявка отправлялась по цене PRICEMAX, заявка по фьючерсам, с лимитами по деньгам порядок, почему? И как лечить? Использование параметра CHECK_LIMITS поможет на фьючах он по справке только для опционов как будто?
Можно ли простому смертному узнать кто выставил заявку в стакан? У кого есть такая возможность. Можно ли это сделать через Lua или другие языки? Спрашиваю потому что есть подозрения на то что кто то играет против меня...
Иногда происходят такие случаи. Замечал задержку в ПЯТЬ минут. Как это вообще возможно. Этот вопрос как то регламентируется. На мой диллетантский взгляд терминал должен поднимать тревогу с сиренами и красными ракетами если это случается. Это как если вы стоите разговариваете с приятелем и тут вас по плечу хлопает прохожий и говорит вам что плохо и вы вдруг замечаете что приятель давно ушел.
В руководстве по Lua лишь вскользь упоминается об опциях этой функции - киньте ссылку пожалуйста у кого есть на описание. В справке по Квику тоже не нашел. Из описания Lua понял что есть опции для работы только со строковыми или только числовыми параметрами. Мне же нужно из строки с названием опциона выделить страйк. Поможет ли данная функция для этого или можно это попроще сделать?
Подскажите плиз! Как в скрипте при отправке транзакции прописывается рыночная цена опциона? Как мин/макс/возможная цена; как "0" или как то еще? Первых два варианта у меня не прошли хотя с фьючами работает. Если можно пример кода или ссылку на него скиньте плиз?
Заявки по фьючам снимаются без проблем. Заявки по спреду не снимаются - код класса указываю, номер заявки, инструмент, id транзакции, акшн - килл_ордер. Что не так? Для спреда нужно еще какие то параметры указывать?
Пример кода ниже. На терминале версии 6.15.2.9 все работало без нареканий. После обновления, иногда, остановка скрипта кнопкой приводит к зависанию терминала. function OnStop(s) stopped=true for i_order=0, getNumberOf("orders")-1,1 do order=getItem("orders",i_order) paramOrder=Orderflags2table(getItem("orders",i_order)["flags"]) if order.sec_code==farFuture and order.client_code==ClientCode then if paramOrder.active==true then KillOrder (order.order_num, Future) end end end DestroyTable(t.t_id) end
Если из этого блока убрать DestroyTable(t.t_id) и поместить в конец тела main() то скрипт останавливается заметно медленнее и таблица очищается но не закрывается. Как это можно вылечить?
Раньше как будто где то попадалась тема - сегодня не нашел. Возможно ли сделать заявку своей если в настройках соединения будет разрешено переключаться на другой сервер? Суть в том что иногда возникает необходимость перейти на другой сервер и если до разрыва соединения были активные заявки их понятное дело надо вернуть под контроль скрипта.
Уважаемые разработчики подскажите где искать причину. Работают две копии терминала: - на одном компе. - один и тот же брокер. - версия у обоих одна. - на одном и том же соединении и настройках проверки/восстановления связи. - совершенно аналогичные настройки - набор окон... - экспорты все отключены и там и там. На первой копии обрывов очень мало - почти нет, вторая копия грешит - раз от раза. И даже, после вечернего клиринга заметил, не всегда пытается восстановить связь. Что еще может влиять в терминале? На обоих версиях работают скрипты Lua (аналогичные практически) думал на них но сегодня с отключенными скриптами та же история.
Господа! Помогите разобраться как формируется bid и offer синтетического фьючерса. Если использовать формулу которая растиражирована в Интернете и считать спред между синтетическим фьючем и обычным то в какие то моменты по формуле выходит покупка дешевле продажи т.е. бери и тут же продавай и будет тебе счастье. Как я понял формула предлагается такая: bid_Sint=offer_Put-bid_Call+75000 --рыночная продажа синтетика(шорт) offer_Sint=offer_Call-bid_Put+7500 --рыночная покупка синтетика (лонг) Подразумевается 75000 страйк. Где собака зарыта?