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

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

Страницы: Пред. 1 ... 21 22 23 24 25 26 27 28 29 30 31 ... 79 След.
Как в стакане акцептовать уже существующую заявку?
 
 В начале XVII в. Венеру увидел в телескоп Галилео Галилей.
Сразу после открытия Галилея планета стала объектом пристального изучения астрономов.

В 1639 г. Венера прошла по солнечному диску, и с тех пор это явление предсказывалось,

В 1761 г. они вычислили, что планета Венера должна будет миновать солнечный диск, т.е. на короткое время займет положение между Землей и Солнцем.

Разумеется, это событие заинтересовало М.В. Ломоносова и его помощников, в числе которых были Степан Румовский (ученик известного математика Леонарда Эйлера) и Никита Панин (наблюдатель от Академии наук).

Сам Ломоносов принял непосредственное участие в изучении уникального астрономического явления. 6 июня (26 мая) 1761 г. он сделал наиболее успешные астрономические наблюдения, воспользовавшись для этой цели обыкновенной подзорной трубой с закопченным стеклом. Обо всем увиденном он делал подробные записи в дневнике.

М.В. Ломоносов увидел, что в момент, когда Венера приблизилась к солнечному диску, вокруг нее образовался чуть различимый светящийся ободок, а ее диск как бы затуманился. То же самое (только более отчетливо) он наблюдал, когда Венера уходила с солнечного диска. О самом моменте открытия он записал в дневнике так: «... Ожидая вступления Венерина на Солнце... увидел, наконец, что солнечный край чаемого вступления стал неявственен несколько будто стушеван, а прежде был весьма чист и везде равен... При выступлении Венеры из Солнца, когда передний ее край стал приближаться к солнечному краю... появился на краю Солнца пупырь, который тем явственнее учинился, чем ближе Венера к выступлению приходила... Сие не что иное показывает, как преломление лучей солнечных в Венериной атмосфере...».

Увидел лишь Ломоносов, а помощники так ничего нигде и не записали.

Т е никто этого подтвердить не смог как и увидеть данное явление .
Ломоносов -соколиный глаз.  Узрел то, что придумал и угадал.
 
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Vitalii Savinov написал:
Цитата
nikolz написал:
 
Цитата
Владимир  написал:
 nikolz  , А при чём тут Ломоносов? Ломоносов, Моцарт, Пушкин - они не умные, они гении. Умным людям деньги действительно не нужны, а у дураков-то они откуда? Заработать они не в состоянии - только воровать.

Да, за растрату сраных 8 тысяч сраных рублей могли и посадить. Воровать нужно миллиардами, и не деревянных. И с каких это пор глубинное население России стало экспертом в финансовых вопросах?
 Не соглашусь.
Что такого гениального сделал Ломоносов?
Возможно он был трудоголиком< возможно просто пробивным, но не гениальным.
Ну как: открыть атмосферу на Венере в XVIII веке - это довольно круто.
(подавляющее большинство и сейчас это не сможет сделать).

Создал физическую химию, открыл молекулярное строение вещества...
Атоми́зм — натурфилософская и физическая теория, согласно которой чувственно воспринимаемые (материальные) вещи состоят из химически неделимых частиц — атомов. Возникла в древнегреческой философии[1]. Дальнейшее развитие получила в философии и науке Средних веков и Нового времени.
КРАШ -ТЕСТ терминала
 
Оптимизация скрипта позволила за 3000 секунд выставить и снять получить 231 тысячу заявок.
--------------------
При этом заявка выставляю , получаю подтверждение что выставлена, потом подаю транзакцию чтобы снять получаю подтверждение что снята и т д
по всем инструментам по которым совершается сделка на демо счете.
------------------------------
В итоге  более 70 заявок в секунду выставлено и снято.
----------------------------
В итоге моего робота заблокировали на демо сервере. Очевидно он его положил.
--------------------------
Тест завершил.
=====================
Прошу снять блокировку.
Как в стакане акцептовать уже существующую заявку?
 
Цитата из Вики:
Гении часто обладают низким эмоциональным интеллектом[, что приводит к шизофрении или биполярному аффективному расстройствуhttps://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0­%BE%D1%81%D1%82%D1%8C#cite_note-_086e2073ea40b4c4-9
При этом выделяют «психотическую» гениальность, свойственную людям искусства, которую связывают с биполярным аффективным расстройством (маниакально-депрессивным психозом),
когда болезнь способствует созданию гениальных работ.
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Владимир написал:
nikolz, А при чём тут Ломоносов? Ломоносов, Моцарт, Пушкин - они не умные, они гении. Умным людям деньги действительно не нужны, а у дураков-то они откуда? Заработать они не в состоянии - только воровать.

Да, за растрату сраных 8 тысяч сраных рублей могли и посадить. Воровать нужно миллиардами, и не деревянных. И с каких это пор глубинное население России стало экспертом в финансовых вопросах?
Не соглашусь.
Что такого гениального сделал Ломоносов?
Возможно он был трудоголиком< возможно просто пробивным, но не гениальным.
Подключение к Quik, Как подключиться к quik для получения информации с графика и формирования заявок?
 
Цитата
Dard_AL написал:
Появилась потребность создания некого приложения, к примеру на delphi, которое каким-то образом бы получало данные с графика, производило анализ полученных данных и отправляло какую-то заявку обратно. По сути, надо написать торгового робота. Понимаю, что Quik прекрасно работает со скриптами на Lua, однако как организовать работу quik с каким-то внешним приложением не представляю. Подскажите в каком направлении вообще копать.
Уже рассказывал на форуме.
-----------------------
Кратко повторю.
----------------------  
Связка будет через dll.  На стороне Квика обязательно будет Lua.
--------------------
Приложение можно написать на любом языке.
-----------------
механизмы обмена  любые механизмы OC
---------------------
например DDE,  Shared memory,memory-mapped files.
===============
Из своего опыта.
Все приложения делаю как Lua скрипт+ dll C функции. Механизмы передачи см выше+ копирование данных из стеков.
--------------------
Приложение загружается в память как самостоятельная задача.
------------------
При необходимости ей передаются данные и она запускается в отдельном потоке, который выделяется из пула потоков.
----------------
Потоков может быть одновременно до 512, но в тестах больше 100 не было надобности.
-------------------
Конструктивная критика приветствуется.
.
Как в стакане акцептовать уже существующую заявку?
 
Согласно опросу глубинного населения России,
быть ученым трудно считают 90%,
а в то что ученый может заработать большие деньги верят лишь 20%.  
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Владимир написал:
nikolz, У дураков деньги не задерживаются. Хотя меня действительно иногда удивляет: сколько же дураков с деньгами! А сочувствие здесь каким боком? У меня всё хорошо...
Очевидно, в одни руки одну штуку - либо деньги, либо ум.
кто пилит бабло, тому некогда думать, а кто думает, тому некогда пилить.
---------------------
Пример тому, Ломоносов. Умер банкротом.
Задолжал Государству аж 8 тыс рублей.
Сейчас бы его посадили лет на 10 за растрату целевых денег.
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Владимир написал:
nikolz, Это дураки ставят айсберги. Были бы у меня на них деньги - написал бы функцию, которая принимает количество, покупка это или продажа и желаемую цену. И чтобы выставляла случайным образом заявки небольшими порциями в небольшом диапазоне цен в одном направлении, а треть или половину - в другом. Ещё и заработать можно чисто на этой операции. И ни одна собака в жисть не догадается, что это айсберг. Написать эту хрень можно за полчаса.
Сочувствую,
но так устроен мир - деньги у дураков.
Как определить доступна ли торговля по инструменту до открытия позиции., При отправке транзакции появляется ошибка брокера "Вам запрещена работа по данному инструменту".
 
Цитата
awkozlov написал:
При отправке транзакции появляется ошибка брокера "Вам запрещена работа по данному инструменту".

Как выяснилось брокер работает с ограниченным списком фьючерсных контрактов (и отправлят смотреть список доступных для торговли фьючерсов в эксель файл на своём сайте).

Однако котировки по всем фьючерсам брокер транслирует, но доступны для торговли только инструменты из их эксель-файла на сайте.

Потому при отправе транзакции появляется вышеназванная ошибка.

Какой командой мне определить, что инструмент доступен для торговли?  
проще всего СalcBuySell
за одно и узнаете сколько можно
Нужна помощь в организиии "связки" WLD4- Quiik, WLD4 - Quiik коннектор
 
Цитата
Виктор Волков написал:
Цитата
nikolz написал:

на более старших версиях  WLD используют C#  
Да,  c 5 версии WL   используют C#..Но он сложнее для не программиста в использовании(на мой взгляд).. Да и с коннекторами для для последних версий WL есть проблемы.. Да и по функционалу старый добрый WLD 4 богаче новых версий..Основной его недостаток- медленный процесс оптимизации..
если Вы писали на WLP4 то DLL сделать для вязи с квик не сложно.
Покажите свою dll c которой у вас проблемы
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Vitalii Savinov написал:
Цитата
Ого.

А "айсберг" - это как?
Айзберг заявка - это например купить 1000 000 а выставлять по 10.
В стакане увидите что лучшая цена почти не меняется и как только скушают порцию так появляется новая на том же месте
На графике - это горизонтальная цена может стоять долго долго  потом обязательно улетит куда-нибудь
Стоп лосс после пробоя, Как установить стоп лосс на выход из позиции после того, как сработал стоп на вход в позицию
 
Цитата
Sergey написал:
*уже ушел вниз не в мою пользу. Как одновременно со стоп заявкой на вход в позицию поставить стоп заявку на выход из этой позиции, чтобы она сработала только если сработает заявка на вход в позицию?
попробуйте заявку по условию по инструменту в стоп-заявке.
Как в стакане акцептовать уже существующую заявку?
 
аналогично на продажу.
Поэтому если Вы покупаете то что крупный показал на продажу , то скорее всего вы играете против рынка
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Vitalii Savinov написал:
Цитата
Владимир написал:
Vitalii Savinov , Вы выкупаете те лоты, которые стоят первыми в очереди по указанной цене предложения. Иногда это действительно может быть одна заявка, а может сотня совершенно разных заявок. Программно Вы тоже можете подать лимитную заявку по указанной цене. Если она нарывается на более раннее предложение, она исполнится. Если заявка по рыночной цене, она исполнится наверняка.
Вот вообще не всегда.

Чаще всего первыми по цене стоят предложения, сгенерированные ботами.
Лот из одной штуки, который дешевле (или дороже) нормального предложения на копейку.

А мне нужно 100 (или даже 1000).
Руками я покупаю свою тысячу первой (чтобы не ушла). Потом может быть и бота возьму, если не убежит (часто убегает)
Причем боты часто соревнуются друг с другом, особенно на популярной бумаге. Выглядит это как тараканьи бега.

То есть руками я выкупаю не первые лоты по цене предложения, а те, которые мне нужны (причем они могут быть и действительно первыми).
И решаю я это сам. Наковыривать тысячу по одной штуке мне не интересно.


Но в любом случае спасибо за ответ.
Стало понятнее
Это используют и крупные игроки.
Если надо поднять рынок чужими руками, то ставит большой пакет на покупку явно, чтобы все видели.
Если же крупный игрок покупает реально, то он ставит айсберг чтобы никто не видел.  
Нужна помощь в организиии "связки" WLD4- Quiik, WLD4 - Quiik коннектор
 
Судя по форумат проблема найти компилятор для этого языка.
вот нашел возможно пригодится:
-----------------
https://github.com/kushbhag/WLP4Compiler
Компилятор WLP4 был компилятором, который реализует сканирование, синтаксический анализ, контекстно-зависимый анализ и генерацию кода кода WLP4.
Конечным продуктом было написать компилятор, который переводит код WLP4 на язык ассемблера MIPS.
WLP4 является подмножеством языка C ++ и включает функции, целые числа, указатели, массивы, условные операторы и циклы while.
================
на более старших версиях  WLD используют C#  
Нужна помощь в организиии "связки" WLD4- Quiik, WLD4 - Quiik коннектор
 
Цитата
Виктор Волков написал:
язык WLP4,
язык WLP4 ,букувка P - это от слова паскаль
из документации:
-----------------
The WLP4 programming language contains a strict subset of the features of C++. A WLP4 source file contains a WLP4 program, which is a sequence of procedure definitions, ending with the main procedure wain.
----------------------
Язык программирования WLP 4 содержит строгое подмножество функций C++. Исходный файл WLP4 содержит программу WLP4, которая представляет собой последовательность определений процедур, заканчивающуюся основной процедурой wain.
-----------------
Any WLP4 program that obeys the lexical, context-free, and context-sensitive syntax rules above is a also a valid C++ program fragment. The meaning of the WLP4 program is defined to be identical to that of the C++ program formed by inserting the WLP4 program at the indicated location in one of the following C++ program shells:
--------
Любая программа WLP4, которая подчиняется приведенным выше правилам лексического, контекстно-свободного и контекстно-зависимого синтаксиса, также является допустимым фрагментом программы на C++. Значение программы WLP4 определено как идентичное значению программы C++, сформированной путем вставки программы WLP4 в указанное местоположение в одной из следующих программных оболочек C++:
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Vitalii Savinov написал:
Добрый всем вечер,

А как быть, если я хочу акцептовать уже существующую чужую заявку?
(например, заявка на продажу 100 штук Сбера и я хочу их из этой заявки купить,
а не ставить свою заявку на покупку 100 штук)

Ищу-ищу, но пока не нашёл.

Какую функцию нужно использовать, подскажите плиз направление, куда копать?
Добавлю к пояснению Владимира
--------------------
Биржевая торговля - это торговля по принципу -"кто первым пришел, того и тапочки"
Первый определяется по цене заявки. Т е лучшая цена всегда первой.
В итоге все на покупку и все на продажу стоят в очередях. Первыми с лучшими ценами.
Т е покупатели - чем выше цена желания , тем первее.
Продавцы- чем ниже цена  желания, тем  первее.
----------------
Но и при биржевой торговле есть возможность купить, что желаете .
Это отдельная площадка для договорных сделок на крупные лоты, но это уже не биржевая торговля, а просто при бирже для особо крупных.
---------------
Поэтому для простых бедных есть лишь один способ купить.
Выставить заявку либо встречно уже имеющимся - т е по рынку
либо с ценой хуже первой и встать в очередь ожидания, когда ваша цена станет лучшей.
Нужна помощь в организиии "связки" WLD4- Quiik, WLD4 - Quiik коннектор
 
если я правильно вспомнил, то в WLD4 используется язык WLP4, который подобен C++.
если так, то пишем dll для Lua и DLL для WLD4 и обмениваемся данными.
Что-то подобное давно делал для Амиброкер и QUIK
Нужна помощь в организиии "связки" WLD4- Quiik, WLD4 - Quiik коннектор
 
Цитата
Виктор Волков написал:
WLD4
Ну Вы и вспомнили.  
еще бы омегу вспомнили.
киньте ссылку где арi описано, возможно что-то подскажу.
-------------
На вскидку, можно через файл  болванку транзакции забросить в луа .
Можно через  виндовские механизмы передачи данных через память и опять в луа.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
Alexander написал:
Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки.
В lua, и в частности в скриптах для квика можно реализовать потоки? Если можно, то это как раз вариант разбивки алгоритма, чтобы каждый поток контролировал свой условный уровень.
Верно.
Например, у меня по колбеку onParam в функции main для каждого инструмента запускается отдельный скрипт в потоке который выбирается из пула свободных.
По умолчанию число потоков в пуле максимум 512.
-----------------
Кроме этого, тестил вариант когда в потоке запускается дочерняя VMLua  - подобно функции main.  Ее особенность в том что у нее общий глобальный стек с основным потоком QUIK.
Но число таких потоков ограничено размером стека VMLua основного потока.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Автоматический робот с сотнями заявок и сделок в день это может и хорошо, но я не маркет-мейкер, у меня нет такой ликвидности, не могу совершать сделки на миллисекундах и комиссии брокер берёт и биржа не как с маркет-мейкера с меня.
Дело в том, что если Вы используете данные которые медленно меняются , что Вы обнаруживаете именно по истории их изменения, т е по прошлому,
то совершаете редко сделки то вы должны уметь прогнозировать на интервал периода Вашего наблюдения.
----------------------
проще говоря, чем реже Вы делаете сделки тем больше должен быть горизонт прогноза.
Поэтому либо вы используете HFT торгуете быстро и интервал прогноза маленький либо наоборот.
------------------
Не надо изобретать велосипед не изучив существующие конструкции  велосипедов.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
nikolz написал:
Стакан - это и есть прогноз будущего, та как в нем заявки - т е заявки на сделки в будущем с горизонтом в мс, так как через мс-сек стакан уже другой.
В части того, что прогноз будущего - да, без прогноза заявку вообще никто не делает, ни робот, ни человек, а вот в части того, что с горизонтом в мс - нет. Это так кажется, что стакан быстро и динамично меняется. Меняется то он меняется, быстро меняется в основном его часть, которая на стыке bid-offer, остальная часть стакана намного более статична и эти статичные части в bid и в offer просто скользят по стакану вверх-вниз. А вот следить надо не за быстроменяющейся частью стакана, а именно за более статичными. От того как они меняются и в каком направлении, от того и зависит тренд. Эта их бОльшая относительная статичность никакие не миллисекунды, она минуты длится, а то и в переделах пол часа - час. Когда сопротивляются повышению цены - в стакан прям начинают заваливать заявками на продажу с крупными объёмами, как натиск спадает, так и заявки такие резко уходят из стакана, тоже самое и в отношении поддержки, не дают цене уйти вниз своими крупными заявками. Но тут надо учитывать не только перевес одних над другими, но и общие объёмы и тех и тех, и объём торгов, и пару графиков сразу, а не только скажем фьючерса, нужно учитывать и изменение базы. Да и вообще интересно смотреть как меняются стаканы во времени того же фьючерс например относительно базы.
То что Вы видите как правило специально создает крупный игрок либо маркет-мейкер.
Например, чтобы продать свою позицию крупный игрок вынужден гнать рынок вверх, чтобы увлечь толпу на покупку его  позиции
В итоге буратино на вершине, а рынок катится вниз.
и наоборот.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
nikolz написал:
это Вы велосипед изобрели, называется индикатор "аллигатор"
Нет. У меня абсолютно совершенно другое. К аллигатору никакого отношения и близко не имеет. Аллигатор, тот анализирует прошлое, т.е. прошлые свечи для построения 3-х скользящих на разных периодах, каждая из которых имеет свой сдвиг вперёд на своё количество. Я вообще свечи игнорирую и у меня 2-е кривых, данные из реального времени - построение кривых в момент прихода свечи без её анализа, в расчёте только данные из стакана, т.е. я за точку отсчёта просто беру приход свечи и считаю стакан в обоих направлениях.
Вы не учитываете то, что свеча и стакан асинхронны.  
Кроме того стакан приходит измененными позициями.
Понятие "реальное время" условно. Обычно под ним понимают время реакции на событие
Т е если до следующего события Вы успеваете отреагировать на предыдущее то это реальное время.
-------------------
В итоге Вы что-то строите по заявкам в стакане.
Как вы удостоверились что по этому индикатору Вы торгуете прибыльно.  
Как в стакане акцептовать уже существующую заявку?
 
Цитата
Vitalii Savinov написал:
Добрый всем вечер,

Смотрю функцию sendTransaction

В целом понятно, как она работает.
Из описания видно, что она может выполнять следующие транзакции:
«NEW_ORDER» – новая заявка,
«NEW_NEG_DEAL» – новая заявка на внебиржевую сделку,
«NEW_REPO_NEG_DEAL» – новая заявка на сделку РЕПО,
«NEW_EXT_REPO_NEG_DEAL» – новая заявка на сделку модифицированного РЕПО (РЕПО-М),
«NEW_STOP_ORDER» – новая стоп-заявка,
«KILL_ORDER» – снять заявку,
«KILL_NEG_DEAL» – снять заявку на внебиржевую сделку или заявку на сделку РЕПО,
«KILL_STOP_ORDER» – снять стоп-заявку,
«KILL_ALL_ORDERS» – снять все заявки из торговой системы,
«KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
«KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки и заявки на сделки РЕПО,
«KILL_ALL_FUTURES_ORDERS» – снять все заявки на рынке FORTS,
«MOVE_ORDERS» – переставить заявки на рынке FORTS,
«NEW_QUOTE» – новая безадресная заявка,
«KILL_QUOTE» – снять безадресную заявку,
«NEW_REPORT» – новая заявка-отчет о подтверждении транзакций в режимах РПС и РЕПО,
«SET_FUT_LIMIT» – новое ограничение по фьючерсному счету

А как быть, если я хочу акцептовать уже существующую чужую заявку?
(например, заявка на продажу 100 штук Сбера и я хочу их из этой заявки купить,
а не ставить свою заявку на покупку 100 штук)

Ищу-ищу, но пока не нашёл.

Какую функцию нужно использовать, подскажите плиз направление, куда копать?
Вы ничего не путаете?
Это же биржевая торговля.
Что не так?
 
Выставляю и снимаю заявки на демо сервере.   КВИК 9.7  Луа 5.3.5
Иногда систематически прилетает ответ  в onOrders    с trans_id=0 , а в таблице orders не ноль
-------------------
вот пример
это в колбеке:
["trans_id"]=0, ["ordernum"]=21555625,
Код
5>пров.архив nun=21555625,t11=1087597,N=84,i=85,No=1086615,n.id=0,n.num=21555625,id=0,i_or=1086614
t={
["start_date"]=0,
["yield"]=0.0,
["settle_date2"]=0,
["withdraw_datetime"]={
["day"]=1,
["week_day"]=1,
["month"]=1,
["hour"]=0,
["min"]=0,
["sec"]=0,
["ms"]=0,
["year"]=1601,
["mcs"]=0},
["qty"]=1.0,
["value"]=80400.0,
["acnt_type"]=0,
["filled_value"]=0.0,
["activation_time"]=0,
["expiry_time"]=-1,
["sec_code"]=EUR_RUB__TOM,
["accepted_uid"]=0,
["price_currency"]=RUB,
["awg_price"]=0.0,
["userid"]=MD1000100002,
["seccode"]=EUR_RUB__TOM,
["uid"]=0,
["bank_acc_id"]=MB1000100002,
["ext_order_flags"]=0,
["expiry"]=-1,
["repovalue"]=0.0,
["on_behalf_of_uid"]=0,
["price"]=80.4,
["price2"]=0.0,
["executing_trader_short_code"]=0,
["accruedint"]=0.0,
["extref"]=,
["capacity"]=0,
["linkedorder"]=0,
["exchange_code"]=20833806,
["balance"]=1.0,
["executing_trader_qualifier"]=0,
["client_qualifier"]=0,
["value_entry_type"]=0,
["flags"]=25,
["repo_value_balance"]=0.0,
["value2"]=0.0,
["class_code"]=CETS,
["passive_only_order"]=0,
["canceled_uid"]=0,
["investment_decision_maker_short_code"]=0,
["repoterm"]=0,
["order_num"]=21555625,
["lseccode"]=,
["ext_order_status"]=0,
["qty2"]=0.0,
["price_entry_type"]=1,
["trading_session"]=0,
["operation_type"]=-1,
["visible_repo_value"]=0.0,
["visibility_factor"]=0.0,
["visible"]=0.0,
["side_qualifier"]=0,
["exec_type"]=0,
["repo2value"]=0.0,
["datetime"]={
["day"]=13,
["week_day"]=1,
["month"]=3,
["hour"]=19,
["min"]=31,
["sec"]=3,
["ms"]=873,
["year"]=2023,
["mcs"]=873468},
["settle_date"]=20230314,
["min_qty"]=0.0,
["trans_id"]=0,
["client_code"]=10546,
["settlecode"]=,
["investment_decision_maker_qualifier"]=0,
["ordernum"]=21555625,
["brokerref"]=10546,
["client_short_code"]=0,
["account"]=MB1000100002,
["start_discount"]=0,
["revision_number"]=0,
["settle_currency"]=RUB,
["reject_reason"]=,
["firmid"]=MB1000100000}

а это в таблице сделок


EUR_RUB__TOM 21 555 625 1 087 594 19:31:03 873468 19:31:04 106675 CETS Купля MB1000100002 80.4000 1 1 0 80 400.00 RUB 208 543 208 543 10546 10546 ЛРО Снята MB1000100002 EUR 1 000 80 400.00
Мало кто об этом знает.
 
QUIK 9.7, 10...
lua 5.3.5
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
Alexander написал:
Вот;
Это взял просто то, что прям сейчас есть. После максимумов на зелёном графике идёт рост цены, но анализировать надо пару графиков иначе не точно и брать более максимальные значения по амплитуде и более продолжительные, чтобы на обоих графиках была одна и та же тенденция, что на покупку, что на продажу. И как правило движение цены начинается после пересечений графиков.
это Вы велосипед изобрели, называется индикатор "аллигатор"
-------------------------
Относительно стакана.
--------------------------
Стакан - это и есть прогноз будущего, та как в нем заявки - т е заявки на сделки в будущем с горизонтом в мс, так как через мс-сек стакан уже другой.
--------------------
Именно по стакану и работают HFT роботы. Но горизонт их прогноза -здесь и сейчас.
----------------
Примерно 70% сделк на крупных биржах - это HFT роботы
-------------------
Маркет-мейкер - это тоже HFT.
-----------------
КРАШ -ТЕСТ терминала
 
Результаты теста новой версии скорости выставления и снятия заявок торгового робота на демо сервере.
------------------------
В этой версии робота  колбеки транзакций и заявок исполняются в основном потоке ,
так как время их исполнения менее 100 мкс.
-------------------------
Объем потребляемой скриптом памяти от 01. до 10 МБ  (1400 инструментов)
---------------------
Не создаются новые потоки, кроме main.
В итоге:
число инструментов =1400
время работы 6840 секунд
число выставленных и снятых заявок по всем инструментам 263 тысячи.
число вызовов колбеков 2 млн 687 тысяч
время обработки одной сделки  от 0.0001 до 0.008 сек.

 
Мало кто об этом знает.
 
Цитата
uuh написал:
SearchItems?
https://forum.quik.ru/messages/forum10/message63139/topic7308/#message63139
Верно,
В приведенном примере проблема в реализации функции getItem.
--------------------
Очевидно, чтобы вытащить один элемент таблицы в ней сначала вытаскивается вся таблица до этого элемента, потом выбирается элемент и выдается .
Разметка волн Эллиотта, дополнение
 
и еще про метатрейдер.
Эта программа делалась для внебиржевой торговли валютой.
Ее допилили для биржи РФ.
Разметка волн Эллиотта, дополнение
 
Цитата
Танечка написал:
 Господа, я не думала, что просьба по улучшению Quik (просьба о доработке) вызовет такую бурную реакцию.  
теперь по порядку:
1. в TradingView можно работать с бесплатным аккаунтом, мне например хватает
2. Quik - бесплатная программа, но , к сожалению это единственное его преимущество. Хотя если Вы стаканные скальперы, то Вам все-равно. Quik самая тяжелая торговая платформа.   Истории сделок нет . Чувствителен к мили секундному разрыву связи - сразу вылетает (потом фиг войдешь). Скорость исполнения заявок в 28 раз меньше чем в метатрейдере (я программист,  и как-то читала замеры скорости МТ5 у разных брокеров, так вот там четко было сказано что Quik даже не обсуждается- не интересно). Опять установила QUIK после того как БКС прислали сообщение что типа МТ5 в России больше работать не будет. Даже пожаловалась программистам MQL. Знаете что мне сказали? "Переходить на Quik после MT5 = пересаживаться с мерседеса на жигули". Так вот - не надо оскорблять жигули. Хорошо что ситуация прояснилась - это не метатрейдер уходит из России, это БКС отзаказался от МТ5 в пользу Quik. У других брокеров проблем нет. Так что соответственно уйду к другому брокеру. Даже если метатрейдер все-таки уйдет - лучше работать в платной программе, чем в квике.
3. кружочки с ипользованием шрифта  EwaPro не проблема.  Quik видит видит этот шрифт.
4. то что команда Quik  это делать не будет в принципе - это тоже уже понятно
5.  nikolz , Вы наверное решили блеснуть своим интеллектом, предложив почитать Пректера?  Не получилось. Я попросила только улучшить функционал Quik, но не просила обучать меня чему-либо, и блистать своей осведомленностью - не к месту.  То что мне нравится и чем я пользуюсь - это мое дело. Вы можете ручками помечать интересные для Вас точки (ромашки рисовать) - зато терминал бесплатный.
Поясню, если упомянули.
----------------
1) Относительно QUIK. внимательно прочитайте регламент брокера.
QUIK - это не торговая платформа, а терминал для подачи заявок брокеру.  
И это две большие разницы.
-----------------------
2) Относительно скорости исполнения заявок. Терминал QUIK к этому имеет мало отношения.
Скорость отправки заявки терминалом на сервер брокера по моим тестам порядка  0.000005 сек.
Поэтому претензии по скорости это к брокеру.
Если не знаете как выставляются Ваши заявки на биржу и что при этом сервер брокера проверяет, то  либо читайте либо спросите.
----------------------
3)  Если Вы читали книжки да еще и программист,  
тогда совсем прикольно, что Вы используете примитивные программы построение волн.
Нет проблем Вам написать эти простейшие алгоритмы на луа и иметь счастье видения этих волн.
Деактивируются стоп-заявки на покупку
 
Цитата
Алексей написал:
Здравствуйте. Выставляю стоп-заявки на покупку в квике от брокера Сбера и БКС на неделю, а они деактивируются после завершения основной сессии. У кого-нибудь так происходит? Это какая-то системная проблема? Спасибо
это к брокеру. Стоп-заявки располагаются на сервере брокера .
Скорее всего никто из брокеров не хранит их целую неделю.
Мало кто об этом знает.
 
Цитата
Станислав написал:
А что если каждые 100 элементов вызывать сборку мусора?
   collectgarbage  ()    
это не поможет.
Сборщик убивает лишь то, что не нужно.  Это происходит при выходе из циклов и функций.
--------------------------------
В данном случае работает цикл и все что внутри него не может быть уничтожено так как оно внутри.
что-либо явно уничтожить не получится,
так как в цикле лишь одна переменная,
которой присваивается текущий элемент таблицы архива.
Разметка волн Эллиотта, дополнение
 
рекомендую почитать и сравнить с картинками в бесплатных терминалах
https://fondovyjsnulja.ru/wp-content/uploads/2022/06/volnovoy-printsip-elliotta.pdf
Как получить любой SECCODE по BASE_CONTRACT ?, В какой таблице идёт привязка между текущим фьючерсным инструментом и базовым активом?
 
Цитата
awkozlov написал:
1.фьюченые инструменты постоянно меняются, но базовый актив - постоянный.
2.как я установил одному базовому активу может быть присвоено несколько фьючерсов по срокам истечения, например: BR = BRH3, BRG3, BRF3


Вопросы:
1.в какой таблице лежит список базовых активов?
2.какая таблица привязывает базовый актив к фьючерсам?

Хотелось бы получить Любой фьючерс по базовосу активу.
Делюсь опытом бесплатно.
-------------------------
Код фьючеса создается из кода базового актива, квартала и интервала.
Правила формирования кода фьючерса найдете на бирже.
Вот по этим правилам можете собрать имя любого фьючерса
Аналогично для опционов.
Разметка волн Эллиотта, дополнение
 
Цитата
Танечка написал:
Сделайте пожалуйста инструмент для разметки волн Эллиотта. Такие инструменты есть в TradingView, Investing, в терминале БКС, в метатрейдере.
Очень надо!

В кружочках - это шрифт EwaPro.  Quik его видит.


Заранее благодарю.
TradingView - это платное, терминал QUIK. -бесплатное
Кружочки будет проблема ,
---------------------
Но главное, что это не волны Эллиота, а пародия на них.
--------------------  
Там "кирпич", там обрыв-туда нельзя, но вам туда можно.
Мало кто об этом знает.
 
пардон, опечатка
Код
local N= getNumberOf("orders");
local j=1;  while N>=j do
   local mem=math.floor(collectgarbage ("count"))
   local z=getItem("orders",j-1)
        Log:write(tostring(j)..","..tostring(mem).."\n");
   j=j+1;
   end
Мало кто об этом знает.
 
Дело бы вечером, делать было нечего.
---------------
Предположим, что у Вас есть большая таблица в терминале QUIK.
------------------------
Например,  у меня получилась такая таблица "orders"  
В ней  227 тысяч строк.
-------------------------
И Вы хотите пробежать по строкам и найти строку с нужными вам параметрами
для этого Вы пишите такой цикл:
-----------------------
Код
local N= getNumberOf("orders");
local j=1;  while N>=j do
   local z=getItem("orders",jz-1)
   jz=jz+1;
   end
для контроля добавим два оператора
первый для замера расхода памяти
и второй для вывода результата в лог файл
получится так
Код
local N= getNumberOf("orders");
local j=1;  while N>=j do
   local mem=math.floor(collectgarbage ("count"))
   local z=getItem("orders",jz-1)
        Log:write(tostring(jz)..","..tostring(mem).."\n");
   jz=jz+1;
   end
А теперь вопрос знатокам, в ответ не подглядывать.
Сколько памяти займет данный цикл пробега по строкам таблицы заявок, в которой 227 строк.
-----------------------------
Уверен, что Вы даже не представляете себе это .
==================
Ответ на поставленный вопрос в лог файле
посмотрели 1-ю строку, заняли память 121 КБ
Код
1,121
посмотрели 100-ю строку, заняли память 654 КБ
Код
100,654
посмотрели  1000-ю строку, заняли память 5395 КБ т е округленно 5 МБ
Код
1000,5395
ну и когда посмотрели  последнюю 227851 строку, заняли память 1205 952 КБ т е округленно 1.2 ГБ
Код
227851,1205952
Вот так Lua в QUIK кушает память.
И  в этом случае мы просто нашли нужную нам заявку в таблице заявок.
-------------------------------------------------------
Угадайте, как с этим бороться?
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Вообще эти свечи все "старые", как и вообще весь этот ТА как по мне, так это всё ерунда. Что бы там не рисовал нам ТА, рано или поздно он соврёт. Анализировать конечно можно, но нужен чисто свой ТА, котрый будет работать по набору чисто твоих данных, которые могут динамически менятся во времени от разных ситуаций, да и сам алгоритм ТА нужно постоянно менять под меняющийся рынок. Только так ТА будет работать. Но это такие сложности постоянно обновлять входящие данные и их количество и постоянно корректировать код(и то только после определённого слежения за рынком), а как поменяется код, то нет никаких гарантий, что рынок не изменится и код будет рабочим определённое время. Вобщем ТА не вариант в плане свечей и графиков прошлых цен, вернее вариант, но очень сложный, требующий постоянной корректировки скрипта. А вот анализ стакана может помочь при дневных сделках и общем анализе ситуации на рынке если мониторить несколько инструментов например основных фишек индекса.
Для такого ТА использую нейронные сети.
--------------------
Относительно пользы свечей и "старых" свечей Вы заблуждаетесь.
=================
Мое мнение следующее:
-------------------
Любая история полезна для прогноза будущего поведения ее участников.
-------------------
Любая тварь действует на основе накопленного опыта, т е прошлых ошибок и достижений.
--------------------
Поэтому без прошлого нельзя прогнозировать будущее.
----------------------
Чем больше интервал наблюдаемого прошлого , тем дальше горизонт прогнозируемого будущего.
Если торгуете на основе стакана, то горизонт такого прогноза измеряется в миллисекундах.
Так торгуют HFT роботы.
Но это очень дорогая технология и ее применяют лишь крупные игроки.
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
nikolz написал:
1) про замыкания.индикаторы здесь не причем.  Это способ программирования  функций,  при котором значения переменных сохраняются  после выхода из функции.Он используется в различных языках программирования.Не знает, не используйте. тоже самое делают глобальные переменные.--------------2)если надо не обрабатывать старые, то сравнивать i с size()
1) Про замыкания возник вопрос из-за того, что у кваика есть справочный .pdf файл "Использование Lua в Рабочем месте QUIK.pdf" в C:\Open_Broker_QUIK\Doc\Lua, в нём есть п. 3.7 "Расчёт EMA" и там написано: "Нет возможности обратиться напрямую к предыдущим рассчитанным значениям индикатора.
Это значит, что для вычислений текущего значения необходимо хранить и предыдущие
значения. Для таких целей в Lua используется механизм замыканий. Определение такой
функции нужно вынести в отдельный файл и в отдельный каталог, который не сканируется
при создании индикатора."
И далее идут примеры, функции, возвращающие функции(короче замыкания как я понял). Они используются именно для индикаторов. В чём там прикол, я так и не понял. Можно тоже самое написать и не использовать возврат функции в функции(замыкания). Что они хотели этим показать я не понял. И зачем это всё в отдельный каталог, который не сканирует квик при создании индикатора? Зачем весь этот изврат с каталогами, dofile и замыканиями в придачу???
2) Это да согласен, что i c Size() надо тогда сравнивать, это так. Просто у меня сначала скрипт начинался с того, что в init сначала запоминал Size(), а в OnCalculate() отбрасывал всё, что меньше Size(), повторные свечи >= Size() тоже обрабытывал, для меня это не важно было. Вобщем такой скрипт при загрузке на индикатор нормально загружался и работал без проблем, рисовал кривые мои 2 шт в отдельной области. Проблема возникла только тогда, когда я выходил из квика, повторно запускал квик и вот тут то квик у меня вообще начал зависать, вернее в цикле без конца то подключится к серверу, то отключится, при этом куча окон всяких на экран выдаёт, в сам квик войти невозможно стало. А чтобы зайти нужно было как то отключить индикаторы. Я даже по началу вообще не понял, что в этом виноваты мои индикаторы, так как проблема то явно выглядела как подключения-отключения к серверу. Потом дошло, что могут влиять на это индикаторы. А как их отключить то если квик не запускается. Вот пришлось переименовывать папку с индикаторами, чтобы квик при загрузке их не находил. Папку переименовал, в квик стал заходить, ну иначал искать причину чё к чему. Выяснил, что квик этот почему-то еще до коннекта с сервером по паролю 2 раза(зачем 2 не знаю, только разрабам видно известно) пробегает по свечам по всем начиная с первой, потом после второго прогона останавливается и пока не залогинишься более никакие свечи не прогоняет. Потом как залогинишься квик опять таки ещё 2 раза опять заного пробегает по всем свечам(точно так же как и до залогинивания) но потом уже начинает и дальше свечи обрабатывать, что новые грузит. Так вот в самый первый раз до залогинивания Size() выдаёт почему-то 0(ноль) Ха - ха - ха Ноль, а не то что надо - максимальный индекс свечи. Отсюда получалось то, что даже при закрузке квика(после переименования папки с индикаторами)  и при работающем квике если название папки с индикаторами вернуть обратно, то индикаторы то всё равно не заработают на открытых графиках, а чтобы заработали надо зайти в график, удалить их и заного загрузить на график, только тогда квик их загрузит из папки. Ну а потом я эту проблему решил как описал выше через isConnected() и подкорректировал всю логику индикатора, убрав Size() из Init. Просто вычислений на свечу видимо много было и квик так долго всё обсчитывал и обсчитывал, что не догонял чё так долго то и разрывал соединение установленое с сервером, потом опять по кругу - подключался, считал, отключался и т.д. и т.п. Потом, когда сделал так, что Size() начал мне выдавать нормальное значение вместо ноля, квик стал подключаться, так как все свечи до логина мой индикатор считал в nil, а потом отсчитыал только свечи новые, видимо так как новые то идут не так часто, квику хватает времени и на свою работу и на просчёт свечей. Всё стало работать. А так то это их косяк - почему Size() выдаёт ноль если он в Init и квик загружается с существующим ранее индикатором? Ведь всечи то есть и он их прогоняет до какого-то значения аж 2 раза. Почему же тогда Size() не возвращает это значение? Вот в этом и косяк. Не будь его всё бы работало и в процессе загрузки на индикатор и после перзагрузки, ан нет, пришлось извращаться и корректировать код.
проблему с отключением индикатора я решаю так :
Перед запуском квика в индикаторе пишем аброкадабру  т е делаете явно ошибки.
При запуске КВИК грузит индикаторы,  а при их загрузке работает компилятор байткода.
Он находит  ошибку и квик такой индикатор не загружает.
---------------------
Про два раза, да я тоже когда-то возмущался этим.
Первый раз Size меняется до максимального. А второй раз он уже не меняется пока не придет новая свеча.
Я делал так, чтобы считалось лишь один раз, но есть хитрость двух разового расчета . Поэтому просто забил на это.
---------------------
Бесплатный совет.
Так как Вы начинающий писатель, то рекомендую Вам писать скрипты без циклов.
Так пишут профи софт  для систем обработки данных в реальном времени.
Если научитесь, то индикаторы будут в десятки раз считаться быстрее.
----------------------
Уровни Фибоначчи, Длина лучей от уровней
 
Они положили сырой порох, Карл!
Уровни Фибоначчи, Длина лучей от уровней
 
Поздравляю от всей души!
―Но с чем?!
―С успешным возвращением с Луны!
―Неправда! В этот раз я не был на Луне!
―Как это не был, когда уже есть решение, что был!
Кривые шибки в QLua
 
Цитата
Старатель написал:
Цитата
nikolz написал:
В итоге тест работал 4 часа
4 часа - это не срок. У меня скрипты годами (!) работают, но иногда вылазят ошибки, описанные в данном треде. Многие ошибки даже за неделю непрерывных нагрузочных тестов нереально воспроизвести.
если не учитывать, что за 4 часа колбеки вызывались 4 миллиона раз и было выставлено и снято 500 тысяч заявок.
 
Кривые шибки в QLua
 
Цитата
Nikolay написал:
Это строка приводит к падению терминала (10.1.2.2):
Код
   local  sec_list  =   getClassSecurities ( 'TQOD|TQOB|TQTD|TQTF|EQEO|EQOB|EQDB|SPBBND|SPBXM|QJSIM|TQBR|FQBR|SPBFUT|CETS' )  

Да, есть ошибка в передаваемом параметре, но, кажется, это не должно приводить к падению. Есть ощущение, что просто нет unit тестов методов qlua...
А не чо, что вместо  разделителя ","  Вы используете  "|" ?
и в конце нет ","
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Цитата
nikolz написал:
Бесплатные советы.
1) Посмотрю. Вникну подробнее. Мельком глянул - ничего с наскоку не понял. Для чего эти замыкания в квике в индикаторах? Если можно на пальцах, хоть кратко, просто для того, чтобы уловить суть необходимости.
2) Не, мне так не пойдёт. Это отсекёт повторы если будут, а так то всё-равно все свечи пробегать будет. А мне надо, чтобы "старые"(до момента коннекта) все отбрасывались. Я в принципе уже нашёл решение как это сделать, хотя и Size()
в Init возвращает 0 при запуске квика с индикаторами. Вызыываю Size() только после коннекта с сервером и только 1 раз, чтобы зафиксировать значение и обрабатываю свечи > этого значения только. Несколько вызовов на 1 свечу мне не страшно, пусть будут, график рисует как надо. А так то да, можно использовать, чтобы одну свечу 1 раз только вызывать, может и заиспользую.
1) про замыкания.
индикаторы здесь не причем.
Это способ программирования  функций,  при котором значения переменных сохраняются  после выхода из функции.
Он используется в различных языках программирования.
Не знает, не используйте.
тоже самое делают глобальные переменные.
--------------
2)если надо не обрабатывать старые, то сравнивать i с size()
Как работает OnCalculate(), Интерактивно указываю интервал расчета при помощи меток. Пересчитывается только текущая свеча
 
Цитата
Alexander написал:
Не нужные мне свечки ранее отсекал сохранение значения через вызов функции Size(), обрабатывал только вновь пришедшие свечи. При загрузке индикатора такое работало. После перзагрузки Size() внутри Init возвращает 0, буду пробовать выкручиваться, может отсекать свечи до подключения и после подключения? Попробую, а то виснет же - видимо много считает и считает при загрузке.
Бесплатные советы.
1) Если вы про замыкание в луа, то рекомендую читать это:
https://eligovision.ru/media/upload/lua.pdf
2) Чтобы индикатор рассчитывался лишь по закрытым свечам используйте условие появления новой свечи.
т е поставьте if по смене параметра  OnCalculate(i)
Например так
Код
local  _i=0
function OnCalculate(i)
if i~=_i then
---что-то делаете
_i=i
end
return  ... -вывод индикаторов
end
Ищу программиста для написания индикатора, Согласно тех. задания скрипт должен рисовать уровни поддержек и сопротивлений.
 
Цитата
PAK написал:
Цитата
nikolz написал:
Выкладывайте тех задание, стоимость и сроки.  
Тех. задание объёмное, стоимость и по срокам подлежит совместному обсуждению.
На каком ресурсе Вам удобнее?  
на любом файлообменнике . ссылку в личку.
Ищу программиста для написания индикатора, Согласно тех. задания скрипт должен рисовать уровни поддержек и сопротивлений.
 
Цитата
PAK написал:
Нужны авторские уровни, согласно тех. задания.
Выкладывайте тех задание, стоимость и сроки.  
Ищу программиста для написания индикатора, Согласно тех. задания скрипт должен рисовать уровни поддержек и сопротивлений.
 
Цитата
PAK написал:
Согласно тех. задания скрипт должен рисовать уровни поддержек и сопротивлений.
вот это рисует скрипт:

 
Страницы: Пред. 1 ... 21 22 23 24 25 26 27 28 29 30 31 ... 79 След.
Наверх