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

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

Страницы: Пред. 1 2
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
nikolz написал:
прикольно. стр - это объем книги. Думал что понятно.
Указывая объем книги пишут "Бла-бла -- 847 с.". Когда пишут "стр. 847" - значит, указывают на конкретное место. Странно не знать этого тому, кто претендует на "академичность".

А еще странно, что претендующий на "академичность" так и не научился ни понимать написанное, ни врубаться в контекст разговора. Зато советы раздает на уровне старухи Шапокляк, направо и налево.

Разговор шел о неоднородности случайного процесса, представленного биржевыми данными. VPM ответил, что есть методы _приведения_. На что я совершенно логично спросил, в какой книге по теории случайных процессов об этих методах можно почитать:
Цитата
Цитата
Цитата
Glukator  написал:
СКЗ считать имело бы смысл при однородности нашего случайного процесса, но это ведь не так.
 Есть мат. методы приведения , выше я выкладывал пример в виде индикатора.
Если книжку подскажете по теории случайных процессов, где описаны такие методы - вот тогда спасибо скажу, удовлетворю свой академический интерес.
Каким надо быть оленем, чтобы не понять, что вопрос о книге, содержащей информацию на _конкретную_ тему? Короче говоря, nikolz, если есть что сказать по делу - пожалуйста, а так лучше помолчи - за умного сойдешь.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Сохраняете расчетные данные, или каждый торговый день с начала (0)
Скрипт у меня работает круглосуточно, т. ч. предыдущие данные хранятся в памяти. Но это все равно только два последних значения на каждом таймфрейме. При перезапуске скрипта - да, набираются снова.  
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
nikolz написал:
Glukator ,
Самые первые фундаментальные книги для  удовлетворения академического интереса:
1. Л.Рабинер, Б.Гоулд. Теория и применение Цифровой обработки сигналов. стр.847
2. Дж.Бендат, А.Пирсол "Прикладной анализ случайных данных" стр. 540
Возможно, дело в годе издания, но в первая книга закончилась на стр. 835, а во второй с. 540 указывает на оглавление. В любом случае ни там, ни там не нашел даже упоминания об однородности/неоднородности случайных процессов ни в оглавлении, ни в предметном указателе.
Цитата
VPM написал:
Glukator,  Я Вас понял, Вы торгуете методы описанные Владимир, .
Интересный вывод, но нет :) Механика торговли - да, построена по идеям Владимира. Потому что эти идеи - о решении объемных задач малыми ресурсами с минимальными глюками. В остальном же мы, видимо, просто приходим постепенно к сходным решениям - почему бы и нет?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Как Вы средние считаете без свечей?
Эмм... немного странный вопрос. Свечи - это всего лишь форма представления. Считаю по рекуррентной формуле для среднего, запрашивая LAST раз в секунду из ТТТ. Кому надо - можно и L() и ׁׁH() и O() и ֻC() аналогично высчитать, не скипидаря мозг и не засирая память посредством CreateDataSource() и иже с ним (сейчас у меня "на выпасе" 226 тикеров, если под каждый CreateDataSource() вызывать - то легче повеситься, а первым повесится ноут, где все это вертится).
Цитата
Цитата
Glukator написал:
СКЗ считать имело бы смысл при однородности нашего случайного процесса, но это ведь не так.
Есть мат. методы приведения , выше я выкладывал пример в виде индикатора.
Если книжку подскажете по теории случайных процессов, где описаны такие методы - вот тогда спасибо скажу, удовлетворю свой академический интерес. А индикатор - это, все-таки, реализация чего-то. Предпочитаю _понимать_ то, что делаю.
Цитата
VPM написал:
У меня на них печальный опыт, чтоб их торговать нужны значительные средства, чтоб можно было держать торговый диапазон и усредняться.
Это не контр-тренд, все-таки. В зависимости от ситуации может быть и так, и иначе - не раз убеждался, контролируя сделки по графикам "пост-фактум". И наперед совершенно неизвестно, как оно будет в случае конкретной сделки.
Цитата
Владимир написал:
сам факт просадки означает, что мы лопухнулись с предыдущей сделкой. Если это первый раз, это нормально, и потому минимальная просадка порядка 0.5%. А если лопухнулись 2, 3, 5, 10 раз - просадка будет расти с каждой новой неудачей.
А вот это интересно - у меня тоже была мысль ввести такую "прогрессивную" просадку, но пока наблюдаю за тем, что есть. Надо будет на истории потестить.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
А что, собссно, даёт просадка? Может, там, где она больше, курс продолжает падать, а там, где меньше, уже начал расти.
Ну это само собою, превышение просадкой порога - только одно из условий. Их у меня сейчас 4:
1. собственно, превышение порога просадки;
2. хотя бы один из старших таймфреймов (при движении от старшего к младшему) подтверждает снижение (если есть данные по этим таймфреймам);
3. на хотя бы одном из младших таймфреймов (кроме 10 секундного), при проверке от старшего к младшему, движение остановилось или зафиксирован рост;
4. этот рост не сожрал предыдущее падение.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Ошибся, не СКЗ конечно, а СКО.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Glukator,  Не совсем Вас понял,
1) Вы торгуете контр тренд, или входите в позицию в направлении отклонения?
2) H(I-1) - L(I-1) + H(I-2) - L(I-2) ... Даст Вам волатильность на каждом tf (сгладьте любым способом),
можно ATR, либо совсем классику Средне квадратичное отклонение, ведь все равно средние считаете!
Но это позволит не просто 2% принимать , а оценивать порог  в автомате, у одного тикера 2 мало , другой на 0.5 не ходит.
Тренд я не определяю, поэтому не могу сказать, "контр" или нет :) Я вижу достаточно глубокую просадку - и покупаю 1 лот в расчете на отскок. Если цена не развернулась, усредняю позицию при движении вниз.
ׁH() и L() не считаю, индикаторов никаких тоже, максимальное значение отслеживаю только для закрытия по тейк-профиту. СКЗ считать имело бы смысл при однородности нашего случайного процесса, но это ведь не так. Сейчас тикер дохлый и на 0.5% не ходит, а через минуту вожжа под хвост ударит, и рванет он хрен знает куда.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
А у Вас разве не сложно?
Я еще в процессе осмысления/отладки, многое может и выкину за ненадобностью. Чем проще - тем лучше, сам так считаю.
Цитата
Владимир написал:
Мой ничего не сортирует, тестовых заявок не кидает, таймфреймы не запоминает, всю позицию нахрен не скидывает. Просадки динамические - от 0.5% и выше, в зависимости от ситуации, несработавшие заявки снимает по таймеру через 3 минуты (если курс рядом с заявкой, продлевает ещё на 3, так что на тикерах с малой ликвидностью может ждать часами). Стоп движется при любом движении курса в нужную сторону и стоит в обратном направлении, иголки по тейк-профиту иногда ловит, но без особой охоты, только совсем уж вкусные. Скорее наоборот: буйный рост блокирует подачу заявок, пока рынок не успокоится. Зачем резать курицу, несущую золотые яйца?
Сортировка тут только для определения наибольшей просадки. Всю позицию скидываю исключительно из соображений удобства при расчете прибыли и быстрого высвобождения средств. Заявки у меня со вчерашнего дня тоже продлеваются, только вот вопрос: курс "рядом" - это где? Я пока задал "не далее, чем 5 шагов цены" при условии малой активности, но еще надо посмотреть. Стоп двигаю точно так же только вверх на уровень половины текущей прибыли. Может, я раньше неясно выразился.

Курица моя еще молодая, я ей мозги периодически подкручиваю )
Цитата
VPM написал:
У меня только один Вопрос зачем 9 тайм фреймов?
У меня пока задан фиксированный порог просадки >= 2%, от которого скрипт начинает интересоваться тикерами. А 2% - это довольно много. И если на часовом таймфрейме такая просадка не обнаружена, то на двух- или трехчасовом вполне может нарисоваться. Хотя, иной раз, и на 30-секундном бывает ))
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Здесь смысл не торговать на всех одновременно, мы их оцениваем,  а торговый у нас один.
Такой подход называют "Система трех экранов", работает давно и достаточно хорошо.

Ну к примеру, Внутри дневная торговля,
Смотрим D1 определяем какие то значимые уровни, (если крупняк набрал позицию и находится в ней, он ее будет зачищать),
определяем  тренд он главный в направлении его будем сделки открывать,
Переходим на торговый допустим H1, сработал сигнал на открытие позиции,
Переходим на младший допустим М1 определяем параметры сделки, т. входа, от нее определяем стоп.

Это примерный алгоритм как это работает.
Сложно все у вас. У меня тогда точно "лопата" %))
Есть 9 таймфреймов, по ним считаю средние, по двум средним на каждом - просадки. Сортирую тикеры по величине просадки. Где перевалили за заданный порог (скажем, больше, чем минус 2%) - кидаю тестовые заявки на 1 лот. Исполнились? Запоминаем таймфрейм, по которому открывались, следим дальше. Не исполнились - хрен с ними, снимаем. Просадка тикера из портфеля больше, чем на 2% относительно цены последней покупки? Отлично, докупаем еще лот, если деньги есть. Тикер из портфеля растет? Двигаем виртуальный "стоп", сначала в безубыток, потом на половину прибыли и т.д. Считаем доходность по текущему bid-у с учетом всех комиссий. Перевалила за 25%гг? Скидываем нахрен всю позицию. На случай буйного роста есть еще критерий выхода по тейк-профиту при откате цены на четверть от локального максимума. Вот пока, упрощенно, и вся лопата )
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Не каких вероятностей,
<...>
99 не удачных сделок прежде чем мы не сможем торговать, согласитесь событие мало вероятное!
Вам не кажется, что где-то здесь явное противоречие? =)
Риск - это, все-таки, мат. ожидание потерь, а не абсолютная величина. Представьте, что рынок сыплется, т.е. в среднем все тикеры стабильно и энергично ползут вниз - и тогда эти 99 (ну, к слову, не 99, а около четырехсот пятидесяти - процент каждый раз будет от меньшей суммы) неудачных сделок быстренько выщелкают все, что смогут, если каждый раз "резать убыток". Т. е. понятие "риска" тут однозначно связано, помимо ваших ставок "1 к 3-м", еще и с выбором точки входа.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
Сделки НЕ МОГУТ "продолжаться разное время и превышать 1 день, или даже месяц".
Мне кажется, VPM под сделкой подразумевает удержание позиции от открытия до закрытия, а не сам факт покупки/продажи.
Цитата
VPM написал:
но для меня важней соблюсти отношение риск к выигрышу, я уже говорил не ниже 1/3
Интересно, из каких соображений вы этот риск оцениваете. Ежли я что-нибудь в чем-нибудь понимаю, то риск - это величина потерь помноженная на вероятность эти потери поиметь. Т. е. подразумевается оценка апостериорных вероятностей наступления двух возможных исходов, причем не "когда-нибудь", а желательно в заданное время.  
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
зачем отрицать сильные стороны языка, я не понимаю?
Затем, что инструмент надо выбирать по задаче. У трактора с плугом в 10 метров тоже есть сильные стороны, вот только чтобы грядку вскопать, лучше все же взять лопату - быстрее и проще, и соседский забор сносить не надо.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, вот честно, не все ли равно, для чего язык был создан? Другого нет. Что дали - с тем и работаем. Дали бы tcl - писали бы на нем. В начале  знакомства с lua в квике я тоже бросался на все подряд - и ООП, и кучу обратных вызовов, и dll, и черт знает что еще. Но в итоге выкинул нахрен всю эту требуху. Оставил чистый lua, чистый процедурный стиль и минимум необходимых функций, позаимствовав многие идеи Владимира со страниц этого форума. Идеи как раз конкретные и выраженные обычным русским языком, а не килобайтами кода. За это ему спасибо.

Если все задачи условно разделить на два рода "как делать" (механика торговли) и "что делать" (алгоритмы торговли, управление портфелем), то по первым вопросов у меня не осталось: заявки подаются, исполняются и снимаются как задумано, сделки обрабатываются так, что я знаю свою прибыль (или убыток) с каждой закрытой сделки с точностью до копейки, учет портфеля ведется и ничего не теряется, и даже есть маленький диалог, чтобы "на лету" отбирать у скрипта деньги или наоборот.

Куда важнее "что делать" - но об этом здесь не говорят. И по этой части у меня вопросы есть, но на них должен, видимо, каждый должен ответить сам - заплатив за эти ответы деньгами со своего счета :))
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
чтоб раскрыть весь потенциал использования луа только так и нужно писать
"Так" - это как? Делать простые вещи через архисложную жопу? Не согласен. А что такое "потенциал использования lua" мне вовсе непонятно.
Цитата
VPM написал:
хочется делать хорошо
"Хорошо" и "сложно" - это вовсе не одно и то же. "Совершенство достигается не тогда, когда нечего прибавить, а тогда, когда уже нечего отнять" - не помню, кто сказал, но мысль правильная.
Цитата
VPM написал:
Задачи в торговле одни и те же, а как делать давайте обсуждать
Так и давайте может уже перейдем к задачам. Конкретным. А то все "многозадачность", "многопоточность", "фреймворки", а чем вся эта херня делу поможет (и какому конкретно делу) - вообще неясно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Цитата
VPM написал:
Цель непонятна.
А Вы предложите что то другое,
когда нужно держать позицию целый день (или несколько дней) ,
управлять ей, (переносить sl, закрыть часть, до набрать и другие торговые дела)
Извините, что встреваю в столь многозначительную беседу ))
Но я вот тоже ни разу не понимаю, на кой рожн нужны конкретно здесь "сопрограммы", "многопоточность", "многозадачность" и прочая хренота.
Весь разговор с самого начала идет в русле "вот у нас есть такие ахренительные суперхреновины, давайте подумаем, как нам их присобачить на нашей задаче". Может, стоит наоборот рассуждать, "вот у нас есть такие задачи, давайте подумаем, как их можно реализовать возможно проще и надежнее без всяких сложных хреновин"?
ПростоПример
 
Х**ня какая-то. У меня глаза вытекли.
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Возвращаясь к вопросу, поставленному в теме.
Неделю назад отправил свой скрипт в свободное плавание вот с такой конструкцией в OnTrade():
Код
function OnTrade(trade)
    <...>
    is_maker = bit.test(trade.flags, 5) and not bit.test(trade.flags, 6)
    <...>
end
Если is_maker == false, то считаем, что сделка прошла по рынку.
Последующее сопоставление логов скрипта с отчетом брокера о сделках не выявило расхождений между ними в вопросе разделения сделок на мейкерные и тейкерные.

В целом, значит, можно утверждать, что хотя бы у одного брокера (ВТБ), хотя бы на одной версии квика (10.3.1.13) эта конструкция работоспособна.
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Цитата
Владимир написал:
<...>2 ядра, 2 гига ОЗУ, 2 ГГц, и sleep у меня на 0.25 секунды, 1000 тикеров спокойно держит. Видимо, потому, что я никакие комиссии на отдельные сделки вообще не считаю.<...>
Конечно, поэтому. Не потому же, что алгоритмы хорошо продуманны  :smile:
А если серьезно, я из ваших идей многое для себя взял по части механики торговли. От использования единственного прерывания OnTrade() со стеками сделок и заявок с ограниченным временем жизни до распределения операций в цикле main() по прерываниям на 0.25/0.5/1.0/2.0 секунд для балансировки нагрузки на проц ввиду его дохлости. Осталось еще вот только сама малость - алгоритмы довести до уровня, чтоб на комиссии можно было плевать :))
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Владимир, таблицу "состояние счета" я стараюсь не открывать. В целом она, конечно, хороша. Два только недостатка:
1. Эта сволочь неведомым образом в случайное время (особенно, почему-то, во время закрытия дневной сессии) начинает тормозить квик так, что в скрипте 1-секундный интервал sleep() в цикле main() растягивается на реальных 4 секунды и больше. Но это у меня. Возможно потому, что под биржевые игрушки выделен старый нетбук с 2 гигами памяти и каким-то там селероном о двух вёдрах.
2. Для решения задачи расчета комиссии на отдельные сделки совершенно бесполезна :)
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Цитата
Владимир написал:
<...> Во-первых, очевидно, что Квик знает о том, была ли сделка тейкерной или мейкерной - достаточно посмотреть на цифирь комиссии в портфеле.<...>
А поподробнее? В каком портфеле? Имеете в виду значение exchange_comission в данных, приходящих в OnTrade()?
Цитата
Владимир написал:
<...> при подаче заявке мы не можем гарантировать, будет ли сделка тейкерной или мейкерной, а после того, как сделка состоялась, это и тем более никому не интересно.<...>
Так никто и не говорит о том, что надо что-то "гарантировать". Речь о том, чтобы надежно узнать, какой именно была состоявшаяся сделка, чтобы рассчитать размер комиссии - а когда еще это делать, если не по факту заключения сделки? Может, квик чего-то там и присылает в OnTrade() о комиссиях, но насколько можно этим данным доверять, вот вопрос. Я в курсе, что вы на комиссии болт кладете (или уже нет?), но мне лично спокойнее, когда учет денег ведется возможно точнее.
Цитата
Владимир написал:
В-третьих, что за бред? Как это
бит 5 (0x20) Пассивная сделка ("Состояние" - "П")
бит 6 (0x40) Активная сделка ("Состояние" - "А")

Если я что-нибудь в чём-нибудь понимаю, то сделка может быть либо активной либо пассивной, то есть это ОДИН бит информации, а здесь их ДВА. И что будем делать с состояниями 0x00 и 0x60?
Вот всю подобную хрень я и имею в виду, когда говорю, что квик - штука местами странная, а работает все это с кучей условностей. Сам стараюсь от квика брать только минимум самых необходимых данных. А то полезешь глубже - а там два бита вместо одного, или еще какое-нибудь говно кучерявое.  
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
Игорь М, спасибо! Лишь бы оно работало. А то ж знаете сами, квик такая штуковина чудесатая. Есть-то много чего, только работает все это порой довольно странно и с кучей условностей :)  
getitem и тип сделки. маркет-мейкер маркет-тейкер
 
А вопрос-то правильный, интересный и нужный. И хорошо бы узнать, что скажут об этом разработчики.
Поскольку внятного ответа так и не было, подниму тему вновь. Вопросов здесь, на самом деле, два:
1. Какой параметр в таблице сделок (или в данных, получаемых от прерывания OnTrade) позволяет определить, была ли сделка "тейкерной" или "мейкерной" в том смысле, что заложен в комиссионные тарифы Мосбиржи?
2. Зависит ли передача этого параметра в терминал пользователя от настроек на стороне брокера?
Для писателей роботов
 
Цитата
nikolz написал:
<...>
Всегда интересовало, зачем чел это пишет?
<...>
Вместо "чел" подставь "nikolz", вместо "это" - 95% собственных опусов. Вот это будет правильная постановка вопроса.
Для писателей роботов
 
Не вижу связи между названием темы здесь и содержанием статьи. Уж для чего-чего, а для решения прикладных задач на клиентской стороне QUIK вся эта муть нахрен не нужна. С серверами и "интеграциями" сисадмины брокера пусть сношаются.
sendTransaction выдает ошибку для облигаций, sendTransaction выдает ошибку для облигаций (хотя работает для фьючерсов)
 
Не по теме, просто пришлось к слову. Товарищи разработчики, а что надо было курить, чтобы нагромоздить такую вот дикую мешанину из параметров, когда часть из них на одном языке, часть на другом, и вся эта хрень еще зависит от языка интерфейса программы?! В английском словаре слов не нашли что ли, раз понадобилось притащить в КОД русский язык?
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
Владимир, про дело вкуса согласен. Только чтоб этот вкус сформировать, надо некоторое время поковыряться. А если хочется ускорить процесс, то хорошо спросить у людей более опытных - на то мы здесь все и собрались :) За разъяснения спасибо.
QLua — Получить время возобновления торгов, "Старт торгов ... установлен с хх:хх:00 мск."
 
Владимир, вопрос к вам по оценке ликвидности тикера. В целом, я сейчас поступаю так же, как вы многократно описывали - считаю число изменений цены за последнюю минуту и ранжирую значения на несколько диапазонов. Из вашего опыта, при каком значении этого параметра на тикер можно не обращать внимания, считая "мертвым"? Сейчас считаю тикер дохлым, если цена изменилась 3 или меньше раз в последнюю минуту. Только вот сдается мне, надо или интервал для оценки увеличивать, либо уменьшать это значение: один из тикеров дважды сползал вверх на 3 с лишним процента и обратно, находясь при этом в "мертвом" состоянии. Следовало бы забрать прибыль, а скрипт не обращал на него внимания ))
Подскажите как отправлять инфу из QUIK в телеграм?
 
Вроде, кучу способов уже накидали )
Я для себя избрал самый ленивый способ - через curl.
Код
CURL = "D:\\curl\\curl.exe"
TELEGRAM_TOKEN = "токен бота"
‎TELEGRAM_CHAT_ID = "id чата"

<...>

function sendTelegramMessage(text)
    local cmd = string.format(
        "start /b %s -s -o nul -X POST https://api.telegram.org/bot%s"..
        "/SendMessage?chat_id=%s -d text=\"%s\" ",
        CURL, TELEGRAM_TOKEN, TELEGRAM_CHAT_ID, text
    )
    os.execute(cmd)
end
Как запустить скрипт qlua из командной строки?
 
Владимир, ну и вы ведь в коде предусмотрели все эти возможности - отсутствие задержек, прорисовки, отправки транзакций, симуляцию сделок (OnTrade же не приходит?) - тоже своего рода "заглушки". Тут уж кому как удобнее - либо сразу встроить все это в рабочий код, либо подменять часть квиковских функций на время работы с данными из файлов. Не шибко одно другого труднее :)
Как запустить скрипт qlua из командной строки?
 
Владимир, вы как-то писали, что предусмотрели работу своего скрипта по историческим данным. Для этого вы его тоже в терминале квика запускаете? Если от квика используется пяток функций, вполне можно заместить их "заглушками" и запускать скрипт для отладки через lua.exe. Ну при условии, конечно, что отлаживаются только алгоритмы торговли, а не взаимодействие с глючным терминалом :)
График цены фьючерса с экспирацией в следующем году отображает данные 2013 года
 
Спасибо за ответ.
График цены фьючерса с экспирацией в следующем году отображает данные 2013 года
 
Здравствуйте. Неправильно отображаются графики цены фьючерсов, которые экспирируются в следующем году. Пример на скриншотах. VBH2 - проблем нет, VBH3 - отображает данные за 2013 год.
Быстро продать и быстро купить, вопрос
 
Цитата
Рустам написал:
Есть еще варианты?  Чтобы один раз выставил до торговой сессии и забыл на сутки
Выставить лимитную заявку практически в первую секунду сессии можно при помощи стоп-заявки "стоп-цена по другому инструменту". Я делаю так:
1. инструментом условия выбираю тот же инструмент, по которому хочу выставить заявку;
2. стоп-цену выставляю заведомо ниже ожидаемой цены открытия;
3. цену покупки/продажи, соответственно, нужную мне.
Как только сессия откроется и пройдет первая сделка, выставится лимитка по заданной цене.
Вот только автоматически прикрыть эту лимитку стопами так же легко не выйдет - тут, действительно, или пишите скрипт, или выставляйте стопы заранее. Но в последнем случае есть риск нарваться на непредвиденное :)
Рассчитать данные индикатора ИЛИ брать с графика?
 
Цитата
Владимир написал:
swerg, Я уже несколько раз описывал. лапуль. Там всё просто как трусы по рубль сорок. И про результаты писал - свечи считаются по десятку таймфреймов (в данный момент по восьми: 10, 30 секунд,1, 2, 5,10,30 и 60 минут) для 1-2 тысяч тикеров (в данный момент для 85 штук - спасибо Путину за это). То есть порядка 10000 этих несчастных "индикаторов".  
Хочу уточнить, правильно ли я понял здесь и ранее. Вы используете только по одной последней "свече" каждого таймфрейма, а каждая свеча по сути пара оценок (среднее и дисперсия) за интервал?
Посоветуйте как правильно передавать данные?, доступ в квик стороннему программиста без права выставления реальных ордеров (для тестирования стратегии)
 
Цитата
nikolz написал:
Цитата
Glukator написал:
Может, я чего-то не понимаю, но нахрен такие сложности? Откройте демо-счет с квиком у любого брокера и отлаживайте свои скрипты, покуда терпения хватит.  
Вы вопрос читали?
Тогда отвечайте на вопрос, а не рассказывайте очевидные вещи.
открыть демо счет или у другого брокера - это ответ для дебилов, которые совсем уж ничего не знают, но это  не ответ на вопрос.
------------------
Если предложить по существу вопроса не можете так зачем выпендриваться?
Послушай, умник. Единственный дебил на этом форуме - это ты. Ты лезешь как затычка в каждую жопу со своими "грамотными" советами изучить по 10 ненужных фреймворков и прочим бредом для решения тривиальных задач. В чрезвычайной ценности и эффективности предлагаемых тобою решений все имели возможность убедиться.  
Посоветуйте как правильно передавать данные?, доступ в квик стороннему программиста без права выставления реальных ордеров (для тестирования стратегии)
 
Может, я чего-то не понимаю, но нахрен такие сложности? Откройте демо-счет с квиком у любого брокера и отлаживайте свои скрипты, покуда терпения хватит.  
Позиции на счете появляются уже после снятия заявки, Позиции на счете появляются уже после снятия заявки
 
Спасибо за ответ. Ваш подход мне понятен, и я с ним в большинстве согласен. В моем случае уход от любых асинхронных вызовов обусловлен дрянной связью (YOTA), которая имеет привычку отваливаться в любую секунду и восстанавливаться, когда ей вздумается. Отправив заявку, можно OnTrade и не дождаться. А через 10-15 минут, когда QUIK соизволит восстановить подключение после серии ошибок "вы уже работаете в системе", все равно придется разбираться с числом позиций, чтобы понять, что же за это время изменилось. В таких условиях работать на коротких таймфреймах невозможно, и надо в первую очередь обходить различные глюки связи.

Нули в trans_id мне пока не прилетали, возьму на заметку.
Исполненные заявки не появляются в таблице сделок, Сделал торгового робота для quik на языке lua. Исполнилось 6 заявок, 3 на покупку и 3 на продажу, но в таблице сделок они не появились
 
Цитата
Молчанов Виктор написал:
Сделал торгового робота для quik на языке lua. Исполнилось 6 заявок, 3 на покупку и 3 на продажу, остановил скрипт, но в таблице сделок ничего не появилось. Скрипта у меня 2: на покупку и на продажу. Не знаю что делать, раньше такого не было.
В заранее благодарен.
"Заявка исполнена" не тождественно "сделка заключена". Например, если заявка не прошла контроль лимитов, она будет формально исполнена (и по флагам вы увидите именно это), но сделка совершена не будет. Контролируйте число открытых позиций после исполнения заявки.
Позиции на счете появляются уже после снятия заявки, Позиции на счете появляются уже после снятия заявки
 
Цитата
Дмитрий написал:
Цитата
Владимир написал:
Дмитрий , Не знаю, как прогрессивный люд, а я делаю только так. Только ещё нюанс: функция сверки с портфелем тоже глючит, и в данный момент она у меня отключена.  
Понятно. А если говорить про расчетным метод контроля, не могли бы еще подсказать, почему OnTrade - функция обратного вызова по сделке - вызывается по каждой сделке ровно 3 раза, а не один? специально ставил счетчик по номеру заявки и сравнивал с таблицей сделок - кол-во по счетчику в OnTrade набегает всегда ровно в 3 раза больше кол-ва сделок. Наверное, что-то кроме самой сделки еще колбэк ловит?

Не знаю, насколько сложная у вас задумка, но позволю себе поделиться мыслями.
1. OnTrade идет нафиг, как и большая часть калбеков.
2. Вы выставили заявку по конкретному инструменту. Контролируйте ее исполнение по флагам, но тут есть нюансы.
3. Если даже заявка по флагам исполнена - не факт, что она не отклонена биржей или брокером. В таком случае в таблице заявок она не появится, хоть запроверяйтесь. Поэтому либо сверяете число открытых позиций через getFuturesHolding до и после исполнения заявки, либо ловите OnTransReply и проверяете коды ошибок. Но слепо полагаться только на order.flags нельзя.
4. Цену исполнения заявки можно получить из таблицы trades. Связь между заявкой и сделкой лично мне больше нравится прослеживать через trans_id - идентификатор транзакции будет одинаковый у заявки и заключенной по ней сделки. Если вы входите в рынок по стоп-заявке, то trans_id будет одинаковый у всех - у стоп-заявки, у выставленной по ней лимитки и у сделки. Идентификаторы присваивайте инкрементно с какого-нибудь большого значения, например с 1000000.
5. Обращения к таблицам QUIK - сравнительно медленные операции, но если ваш робот не выставляет по 10000 заявок в час - то это неважно.

P.S. ZayavkaIspolnena_F_Buy = true - простите, но это жесть. Учите английский.
Идентификация лимитной заявки, порожденной срабатыванием стоп-заявки
 
Сам задал вопрос, сам себе и отвечу.
Да, оба пункта имеют место быть. Но есть одна проблема с отслеживанием значения linkedorder.
Как известно, при срабатывании стоп-заявки прилетает OnStopOrder(). При первом его вызове значение linkedorder вероятнее всего будет иметь значение 0, поскольку номер выставленной лимитной заявки еще не будет известен. Но когда лимитная заявка выставится, OnOrder() по ней может быть вызван раньше, чем OnStopOrder(), который принесет нам номер выставленной лимитки в атрибуте linkedorder. И при обработке в OnOrder() мы не сможем только по значению атрибута linkedorder стоп-приказа (который в тот момент все еще равен 0) установить соответствие между стоп-заявкой и порожденной ею лимиткой. А вот по trans_id - можем, поскольку выставленная стоп-приказом лимитная заявка получает то же значение этого атрибута, что и у стоп-приказа.
Последовательность статусов лимитной заявки
 
swerg, спасибо!
Идентификация лимитной заявки, порожденной срабатыванием стоп-заявки
 
Здравствуйте. Каким образом правильно идентифицировать лимитную заявку, порожденную срабатыванием стоп-заявки?
1. Номер выставленной лимитки содержится в поле linkedorder породившей стоп-заявки.
2. Значение trans_id у порожденной лимитки совпадает с trans_id стоп-заявки, по которой она выставлена.

Оба пункта имеют место быть?
Последовательность статусов лимитной заявки
 
Здравствуйте.
Выставляю лимитную заявку через sendTransaction(), далее в OnOrder() через флаги проверяю ее состояние (активна, исполнена или снята).
Вопрос вот в чем. Сложилось впечатление, что при достаточно быстром исполнении заявки сразу прилетает статус "исполнена", минуя состояние "активна". Это так и есть, или я чего-то упустил?
Страницы: Пред. 1 2
Наверх