nikolz (Все сообщения пользователя)

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

Страницы: Пред. 1 ... 62 63 64 65 66 67 68 69 70 71 72 След.
Таблица заявок
 
Цитата
Старатель пишет:
Цитата
Николай Камынин пишет:
Это не всегда верно,
возможна ситуация,
когда стоп-заявка исполнилась,
а информация о выставлении заявки еще не пришла.
В этом случае, как вы понимаете, проверять нечего. Нет же ещё заявки.
Вот другая ситуация, когда информация по заявке (сделке) уже пришла, а поля order.linkedorder и stop_order.linkedorder ещё не обновились. Вот тут проблема...
А я обрабатываю данную ситуацию для обнаружения заявки , выставленной по исполненному стопу.
----------
Так по заявке или по сделке пришла информация.
сделка и заявка в разных колбеках  и их обработка различная Я об этом писал.
У меня указанной Вами проблемы нет.
Если посмотрите еще раз мое описание состояний то увидите, что их больше , чем исходной кодировке флагов состояния.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
 
правильно Вы понимаете.
Есть лишь индикация ненулевого значения.
Когда ситуация такая встретится, то буду решать как ее исправлять автоматом,
пока такой задачи не возникало.
Выставление "рыночных" заявок
 
Цитата
Старатель пишет:
Николай Камынин ,
и да, ваши рассуждения несостоятельны:
Во-первых, продажа может осуществляться в долг, и сколько резервировать ДС - тоже не известно
Во-вторых, при выставлении стоп-заявки, ДС не резервируются.
Продажа в долг рассчитывается по наличию у Вас залога.
Но конкретно выполнять или не выполнять решает брокер.
-------------------------------------------------
Что же касается Вашего изречения "не состоятельны",
то это не доказательство ,
а Вы не господь,чтобы  изрекать истину в последней инстанции.
--------------------------------------------------
Я описал Вам возможную ситуацию.
Никто Вас не заставляет ее читать или ей верить.
несколько транзакций за одну секунду
 
Если необходимо посылать несколько заявок в какой-то отрезок времени, то лучше вычислять время по модулю значения отрезка.
Тогда полученное значение будет меняться от 0 до величины отрезка- 1 квант.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
 
Цитата
Старатель пишет:
Что делаете, если на транзакцию длительное время нет ответа?
проверяю интернет и ищу ошибки в своей программе.
При нормальной работе канала и отсутствии  ошибок такая ситуация не возникала.
Выставление "рыночных" заявок
 
Цитата
Старатель пишет:
Отклоняется только рыночная стоп-заявка на покупку. Стоп на продажу принимается и исполняется.
Могу объяснить это следующим образом
При продаже осуществляется продажа фиксированного количества ,
которое у Вас есть по любой цене на бирже.
Т е брокер это исполнит всегда так как что продать есть, а цена указана любая.
-----------------------------------------------
При покупке ситуация иная.
Вы заказываете купить конкретное число по любой цене, но при ограниченном количестве Ваших денег.
Т е возникает риск покупки Вам на сумму больше, чем у Вас есть.
А это уже нельзя делать.
Так как ситуация не предсказуемая, то в выполнении такого поручения логичнее отказать,
так как исполнение стопа делает робот и заранее резервирует ваши деньги,
а при цене по рынку - сколько точно надо?- неизвестно!!!
Как узнать время биржи (квика)?
 
для начала синхронизируйте время компьютера с сервером точного времени
например с 3.ru.pool.ntp.org
поставьте например синхронизацию через час или меньше.
В результате будет несинхронность локального времени относительно биржи менее секунды.
Если будет желание можете исследовать несинхронность точнее.

 
Таблица заявок
 
Цитата
Старатель пишет:

Сейчас делаю следующим образом: если в таблице стоп-заявок не находится стопа с stop_order.order_num==order.linkedorder , то считается, что заявка выставлена в результате переноса через клиринг, в противном случае - в результате исполнения стоп-ордера.
Это не всегда верно,
возможна ситуация,
когда стоп-заявка исполнилась,
а информация о выставлении заявки еще не пришла.
Авторизация средствами qlua
 
у меня на сайте (где-то давно)
www.kamynin.ru
есть пример на Autoit,
работаю сам с подобным решением несколько лет.
-----------------------------
Мне нравится делать автоматизацию на Autoit, рекомендую.
Выставление "рыночных" заявок
 
Цитата
Старатель пишет:
QUIK Junior v.7.0.0.289
Отправляю 4 рыночные заявки (2 обычные и 2 стоп):
В результате стоп-заявка на покупку отклоняется с формулировкой "Рыночная заявка для клиентского счета запрещена":
------------------
Что происходит? UID 92812
Предположу два варианта
1) это тестовый сервер
2) рыночная цена в стопе на фьючерсах не катит.
Если хотите рыночную цену на фьючах, то поставьте цену минимально допустимую (для продажи) или максимально допустимую (для покупки) И получите по рыночной цене
А на неликвиде сольете весь депозит.
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
 
В качестве совета расскажу кратко свое решение для скриптов (для индикаторов решение другое).
---------------------------------------
Я создаю таблицы сделок,активных заявок,активных условных заявок, транзакций.
-------------------------------------
при отсылки поручения , записываем транзакцию в таблицу транзакций
при приеме колбека на транзакцию удаляем из соответствующей таблицы.
Таким образом , контролируем баланс транзакций.
----------------------------------
В колбеке обработки заявок я различаю три состояния, новая, активная и неактивная.
--------------------------------
Активные заявки различаются как выставленные роботом или человеком
и заявки выставленные при исполнении условных заявок.
----------------------------------
В неактивном состоянии заявки  различаю  два состояния - исполнена , отклонена
-------------------------------
таблицу сделок почти не обрабатываю
Просто фиксирую совершенные сделки и считаю прибыль убытки комиссии и т д
---------------------------------------
Условные заявки разделяю на стоп-заявки и условные заявки,
а также на  заявки выставленные роботом и заявки выставленные человеком
--------------------------  
Перечисленные выше состояния я обрабатываю. мне не имеет значение сколько пришло колбеков
Для каждого указанного состояния свой алгоритм обработки.
-----------------------------
Примерно так.
Изучаем Qlua., "hello world"
 
поправка,следует читать:
-------------
"Например, Если в этой заявке указано купить 100 лотов, а желающие продать, подают заявки по нашей или лучшей цене лишь по одному, то колбек OnTrade будет вызван минимум 100 раз."
Изучаем Qlua., "hello world"
 
Функции колбек вызываются при поступлении с сервера информации о каких-либо изменениях (событиях) данного типа объекта.
--------------------------
Безусловно, можно изучать все возможные события и потом придумывать ,
что же делать в каждом случае.
Процесс познания увлекателен и бесконечен.
-------------------------------
Но можно делать иначе:
Реагировать лишь на те события, которые нам важны для управления своими позициями.
-------------------------
Колбек OnTrade - это реакция на события совершения сделок, в которых участвует заявка брокера по нашему поручению.
Например, Если в этой заявке указано купить 100 лотов, а желающие купить, покупают лишь по одному, то колбек OnTrade будет вызван минимум 100 раз.
------------------------------
Поэтому в реальных сделках число вызовов данного колбека заранее неизвестно.
----------------------------------
Если нам  важен лишь момент, когда заявка будет исполнена полностью,
то фильтруем вызов колбека по номеру заявки и флагу ее исполнения.
Ну и т д
Разработчика: позиция по клиентским счетам, активные стоп-заявки и тд
 
В современном мире актуальная информация это та, которая воспринимается пользователем как достоверная.
Предположим, что мы включаем телевизор, и видим  бегущих и стреляющих солдат в современной форме.
Что это?
Новости, фантастический фильм или архив новостей?
Чтобы решить этот вопрос, нам нужны дальнейшие наблюдения либо дополнительный независимый источник для сравнения информации.
--------------------------------
В случае асинхронных событий которые мы получаем через квик ситуация ровто такая же.
Если информация не противоречит нашему пониманию и нашим действиям то мы считаем ее актуальной.
Даже, если нам "крутит кино" (термин из сленга работников кухни  форекса )  наш брокер.
Сравнение скорости по LUA и DDE
 
Цитата
Imersio Arrigo пишет:
Это все понятно. Мне непонятно зачем хуки вешать.
Ведь данные исправно едут по дде безо всяких лишних приседаний.
Интервал обновлений 10мс.
Отправляется сначала таблица целиком, потом построчные изменения.
ЧЯДНТ?
скажу из своего опыта,
когда-то давно,
до появления LUA я вешал хуки для перехвата событий в окнах
и  управления вводом данных через
различные интерфейсы КВИК из других приложений.
Например, задача получения списка инструментов, на которые подписан квик,
управление параметрами графиков. автоматическое открытие стаканов и графиков ну и т д
Но прогресс налицо, теперь это все в прошлом.
Сравнение скорости по LUA и DDE
 
Хочу заметить еще следующее:
-----------------------------------------
LUA удобнее тем, что через колбек приходит каждая запись таблицы сделок отдельно,
в то время как в DDE пакетом.
При включении квика в конце сессии, пакет DDE сначала готовится квиком, а потом пуляется всем желающим.
В LUA принимаемый пакет передается в колбек построчно перед записью этой строки в таблицу всех сделок.
--------------------------------
Полагаю, что даже для скальпинга луа может вполне подойти,
потому что проблема будет скорее всего в скорости канала,
очереди на сервере
и скорости реакции ОС компа.
--------------------------
Последнее время на Си делаю лишь то,
чего нет в луа - это синхронизация потоков,скриптов,
измерение коротких временных интервалов
ну и прочие мелочи
Сравнение скорости по LUA и DDE
 
Цитата
Alex Alex пишет:
Перехват событий таблиц Quik
С этой точки зрения луа конечно лучше так как VM LUA уже сидит внутри QUIK
Сравнение скорости по LUA и DDE
 
зависит от реализации сохранения данных  с использованием DDE
колбек луа получает данные раньше DDE
Но в целом луа будет медленнее СИ
Есть свои особенности в каждом варианте
Но в итоге хрен редьки не слаще.
Как без открытия графиков получать историю из quik за сегодняшний день?, котировки из quik
 
Цитата
Sergey Gorokhov пишет:

Задача решается функцией CreateDataSource
Код
  ds  =   CreateDataSource ( "SPBFUT" ,  "RIZ5" , INTERVAL_M5)
ds: SetEmptyCallback ()
 sleep ( 100 )  --ждем прокачки информации 

 for  i =  1 ,ds: Size ()  do 
   Open  =  ds:O(i)
   High  =  ds:H(i)
   Low  =  ds:L(i)
    Close   =  ds:C(i)
   Volume  =  ds:V(i)
 --остальной код 
 end 
 ds: Close ()  
Я бы решал эту задачу несколько иначе, примерно так:
---------------------------------
--эта часть кода должна быть вызвана один раз при установке связи с сервером:
ds  =   CreateDataSource ( "SPBFUT" ,  "RIZ5" , INTERVAL_M5)
ds: SetEmptyCallback ()
-----------------------------
--Далее в программе делаем так:
local size_now=ds:Size()
if size_old==nil or size_old>size_now  then
Size_old=0;
Open,High,Low,Close,Volume={},{},{},{},{};
else
  for  i = size_old,size_now-1 do  
local n=i+1;  
    Open[n] =  ds: (i)
     High[n]  =  ds:H(i)
     Low[n]  =  ds:L(i)
     Close[n] =  ds:C(i)
     Volume[n]  =  ds:V(i)
   end
end
size_old=size_now
-- последней свечой в массивах Open,High,Low,Close,Volume будет всегда последняя полученная с сервера свеча
----------------------------------------
Как без открытия графиков получать историю из quik за сегодняшний день?, котировки из quik
 
Проще решать данную задачу в индикаторе.
Вне зависимости от выбранного тайма графика, функция OnCalculate  будет вызываться на каждый тик из таблицы всех сделок по данному инструменту.
Вот и стройте свечи с любым таймом.
Не загружается параметр sec_code функции getDataSourceInfo. Почему ?
 
дополню предыдущий ответ.
Надо читать параметры инструмента не в init, а в onCalculate()
например так:
-------------------------
function OnCalculate(k)
   if k==1 then
--делаем инициализацию и идентификацию
...
  end
--текущие расчеты для каждого тика
...
end
Событие на открытие формы заявки
 
можно использовать Функции для работы с таблицами Рабочего места QUIK (см док QLUA)
Событие на открытие формы заявки
 
нет,
надо делать модуль на СИ с использованием Win32 Api.
Проблема с метками
 
Скрипт выслать  не могу. Это рабочий скрипт, робота,который ноу-хау, объем  большой. 9 модулей lua ( использован весь ресурс числа локальных переменных )  +своя библиотека  dll на C++.
Проблема с метками
 
Вот картинки:
-------------------------------------------
http://s010.radikal.ru/i314/1510/ca/ba0f6815327a.jpg
график с индикатором
--------------------------------------------
http://s020.radikal.ru/i702/1510/b9/89d4a91dc6d2.jpg
индикатор удалили. Видим метки и опцию в меню "Удалить все метки"
-----------------------------------------------
http://s009.radikal.ru/i308/1510/af/ff7f2268f12f.jpg
Нажимаем на эту опцию.
метки остались на графике,
но в меню исчезла опция "Удалить все метки"
-------------------------------------------
Проблема с диаграммами с несколькими окнами
 
Добрый день,
Например, у меня есть индикатор - параметры дня.
Отображает открытие, закрытие, максимум , минимум дня.
Открыто две диаграммы.
---------------------------------
В одной лишь одно окно  с графиком сбербанка.
В этом окне все ок. На истории все отображается без проблем
-------------------------------------
В другой диаграмме открыто два окна
На первом несколько графиков различных инструментов
на втором - тоже самое, что и на первой диаграмме - график сбербанка.
Когда начинаю растягивать или сужать график во втором окне,
то линии параметров дня начинают исчезать,
перепрыгивать,
например минимум отображается как максимум,
либо
минимум дня становится равным локальному минимуму,
который в данный момент виден в окне графика.
Проблема с метками
 
Добрый день,
-----------------------------
У меня написан скрипт индикатора, в котором отображается метками состояние позиции.
Картинки можно увидеть на сайте www.kamynin.ru
В скрипте сделано удаление всех меток в окне функция DelAllLabels(chart_tag) при размещении индикатора на графике.
Если я удаляю индикатор, то  метки остаются.
Если загружаю индикатор снова , то метки удаляются и размещаются новые (метки обновляются).
После удаления индикатора, можно удалить метки из меню опцией "Удалить все метки"
-------------------------------
До вчерашнего дня я работал без вынесения окна графика на другой монитор.
После вынесения на другой монитор, при загрузке  индикатора снова, новые метки накладываются на старые, т е получается ИЛИ двух изображений.
Удалить метки опцией "Удалить все метки" невозможно.
-------------------------------
Проблема с диаграммами с несколькими окнами
 
Если в одной диаграмме открываем несколько графических окон с инструментами и в одно из окон размещаем свой индикатор,
то индикатор рисуется неверно
Если в диаграмме лишь одно окно с этим индикатором,
то все нормально.
версия квик 6.17.3.6
Проблема с метками
 
1) Если окно с индикатором, в котором используются метки, вынести,
то невозможно удалить метки,  в т ч. и из меню "Удалить все метки" .
версия квик 6.17.3.6 (в предыдущих тоже самое)
разработчикам: Замена тейк-профита
 
когда-то давно я предлагал сделать возможность изменять параметры стоп-заявок без их переустановки.
Вроде бы даже регистрировали, но результата нет.  
Как быть с ошибками вида "function: 94A71D38"
 
напишите свою dll для получения времени с квантом в 0.1 мкс c использованием RDTSC
и не будет заморочек с socket.
Как быть с ошибками вида "function: 94A71D38"
 
еще можно попытаться найти function: 94A71D38 в таблицах луа машины:
Как быть с ошибками вида "function: 94A71D38"
 
попробуйте убрать  свой перехват ошибок.
возможно тогда ошибка вывалится в dump,
либо получите больше сообщений из перехвата луа машины.
getParamEx
 
А если запросить параметр у несуществующего в таблице инструмента,
Например, с именем sec_code= "ЫЫЫЫЫЫЫ",  что получаете?
кросс-заявка
 
да, это такой глюк у демо.
Как быть с ошибками вида "function: 94A71D38"
 
по-моему это ошибка не квик, а луа скрипта, либо ,в крайнем случае , луа машины.
у меня так не падает, поэтому делаю вывод, что  проблема в Вашем скрипте.
Рисовать линию на графике
 
Viktor MMM,
Удивляете Вы меня,
то говорите, что не программист и тут же беретесь за WinApi.
Это как не умея водить авто записаться на участие в формуле1.
Вам же сказали , что сделать нельзя.
Лимитированная, рыночная заявка
 
Если нельзя, но очень хочется то можно попробовать указать
EXECUTION_CONDITION   -Условие исполнения заявки, необязательный параметр.
Со значением «FILL_OR_KILL» – немедленно или отклонить,
-------------------------
Относительно перехвата заявки перехватчиками, то это Вам кажется.
Очевидно Вы пришли с кухне форекса. Но там не биржевой рынок и свои законы, как в джунглях
На бирже немного иначе.
Скорее всего это маркет-мейкер стукает.
Меняйте алгоритм.
Лимитированная, рыночная заявка
 
Вы хотели продать по 67069,
а биржа продала Вам по лучшей,
чем Ваша цене  67075
---------------------------------------------------
Вы можете мне отдать лишнее.
Рисовать линию на графике
 
Viktor MMM пишет:
Цитата
Добрый день!
Скажите, а можно ли с помощью луа на графике нарисовать горизонтальную линию, а потом её двигать мышкой вверх вниз... И чтобы скрипт, который её нарисовал, понимал, что линия передвинулась туда-то.

Вообще это реально средствами луа сделать без длл, корутин и прочих приблуд?
А где это Вы в LUA видели операторы для рисования чего-нибудь и без DLL?
Выкачивать в текстовик данные из ТТП
 
В таком случае,
Надо сказать
"По щучьему велению, по моему хотению"
После этого ждать чуда.
onTrade,OnStopOrder при разрыве связи
 
будут
так как будут изменены соответствующие таблицы сделок и стоп-заявок
Получение данных с помощью getParamEx
 
А где Вы прочитали, что ТТП надо открыть для получения данных функцией getParamEx?
Маржа на фьючерсах
 
1)Я привел выдержку из ранее действующего положение, т е вербальное описание расчета ГО до 07.09. (столбец 2 ) из Вашей ссылки.
По этому описанию можно проверить правильность формул в таблице. (не проверял - лень)
--------------------------------
2) Если я правильно понял, то для новой редакции изменились лишь строки 2,5,6,9.
В результате теперь убрали скидки:
"при покупке выше расчетной цены или продаже ниже расчетной цены в ходе торгов скидка не предоставляется,
и увеличили максимальное ГО до 3L"
Маржа на фьючерсах
 
Цитата
 
Расчет гарантийного обеспечения в ходе торговой сессии.
При подаче заявки на заключение фьючерсного контракта / Сделки T+N, направленной на открытие или увеличение Позиции по данному фьючерсному контракту / по данной ценной бумаге, если цена указанной заявки на покупку меньше текущей Расчетной цены данного фьючерсного контракта / данной ценной бумаги или цена указанной заявки на продажу больше текущей Расчетной цены данного фьючерсного контракта / данной ценной бумаги,то:
гарантийное обеспечение по данному фьючерсному контракту равно Базовому размеру гарантийного обеспечения для данного фьючерсного контракта, рассчитанному в соответствии с пунктом, уменьшенному на абсолютное значение величины, вычисляемое по формуле Рз * W / R, где
Рз – разность между текущей Расчетной ценой данного фьючерсного контракта и ценой, указанной в заявке;
W – стоимость минимального шага цены;
R – минимальный шаг цены.
Минимальный шаг цены и стоимость минимального шага цены определяется в соответствии со спецификацией данного фьючерсного контракта.
гарантийное обеспечение для одного лота ценных бумаг данной Сделки T+N равно Базовому размеру гарантийного обеспечения для лота ценных бумаг, рассчитанному в соответствии с пунктом, уменьшенному на абсолютное значение величины, вычисляемое по формуле Рз * L, где
Рз – разность между текущей Расчетной ценой данной ценной бумаги и ценой, указанной в заявке;
L – лот ценной бумаги.
При заключении фьючерсного контракта / Сделки T+N, приводящей к возникновению или увеличению Позиции по данному фьючерсному контракту / по данной ценной бумаге, с ценой на покупку меньше текущей Расчетной цены данного фьючерсного контракта / данной ценной бумаги или ценой на продажу больше текущей Расчетной цены данного фьючерсного контракта / данной ценной бумаги:
гарантийное обеспечение по данному фьючерсному контракту равно Базовому размеру гарантийного обеспечения для данного фьючерсного контракта, рассчитанному в соответствии с пунктом, уменьшенному на абсолютное значение величины, вычисляемое по формуле Рп * W / R, где
Рп – разность между текущей Расчетной ценой данного фьючерсного контракта и средневзвешенной ценой Позиции;
W – стоимость минимального шага цены;
R – минимальный шаг цены.
Минимальный шаг цены и стоимость минимального шага цены определяется в соответствии со спецификацией данного фьючерсного контракта.
гарантийное обеспечение для одного лота ценных бумаг данной Сделки T+N равно Базовому размеру гарантийного обеспечения для одного лота ценных бумаг, рассчитанному в соответствии с пунктом, уменьшенному на абсолютное значение величины, вычисляемое по формуле Рп * L, где
Рп – разность между текущей Расчетной ценой данной ценной бумаги и средневзвешенной ценой Позиции;
L – лот ценной бумаги.
В остальных случаях гарантийное обеспечение по фьючерсному контракту / одному лоту ценных бумаг равно Базовому размеру гарантийного обеспечения.
Маржа на фьючерсах
 
http://moex.com/a186
SetWindowCaption крякозябры вместо русского текста
 
изменить кодировку в редакторе текста
Тестирование стратегий в QUIK., Почему бы и нет?
 
У меня все гораздо скучнее, потому что просто.
Есть цикл по параметрам оптимизации, которые задаем в виде "начало,конец,шаг".
------------------------------------
В результате - получаю оптимизированный по параметрам алгоритм.
Эквити выводится и в реале и при оптимизации на график для каждой сделке.
В реальной работе оптимизация отключается заданием нулевого шага.
-----------------------------
картинку можно посмотреть на сайте
www.kamynin.ru
Нулевой transaction_id, Проскакивает нулевой transaction_id
 
Цитата
Антонов К. пишет:
Цитата
Николай Камынин пишет:
вообще не обращать внимание на TRANS_ID
для идентификации заявок используйте brokerref
А почему вы думаете, что не будет аналогичной проблемы?
Потому, что у меня ее нет.
Среда разработки Lua, Выбор среды разработки Lua
 
Scite написан на луа, из указанных самый легкий.
-----------------------
Остальное на любителей преодолевать трудности.
Страницы: Пред. 1 ... 62 63 64 65 66 67 68 69 70 71 72 След.
Наверх