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

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.
синхронизация функции main и колбеков
 
сделал библиотеку на луа для работы с системными событиями.
Если надо, стучите.
Можно ли сделать линии индикатора невидимыми?
 
напишите свои индикаторы и выводите вместо их значения nil
А если они невидимые то зачем из выводить на график?
синхронизация функции main и колбеков
 
sleep позволяет усыпить main не менее чем на 1 ms что примерно в 50 раз больше времени активации main колбеком.
Но чтобы ядро не грело воздух зря, надо ставить sleep на 100 ms.
А это уже в 5000 раз больше времени активации main.
---------------------
кроме того, интервал прихода информации с сервера брокера составляет примерно 70 ms (у меня)
Поэтому при sleep 100 ms может не только пропускать колбеки, но и создать затор поступающей информации с торгов.
т е легко получить тормознутый робот.
------------------
синхронизация функции main и колбеков
 
При этом запуск теста на загрузке процессора отражается слабо (я особо  не заметил). загрузка процессора в среднем 10%.
синхронизация функции main и колбеков
 
В предыдущем тесте в вычислении времени включено время преобразования значений счетчиков в строку
Поэтому время немного завышено
Вот показания лог файла чистой задержки активации main колбеком:
....
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,37,0
31>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,37,0
22>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,38,0
23>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,39,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,40,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,41,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,42,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,43,0
23>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,44,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,45,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,46,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,47,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,48,0
33>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,49,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,50,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,51,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,52,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,53,0
20>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,54,0
21>0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,55,0
28>0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,55,0
...
Т е это время менее 30 мкс .
синхронизация функции main и колбеков
 
Полагаю , что останов функции main c помощью sleep неудачное решение разработчиков.
--------------------------------
Сам использую останов потока системным событием Event.
Неоднократно предлагал разработчикам реализовать останов потока системным событием Event.
Но воз и ныне там.
------------------------------
Чтобы показать наглядно эффективность предлагаемого способа реализовал следующий тест.
-----------------------
Во всех колбеках поставил счетчик вызова и старт таймера.
В функции main поставил  останов таймера и запись  в лог счетчиков событий всех колбеков и прошедшее время с момента вызова очередного колбека.
----------------------
Вот фрагмент лог файла:
...
93>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95846,0
83>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95847,0
90>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95848,0
129>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15785,95848,0
110>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95848,0
261>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95850,0
431>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95850,0
88>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95851,0
85>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95852,0
131>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15787,95852,0
113>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95852,0
162>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95853,0
91>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95854,0
93>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15789,95854,0
294>0,0,0,0,11,11,0,0,0,0,0,0,0,0,15789,95855,0
....
На первой позиции время в микросекундах, прошедшее с момента вызова терминалом колбека до момента активации потока main скрипта.
далее через запятую счетчики вызова колбеков.
--------------------------------------------
Как видно из лог файла это время составляет примерно 100 мкс (компьютер слабый, WIN XP).  
--------------------------
Получается, что использование функции sleep либо приведет к постоянной активации потока и бесполезной загрузки ядра,
либо к пропуску завершения работы колбеков.
Обе ситуации плохо.
Переустановка терминала QUICK в случае поломки компьютера, сохранение старых настроек при повторной установке QUICK
 
Цитата
Инесса написал:
Здравствуйте.
Сломался компьютер, поменяли жёсткий диск. Сохранилась на флэшке резервная копия QUICK  давностью полтора года  с ключами.
Как правильно переустановить терминал чтобы в нём были мои ПОСЛЕДНИЕ (недельной/месячной давности) настройки?
Можно ли это вообще каким-то образом сделать?
Если я просто копирую с этой флэшки и запускаю терминал, он имеет настройки полуторагодичной давности (время создания этой резервной флэшки). Может просто потом обновить терминал до текущей версии и появятся мои последние настройки?
Или скачать дистрибутив с сайта ВТБ и потом как-то прописать там старые ключи?
Или есть ещё способ восстановить собственные настройки терминала?
Если этот вопрос уже где-то рассматривался, киньте ссылкой, пожалуйста.
увы, никак.
Отменить цикличность появления сообщения
 
Цитата
Олег написал:
Небольшая корректировка: сейчас в коде прописано  sleep (20000) , то есть сообщение появляется раз в 20 секунд.
в цикле читайте системное время и вычисляйте требуемый интервал
при его наступлении выводите сообщение. Таким образом получите интервал от 1 секунды до 100 лет.
Еще один вопрос про потоки
 
Цитата
Владимир написал:
nikolz, Лапуль, Ваша информационная ценность для меня просто РАВНА нулю. Ну, расскажите, коль неймётся, как Вы будете получать дневные, недельные и месячные свечи - посмеёмся...

Владимир,
Вообще-то это Вы льете крокодильи слезы про ужас со свечами.
У меня нет проблем
Не хотите помощи, нет проблем.
Полагаю Вам надо лишь ля-ля.
Успехов в словесном поносе на форуме.
 
Еще один вопрос про потоки
 
Цитата
Владимир написал:
Anton, Я догадываюсь - я же не первый год программирую.  :: Но сути это не меняет: это по-прежнему простенькая прикладная задача и по-прежнему с поганым языком и поганым интерфейсом. Но функциональность по-прежнему ДОСТАТОЧНАЯ для организации торговли. Что до "внешних длл по дизайну" - а зачем они нужны? Дизайн на таблицах Квика и всяких там SetTableNotificationCallback более, чем удовлетворительный - хрен такой получишь от этих внешних длл! А роботу, по большому счёту, это вообще не нужно. Только вот со свечами какой-то тихий ужас творится.
Я Вам уже предлагал выше. Напишите конкретно что у вас за ужас со свечами.  (проще задачи не бывает)
Я Вам расскажу как решить Ваш ужас.
 
Перемещение заявки 2 транзакциями
 
поясню про быстрее.
Биржевая информация о сделках поступает простым клиентам с задержкой примерно 0.1 секунды.
Компьютер обработает ее и отправит заявку примерно через 0.01 сек  
Поэтому, если хотите быстрее, то используйте выделенный сервер в дата центре брокера.
Будет до 100 быстрее.
Еще один вопрос про потоки
 
Цитата
Виталий написал:
Цитата
nikolz написал:
В итоге каждый колбек пишет принимаемые им данные в свой массив
А функция main лишь читает эти данные.
Синхронизировать колбек и main нет надобности,
так как если колбек изменил данные, то main на следующем цикле их увидет.
У меня меин в блокировке ждет данных периодических...в этот момент колбеки вызывают функциии другие. Но стек то получается один и надо его синхронизировать.
я решил проблему через системные события и мапинг файлы.  В результате я могу данные из колбеков использовать в любых других скриптах т е потоках а не только в main данного скрипта.
Чтобы стеки не пересекались  определяю все данные как локальные для соответствующего потока.  
Еще один вопрос про потоки
 
В итоге каждый колбек пишет принимаемые им данные в свой массив
А функция main лишь читает эти данные.
Синхронизировать колбек и main нет надобности,
так как если колбек изменил данные, то main на следующем цикле их увидет.
Еще один вопрос про потоки
 
Цитата
Виталий написал:
Известно, что функция main и колбэки (напр. OnTransReply) выполняются в разных потоках. Далее к проекту подключена с++ либа и функции из нее вызываются как и из функции main так и из колбэков. Далее, я понимаю механику следующим образом:
- Функция main и колбэки отправляют в с++ либу разные lua_state, и поэтому в данном случае обращение к ним из либы в принципе не может пересечься  поэтому потокобезопасно.
- А вот разные колбэки сами по себе отправляют в либу одно и тоже lua_state и поэтому работа с ними в либе уже требует синхронизации.

Правильно ли я понял механизм?
Проблема синхронизации потоков  не связана с исполняемым кодом, а связана с записью данных .
--------------------
Из своего опыта:
Особенностью работы с биржевыми данными является то, что всегда можно организовать данные так,
чтобы запись в  конкретный массив (вектор) делалась лишь одним потоком, а читались данные всеми другими.
Так как данные поступают асинхронно, то в такой реализации синхронизировать ничего не надо.
Проблем не возникает.
Перемещение заявки 2 транзакциями
 
Цитата
Незнайка написал:
Цитата
Андрей написал:
ошибки типа данный инструмент запрещен в шорт
 
Цитата
Андрей написал:
Сделайте вторую версию sendTransaction, которая бы не проверяла подобные локальные условия. Чтобы можно было вызывать 2 транзакции сразу друг за другом.
Вы не подумали, что первая заявка может исполниться, пока транзакция на её снятие дойдёт до биржи?
Тогда, при исполнении второй заявки, получится как раз шорт.
А это нарушение. Брокер будет вынужден закрывать ваш шорт принудительно.

Цитата
Игорь М написал:
вам нужен прямой доступ на биржу
А кто в этом случае контролирует лимиты?Никаких нарушений не возникнет
Не парьтесь никаких нарушений не возникнет.
На бирже торгуете не Вы, а брокер.
Поэтому не важно будет шорт или нет.
У брокера достаточно средств клиентов и бумаг клиентов  для покрытия всех его ( т е его клиентов) сделок
За достаточностью средств у брокера следит биржа .
Неправильное исполнение тейк-стопа, Брокер Сбер наглым образом нарушает исполнение стоп-ордеров
 
А чтобы клиенты не наезжали на брокера, брокер в регламенте честно указывает:
мол сделаю как получится и когда смогу.
Неправильное исполнение тейк-стопа, Брокер Сбер наглым образом нарушает исполнение стоп-ордеров
 
Цитата
Олег написал:
Коллеги!
Подскажите как бороться с наглым Сбером, который неправильно исполняет стоп-заявки.
У меня была выставлена стоп-заявка №305 019 117 на продажу акций Акрон по цене 6600, с отступом 2 и защитным спредом 6.

27.07.21 произошел скачек стоимости акций до 7000. Но моя заявка была реализована по цене 6028, что на 240 рублей ниже покупки.

Стор-ордер был выставлен именно с защитным спредом, а не "по рынку". Если бы в момент исполнения стоп-ордера на рынке не было бы предложения по цене 6600+2-6, то должен был остаться открытым и не исполненным ордер на продажу по цене 6596 и до предложения на рынке он должен был остаться не исполненным.
Так как в Сбер-онлайн отключили возможность написать жалобу, а в чате оператору ни чего нельзя объяснить, пришлось писать в группы Сбера в соцсетях, но хоть так приняли жалобу и даже присвоили ей входящий номер. К стати, это фишка только Сбера не принимать на сайте жалобы :-(

В ответ получаю вот такую отписку:
--------------------------------------------------
Решение:  У банка отсутствуют основания для выплаты компенсации денежных средств.  Заявка от 05.07.2021 на продажу Акций исполнена банком согласно выставленных Вами условий.  Банк регулярно контролирует показатель текущей очереди входящих звонков в службу поддержки. Однако в силу того, что количество поступающих телефонных обращений в некоторых ситуациях не поддаются точному прогнозу, оперативно сократить при данных обстоятельствах время ожидания клиента до показателя штатного режима не всегда представляется возможным. Банк проводит мероприятия для исключения подобных проблем в будущем, в том числе путем увеличения штатной численности службы поддержки.  Задать интересующие Вас вопросы Вы можете в приложении СберБанк Онлайн в разделе «Диалоги» или в профиле «Связь с банком», а также в мобильном приложении СберБанк Инвестор / СберИнвестор.  Информация о инвестиционно-брокерском обслуживании размещена на официальном сайте банка в разделе «Инвестиции».  За консультацией Вы также можете обращаться в подразделения банка, осуществляющие брокерское обслуживание. Адреса, телефоны и режим работы офисов брокерского обслуживания размещены на интернет-сайте банка в разделе «Инвестиции» - «Брокерское обслуживание» - «Контакты»:  Приносим извинения за неудобства.   Основание принятого решения:   Порядок и условия, на которых Банк предоставляет физическим лицам брокерские услуги на рынке ценных бумаг, биржевом валютном рынке и срочном рынке, предусмотренные Федеральным законом «О рынке ценных бумаг» от 22.04.1996 № 39-ФЗ, а также иные сопутствующие услуги определяются Условиями предоставления брокерских и иных услуг ПАО Сбербанк (далее - Условия).  Текст Условий размещён на официальном сайте банка в сети Интернет в разделе «Инвестиции» - «Брокерское обслуживание» - «Документы»[1].  Заявка «Тэйк-профит» – это заявка с условием вида «исполнить при ухудшении цены на заданную величину от достигнутого максимума (на продажу) или минимума (на покупку)». Заявка работает следующим образом (пример для заявки на продажу): после достижения ценой последней сделки условия стоп-цены начинается определение максимума цены последней сделки. Если цена последней сделки снижается от максимума на величину, превышающую установленный «отступ», то создается лимитированная заявка с ценой, меньшей цены последней сделки на величину «защитного спрэда».  ----------------------------------------------  Дальше куча воды.  Может мне специалисты по Квику объяснят как в таком случае должна исполняться заявка? И зачем нужен защитный спред, если брокер как хочет, так ее и исполняет?  С уважением, Олег.  
Попробую пояснить про стоп-заяви.
Стоп-заявка - это отложенная отправка заявки клиента
При срабатывании условия заявка не будет исполнена а будет отправлена на исполнение на сервер биржи.
Поэтому фактическое исполнение стоп-заявки зависит от многих условий.
Так как стоп-заявка как правило исполняется у многих клиентов и в моменты резкого движения цены, то в итоге получается длинная очередь на отправку этой заявки с сервера биржи
и длинная очередь на исполнение этой заявки на сервере биржи
----------------
В итоге Вы всегда получите результат хуже, чем Вы мечтаете.
Нехватка видеопамяти
 
Цитата
TGB написал:
Цитата
nikolz написал:
пора бы усвоить что халява - она и есть халява.Во-первых, весь квик - это официально бесплатный продукт.
   Это вам так брокеры рассказывают, но при этом в ваших комиссиях брокеру незримо сидит некий процент отчисления за QUIK.
Так что за QUIK пользователь платит и ARQA материально зависит от пользователей.
Это так в регламенте брокера указано и Вы с ним согласны и подписываете с ним договор.
-------------------------
что сидит там незримо, то в суде не докажите.
-----------------------
А бесплатность услуги исключает ответственность за ее качество.
------------------------  
Можете сколько угодно  жаловаться на ошибки на форуме.
-----------------------  
Для всех посетителей форума писанина на QUIK это хобби с желанием на халяву срубить бабло.
---------------------------------
Для разработчиков - это ежедневная работа , а не хобби. Поэтому они делают то, за что им брокеры платят.
--------------------
Вы платите деньги брокерам. Вот и жалуйтесь брокерам на ошибки в софте.
Только при претензиях от них разработчики будут исправлять ошибки.
---------------------
А на жалобы от халявщиков  всегда будут лишь отписки и милостыня.  
Тестирование стратегий, Возможность тестирования
 
Цитата
BlaZed написал:
Цитата
Egor Zaytsev написал:
Добрый день.

Если делать склейки инструментов при экспирации? Данные будут склеиваться, правда имя инструмента будет новое, но исторические данные получить сможете.
Или такой вариант не удобен?
Такой вариант очень неудобен.

Может все же рассмотрите озвученное мной предложение?

Каждый при желании может написать свой тестер стратегий.
Но на данный момент нет возможности получить доступ к историческим данным, однако исторические данные у многих имеются в папке archives терминала.
Разве не логично бы было дать способ доступа к ним?
Все не так уж сумрачно вблизи...
Рассказываю свой опыт:
---------------------
Вариант 1:
1)  Изучаем Lua
2) Берем  редактор текста Scite. Этот редактор написан на LUA и на нем легко запускать на исполнение скрипты на LUA
3) Исторические данные за любой период и с любым таймом качаем с сайта финам  или выводим  из терминала КВИК в файлы
4) Пишем  свой тестер на ЛУА в Scite и тестируем свои стратегии сколько душе угодно и на любой истории.
-------------------------
Вариант 2:
Пишем для терминала КВИК индикатор и в не вставляем режим тестирования и оптимизации
Тестируем на данных, которые в КВИК.
------------------------
Вариант 3:
1) Берем пакет R, так как это бесплатно.Изучаем его язык.
2) Пишем скрипт который скачивает историю с бесплатных сайтов котировок
3) Пишем свой тестировщик в R используя любые библиотеки обработки big data.
-----------------
Вариант 4:
Используем бесплатный сервер в облаке и делаем все на нем.
=================  
Это лучше и быстрее, чем канючить халяву на этом форуме.
Нехватка видеопамяти
 
Цитата
Владимир написал:
Предлагаю радикальное решение проблемы.

Насколько я понимаю, существует некий "регламент работы с клиентами", который обязывает реагировать на замечания и предложения участников форума, но не обязывает их исправлять - достаточно стандартной отписки: "Ваше предложение зарегистрировано", после чего проблема как бы закрыта, и следующее аналогичное или даже тождественное предложение начинает жить своей жизнью, и так по кругу. Мало того: сами сотрудники техподдержки не помнят (или делают вид, что не помнят), что данное предложение уже подавалось. А нужно бы изменить регламент примерно так:
1. Заводится страничка, в которой сидит таблица со всеми предложениями, пронумерованными, прошнурованными, столбцы которое примерно такие:
а) Порядковый номер предложения
б) Автор (ник)
в) Дата подачи предложения (и ссылка на него)
г) Содержание предложения (лучше в "приглаженной" форме, убирая эмоции, если они там есть)
д) Решение по предложению
е) Причина отклонения либо предполагаемая дата реализации
ж) Дата фактической реализации либо причина, по которой предложение не было реализовано.

Собрать такую страничку не так уж сложно - например, я сам могу не полениться и денька три посидеть в сообщениях сотруждников техподдержки и вытащить оттуда все посты о регистрации. Да, в конце концов, могу даже у себя на сайте такую таблицу сварганить! И я считаю, что подобное действие в состоянии серьёзно изменить отношения к пожеланиям пользователей: регламент - штука СТРРРРАШНАЯ!

Ну как, господа из техподдержки - регистрируем моё предложение? ::  
Немного прикольно читать это.
..надцать лет использую QUIK и все надцать лет одно и тоже завывание от пользователей. Особенно начинающих .
---------------------
пора бы усвоить что халява - она и есть халява.
Во-первых, весь квик - это официально бесплатный продукт.
QLUA - это все лишь библиотека.
Как все бесплатное - все это применяется пользователями как есть, c приключениями на свою ж...у.
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
В качестве справки:
Для тестирования  скорости обработки колбеков с использованием Event
Делаю вот такой тест: (настройку скрипта опускаю)
----------------
function main()
while true  do
mat.waitEv(Event);
t=mat.Stop();
messege(tostring(t));
end
---------------
function OnParam(class,sec)
if class=="SPBFUT" and sec=="SRU1" then
tbid=getParamEx(class,sec,"bid")
mat.wr(fout,tbid.param_image));
mat.setEv(Event);
end
---------------------------------
Суть теста следующая
поток main остановлен и не потребляет процессор пока не произойдет прерывание  колбека
------------------------
В колбеке стартует таймер, пишется в map-file параметр и сбрасывается Event.
----------------------------
При этом запускается поток main и в нем останавливается таймер  и выводится время реакции потока на колбек.
--------------------
В итоге  запаздывание реакции потока main на колбек не более 20 микросекунд.  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Владимир написал:
nikolz, Спасибо, родной - советы ОТ ВАС поистине бесценны! ::

1. Плевать мне на индикаторы - у меня их нет, не было, и не будет.

2. У меня нет выбранных интервалов - я считаю ПО ВСЕМ интервалам сразу. Минимальный интервал у меня 15 секунд, и недельные, скажем, свечи оттуда не получить никак, не говоря уже про "пару-тройку арифметических операций".

3. Многопоточность действительно "реализуется сравнительно просто" - я много раз это делал. А вот "каждый скрипт - это отдельный поток" - это кретинизм. У меня был, есть и будет ОДИН скрипт на все случаи жизни.

4. Я писал и буду писать только на Lua - токо вот питонов здесь не хватало!
Если хотите могу показать как  оттуда получить свечи и реализовать  "пару-тройку арифметических операций".
Для этого покажите код где вы работаете со свечами в 15 секунд.
----------------
Относительно других языков я написал Вам для примера.  
Не хотите изучать английский - говорите а Англии на русском. или по словарю. Это Ваши проблемы.
Спасение утопающих-дело рук самих утопающих.
Только непонятно, что Вы на форуме  сопли размазали .
Нехватка видеопамяти
 
не знал, что на форуме есть телепаты.
Пример торгового робота, Помощь с торговым роботом
 
Специально для чайников объясняю:
--------------------
1)  отличие LUA от языка для метатрейда (mql)  в том, что для луа есть не только подробная инструкция но и куча учебников .
----------------------
2) справка по qlua - это справочник библиотеки , а не описания языка. Как всякий справочник он предполагает, что Вы изучили язык программирования LUA и умеете писать на нем программ.
---------------------------
3) Создание роботов это вообще не про qLua или Lua, а про умение создавать алгоритмы конечных автоматов, которые автоматизируют некоторые рутинные действия
------------------------
4) Создание робота , который не сливает счет а даже приносит прибыль - это вообще не про то, что Выше, а про знание рынков и возможно ИИ.
------------------------------  
Поэтому для получения бабла с рынка изучайте все 4 указанных выше пункта и не ищите халяву.  
Средства разработки многопоточных скриптов в QUIK., OS_Quesha, свидетельство регистрации в Роспатенте № RU 2020612905. Бесплатная для некоммерческого использования.
 
Цитата
Владимир написал:
TGB, Да как же не жаловаться? Для меня в своё время было просто шоком узнать, что интерпретируемый код способен подвесить Квик! "Как системщик я должен понимать", что этого не может быть потому, что не может быть никогда! И мне противно писать свои "компенсаторы" на системные глюки. Я знаю некоторые места: например, при ручной торговле через скрипт Квик иногда подвисает, потому как я подаю заявку прямо из обработчика событий меню - всё никак руки не доходят перенести это дело в мейн. У меня на OnStop стыдно смотреть - у меня там и лог, и дамп состояния, и закрытие таблиц, и чёрта лысого только нет. А что делать? Я не знаю, и знать не хочу, почему в таблицах иногда пропадает текст - слава богу, научился лечить. Но это всё НЕ МОИ ПРОБЛЕМЫ, блин! Кроме того, есть вещи, которые я в принципе не могу сделать сам - не могу вот достучаться программно до своего портфеля. Техподдержка говорила, что таблица "клиентский портфель" недоступна вообще никак - во радость! Осталась надежда, что смогу прочитать хотя бы "позиции по инструментам", да и то слабая. А свечи? Это же уму непостижимо! Мне нужно порядка 20 тысяч свечей - и что делать? Ладно, "мелочь" я считаю сам, но более тяжёлые (от 15 минут и выше) хочу получать с сервера. И что, прикажете 7-8 тысяч графиков заказывать? На каждую сраную свечу свой график? Да здесь не то что "не обеспечена более-менее надежная среда разработки и исполнения скриптов" - здесь вообще ничего не обеспечено. Но торговать (с ужимками и прыжками) всё-таки можно - и на том спасибо!
Попробую дать несколько советов утопающим:
-------------------------
Если пишите робота в индикаторе, то Вы получаете примерно каждый тик вне зависимости от выбранного интервала
Поэтому можете сформировать свечи с любым интервалом затрачивая примерно один условный оператор и пару-тройку арифметических операций на каждый из интервалов  для получения текущей свечи
т е если Ваш индикатор работает на интервале 1 минута, то все остальные выше 1 минуты можете сформировать сами ничего дополнительно не заказывая.  
------------------------------
Если работаете в скриптах, то проблема решается аналогично. Заказывайте лишь младший интервал. остальные считаете с затратой два-три оператора на интервал на свечу.
-----------------------------
многопоточность реализуется сравнительно просто.
каждый скрипт - это отдельный поток.
делаете на каждый колбек свой скрипт и получаете много много потоков
В каждом колбеке сохраняете данные в мап файле и получаете доступ к данным этого скрипта  из других скриптов.
-----------------------
Таким способом можете строить своего робота на питоне либо Luajit.
Перерывы в торговых сессиях, реализация в скрипте
 
Цитата
ddonny написал:
Добрый день.

Собственно вопрос в теме.
Поскольку некоторые таблицы возвращают nil  в перерывах, есть ли оптимальные варианты не прерывать работу скрипта, но без sleep?
Насколько sleep актуален и безопасен, если к примеру просто вычислять время в системе и за минуту до перерыва просто засыпать?

Может быть у кого-то иначе реализован этот момент, при условии "не делать ничего руками" - просто автоматизация.
Использую  системные объекты   Event  и функцию waiteEvent для ожидания вызова колбека  терминалом квика.
В перерывах  сообщений нет, поэтому  и колбеки не освобождают Event, а  скрипт находится в состоянии останова до появления события.
Халявы нет.
Нехватка видеопамяти
 
Цитата
s_mike@rambler.ru написал:
Цитата
Roman Azarov написал:
   s_mike@rambler.ru, здравствуйте!

К сожалению, при переходе по предоставленной ссылке получаем сообщение от сервера об отсутствии доступа к директории.
Просьба предоставить корректную ссылку или уточнить, что имеется в виду под "активной" работой с метками.
О каком количестве меток идет речь?
Странно.

нажал на ссылку с тексте сообщения - страница замечательно открылась. Да и скачивания с этой страницы идут каждый день, счетчик растет, значит, со страницей проблем нет.


Это скрипт, который выводит профиль рынка.

он выводит много меток на график. За предыдущие дни (за каждый день) он выводит 50-100 меток (addlabel) и оставляет их в покое. Текущий день обрабатывается путем начального вывода тей же сотни меток и их перестановок при помощи replacelabel

При этом количество выставленных меток в течение дня (практически) не увеличивается, а количество свободной видеопамяти уменьшается.

Тест, который продемонстрирует проблему, может выглядеть так:

выставляем 100 меток посредством createlabel и потом раз в секунду заменяем первую на вторую, вторую на третью и так по кругу. Наблюдаем и удивляемся.


----

дополнительно, не относящееся к теме ремарка. Очень жаль, что bmp метки терминал может взять только из файла, и нет возможности передать картинку напрямую по памяти, минуя диск. львиная часть затрат мощности при активной работе с метками идет на бесполезную последовательность конверирование растра в бмп формат -> запись файла -> чтение файла -> раскодировка файла в растр.

Понятно, что не сделаете, но я все же "зарегистрируйте, пообещайте".  Булычев в свое время думал об этом, но не надумал, как выясняется.
ну и зачем эта перепалка с разработчиками?
----------------------------------------------------------
спасение утопающих - дело рук самих утопающих.
Прочесть таблицу новости через LUA
 
Цитата
Владимир написал:
   s_mike@rambler.ru,  Лапуль, про ассемблер я не только слышал, но и писал аж на ТРЁХ ассемблерах (БЭСМ, PDP и Intel). И на Васике тоже доводилось писать. Для справки: тип integer в любом ассемблере был, есть и будет ВСЕГДА! Это как раз наоборот, типа float нам когда-то не было - он появился позже, [тогда ещё] отдельным сопроцессором и со своей системой команд. Вот sql действительно не использовал никогда - я чуть не всю свою сознательную жизнь занимался сложными базами данных, и моя давняя фраза на эту тему звучит так: "Базы данных могут быть либо сложными либо реляционными, но не тем и другим одновременно". И тыщу раз говорил, что за "слабую типитзацию" руки-ноги бы повыдёргивал тем умникам, которые выродили эту бредятину.

Nikolay, ЧАВО?! Во-первых, В МОИХ базах данных, как правило, ОДНА таблица (неоднородных кортежей).  :: Во-вторых, какое отношение имеет открытие таблицы к визуализации? ТТТ - это ХРАНЕНИЕ данных в терминале, а никакая не "визуализация". И доступ к ней как раз "ракообразный", через getParamEx, а не getItem, скажем. Разумного объяснения сему факту лично я найти не могу. Привязка же доступа к графикам - это КРЕТИНИЗМ! АДНАЗНАЧНА!
добавлю свою ложку...
тип float в ассемблере существует всегда и он не зависит от наличия сопроцессора.
Типы вводятся в язык по причине необходимости работать с ними.
float - это способ хранить числа в большем диапазоне значений
с экономией памяти, но с допустимой погрешностью.
альтернативой был двоично-десятичный тип  - позволявший точно хранить финансовые данные.
---------------
Но в языках нет понятия "бредятина"
----------------------------------------------------
Если что-то не понятно, то зеркало не виновато.
Отладка QUIK 8.13
 
Цитата
Владимир написал:
Что вы фигнёй маетесь, господа? Я вот тоже "разработал свою систему создания торговых роботов в QUIK", хотя появился здесь (и написал свою первую строчку на Lua) в сентябре прошлого года. Скрипт свой я уже и не помню, когда правил в последний раз. В ём сейчас 16 функций, включая main и прочие OnStop, объём кода менее 20 кило, и на все "версии компилятора, ключи компиляции и режимы линковки" мне давно пилювать с высокой колокольни. Кажется, при запуске скрипта Квик чо-то там компилирует - ну и пусть себе компилирует, а я скармливаю ему чистейший Lua как интерпретатору. Всё прекрасно работает! Сейчас я пишу совсем уж сумасшедший скрипт, уже не с трёхмерными, а с четырёхмерными массивами, с разветвлённым диалогом, и я уже совершенно точно знаю, что и он будет прекрасно работать - я просто не вижу, откуда могут появиться проблемы. Вернее, я пока пишу описание, то бишь набросок ТЗ, и пишу уже не первую неделю - задача АЛГОРИТМИЧЕСКИ сложная, а вот ТЕХНИЧЕСКИЕ вопросы решены уже сейчас. Ну, может, вылезет количество функций и/или объём кода за тридцатник - и чего? А может даже и не вылезет. Нафига вам это надо - не понимаю...

Нет, соврал - парочка нерешённых технических проблем ещё осталась:

1. Мне хотелось бы получать с сервера свечи (от 15-минутных и выше), при этом меня интересуют только последние две свечи по каждому таймфрейму, можно даже без коллбеков - только доступ к этим данным.

2. Я не умею программно прочесть состояние своего портфеля (та табличка, которая зелёненьким цвет текста выводит). Портфель я, ессно, веду у себя, но время от времени случаются сбои и рассогласование содержимого портфеля с точки зрения брокера и самого скрипта. Примерно раз в неделю я это дело проверяю (вручную) и убираю нестыковки. А хотелось бы делать это программно, примерно раз в полчаса. Никто не знает, как это сделать?
"- Всё хорошо, прекрасная маркиза,
Дела идут и жизнь легка.
Ни одного печального сюрприза
За исключением пустяка.
Так, ерунда, пустое дело --
Кобыла ваша околела.
А в остальном, прекрасная маркиза,
Всё хорошо, всё хорошо."
Оптимизация использования памяти QUIK, Оптимизация использования памяти QUIK при работе с Таблицей обезличенных сделок
 
Кроме того, циклы используют даже программы индикаторов разработчиков, что является крайне расточительным и не профессиональным решением для программ реального времени.
Учитесь обходится без циклов в прогах реального времени и будет Вам счастье.
---------------
Применение векторов на C в скриптах на луа сократит требуемый объем памяти и повысит быстродействие в десять и более раз.
Оптимизация использования памяти QUIK, Оптимизация использования памяти QUIK при работе с Таблицей обезличенных сделок
 
Цитата
Albert Eritsyan написал:
Цитата
swerg написал:
 
Цитата
Albert Eritsyan  написал:
Данная опция обеспечит возможность расположения этих файлов на HDD, в то время как программа сама будет находиться на SSD (чтобы не затирать SSD временными большими файлами).
 
Странное желание.
Основное время запуска QUIK (а только это время волнует пользователя) занимает как раз чтение файлов с накопленными данными.
Если у вас нет места на SSD - просто перенесите весь QUIK на HDD. Ну если вы готовы мириться с упавшей от этого скоростью запуска терминала.
Реально, куда больше времени уходит после чтения данных с дисков на синхронизацию и начало получение данных с сервера, вот тут-то info.log может разрастись до гигантских размеров. Пользователей же волнует суммарное время, а не время чтения с диска, так как им нужно синхронизированное поступление данных с сервера, последнее при переподключении терминала и превалирует над временем чтения с диска.
Но, воля Ваша, оценивайте как "странное" желание.
Для хранения данных в КВИК используется проецируемые в память файлы т е данные хранятся на диске, а в рам отображаются лишь нужные страницы файлов.
При работе в реальном времени информация с сохраненных файлов используется лишь на несколько процентов, так как история данных в реальных сделках не используется.
Поэтому на скорость торговли размер сохраненных файлов не влияет.
На скорость влияют те циклы, которыми как правило заполнены самопальные программы торговли.
api c
 
Добрый день,
проблема следующая.
------------------
Использую  в торговых роботах нейронные сети.
-----------------------
Если нейронные сети встраивать на основе QLUA , то  все работает медленно и кушает много памяти.
Поэтому полноценный процесс обучения практически не реализуем.
-------------------------------------
Реализовал векторную алгебру в виде библиотеки на CИ для QLUA.
Скорость вычислений возрастает в 7-20 раз, а затраты памяти сокращаются во столько же.
Процесс обучения реализуем.
------------------------------------------------
Но очень раздражает необходимость делать бессмысленную работу перегоняя данные туда и обратно а потом обратно и туда.
Сначала функциями QLUA  приходится вытаскивать из архива квика данные , преобразовывая их в формат луа,
а потом функциями из своей библиотеки обратно их преобразовывать из формата луа в формат CИ
---------------------------------
Просьба к разработчикам выложить API С для обращения к хранилищу данных терминала QUIK.
-----------------
Спасибо
Брокер Сбербанк. Проблема с QUIK
 
Вопрос к разработчикам.
что делать?
--------------------------------------
брокер Сбербанк
QUIK версия 8.7.1.3 (для предыдущей было тоже самое)
Сейчас - утренняя сессия изменяются данные лишь в стакане
Графики и таблица позиций не обновляется.
Не отображаются новые сделки.
На графиках лишь вчерашний день.
Так часто бывает и в начала вечерней сессии.
Заявка по минимуму последней свечи
 
if DS==nil then  DS,Error = CreateDataSource(CLASS_CODE, SEC_CODE, INTERVAL); end
Программисты на LUA, Требуются LUA программисты
 
Цитата
Владимир написал:
TGB, Я не знаю, что там за "метрики берутся за основу" - я работаю только с текущими курсами (ну или там с минутными свечами, в которых меня интересует только цена закрытия), и мне абсолютно по барабану, чем именно вызваны движения курса: поведением толпы, инсайдерской информацией, вбросами в СМИ или ещё чем. Мой алгоритм работает на исторических данных точно так же, как и на реальных. И работает (тьфу-тьфу!) хорошо!
если не секрет,
то покажите картинку работы на реальном рынке
и картинку работы на этом же участке на исторических данных.
---------------  
Т е один и тот же участок на котором Вы реально торговали
и после этого в тесте прогнали свой алгоритм.
---------------
Спорю, что сделки будут разные.
одинаковыми они будут лишь у бога или дьявола, полагаю вы не из их числа.
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
 
тот факт что закрытие свечи происходит задним числом приводит к тому,
что все роботы совершающие сделки на истории на закрытии свечи ВСЕГДА более прибыльные (иногда очень прибыльные),
чем в реальном времени .
На этом основан лохотрон по торговле в интернете такими роботами.
Как определить последнюю свечу в индикаторе?, Как определить последнюю свечу в индикаторе?
 
Цитата
swerg написал:
Цитата
s_mike@rambler.ru написал:
Свеча является закрытой тогда, когда появилась новая.
А не бывает такого, что приходит значение по предыдущей свече после прихода значений по новой?
бывает:
1)  если это значение не было загружено ранее.
2) если это свеча индикатора,
то так будет всегда для всех индикаторов, которые "заглядывают в будущее" - таких как fractal, ZigZag, и т д
---------------------  
Сама свеча цены - это тоже индикатор заглядывающий в будущее, поэтому закрытие свечи происходит лишь по истечению времени интервала, а не по времени последней сделки.
-------------
В скрипте индикатора  закрытие свечи определяется условием неравенства текущего индекса onCalculate  предыдущему.
Помощь в написании скрипта отправки данных по сделкам из QUIK к нам на сайт, выгрузка данных
 
Цитата
swerg написал:
Мне лень читать в ВТБ, а в Финам попалось быстро
http://zaoik.finam.ru/broker/regulations
Берем документ "23.11.20 актуально с 26.11.20.pdf"
 http://zaoik.finam.ru/Files/documents/disclosure/finam/broker/regulations/2010_­ ­%D0%A0%D0%B5%D0%B3%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D1%82%20%D­0 ­%B1%D1%80%D0%BE%D0%BA%D0%B5%D1%80%D1%81%D0%BA%D0%BE%D0%B3%D­0 ­%BE%20%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B­0 ­%D0%BD%D0%B8%D1%8F%2023.11.20%20%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%­ ­20%D1%81%2026.11.20.pdf  

см. пункт 22.2, особенно второй абзац пункта 22.2.2.
автор темы указал, что надо транслировать сделки клиента.
--------------------
В п 22.2  речь идет о биржевой информации, которая определена в п 22.2.1 так:
представляющая собой цифровые данные и иные сведения неконфиденциального
характера о ходе и итогах торгов на различных рынках организатора торговли, а также иная информация,
определяемая правилами проведения торгов на соответствующем рынке, правом на использование которых
обладает организатор торговли.
---------------------
Полагаю, что сделки конкретного клиента имеют конфиденциальный характер и не транслируются брокерам все его клиентам,
а правом на использование этой информации обладает клиент,
так как сделки выполнены за его счет и в его интересах.
Получение значения индикатора не открывая данных графика
 
Цитата
s_mike@rambler.ru написал:
Цитата
Максим написал:
Здравствуйте, подскажите, есть ли возможность получение значений индикатора МАСД не открывая сам график и не рассчитывая самому в скрипте. Постановка задачи: Пройтись по таблице текущие торги и отобрать акции с определенным значением МАСД.
вот этот скрипт умеет что то похожее

http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/market-scaner.html
чушь. Лишь бы пропиариться.
Привязка скрипта на lua к конкретному компьютеру, Ограничение возможности запуска скрипта
 
решал эту задачу иначе - шифровал dll c функциями.
ключ формировался из кода dll.
При запуске dll проверял кто и для чего ее вызывает.
Сколько стаканов можно заказать?, Вопрос в техподдержку.
 
Успех игры на бирже  не в количестве стаканов, а в количестве выпитого из них.
Программисты на LUA, Требуются LUA программисты
 
Цитата
Виктор написал:
Ищу программиста.
Вот по этому ТЗ мне сейчас пишут советника на форекс.Хочу такой же для фьючерсов и фондового рынка на LUA

Стратегия в общих чертах - на основе стандартного индикатора : ZigZag и ЗигЗаг поинтер (стрелочный). Два варианта торговли вариант № 1 без мартина в т.ч. с отработкой паттернов, вариант №2 с мартином.

Торговый сигнал на покупку: Индикаторы ZigZag и ЗигЗаг поинтер (стрелочный) должны обозначить минимум. Нужно подождать, пока отрисуется один,  два или более свечей справа от минимума (настраиваемый параметр), на одном уровне + -, таким образом, с высокой вероятностью должен подтвердиться разворот. Входим в рынок на покупку рыночным или отложенным ордером (настраиваемый параметр), после чего устанавливается стоплосс (в варианте без мартина)  )на уровне 5-10 пунктов ниже минимума индикатора (настраиваемый параметр).  Сделка будет закрываться,  когда индикатор установит максимум. Это один вариант, второй описан ниже пункт 12. Как советник отрабатывает отложенные ордера см. пункт 13
  Торговый сигнал на продажу: Индикаторы ZigZag и ЗигЗаг поинтер (стрелочный) должны обозначить максимум. Затем выжидаем один, два бара или  более баров (настраиваемый параметр) на одном уровне + -, входим на продажу. Стоплосс также устанавливаем на расстоянии 5-10 пунктов выше максимума (настраиваемый параметр). Позицию держим до тех пор, пока индикатор не установит минимум. Как советник отрабатывает отложенные ордера см. пункт 13

Важно – советник должен входить в рынок (рыночным или отложенным ордером) как только закрепился уровень ниже/ выше которого цена не идет.
Закрепление уровня, который рынок не может пробить и происходит разворот цены – это основа стратегии.
В советнике  ввожу понятие «коридор» и если рынок не может пробить ниже/выше данный коридор и цена разворачивается – входим в позицию - отложкой или рыночным.  Задача максимально точно определять точки разворота. Один из вариантов – пока справа не отрисуется  энное количество свечных свечей  примерно на этом же уровне +/-.
Пример коридора - индикаторы отрисовали минимум,  2 свеча откатилась условно на 50 пипсов,  2, 3 примерно на этом же уровне, 4 вернулась на уровень коридора, где отрисовался минимум +/- и не может его пробить - входим рынок рыночным или посмотрю может будет более безопаснее входить лимитным ордером, вдруг цена откатится еще ниже. Если цена откатилась и индикаторы перерисовались этот лимитный ордер удаляется.  Ждем пока благоприятной рыночной ситуации. Как советник отрабатывает отложенные ордера см. пункт 13.
Диапазон коридора, в котором ходит цена настраиваемый параметр.
Условно в настройках стоит 3-5 свечей,   после отрисовки индикатором минимума/максимума и рынок ушел выше/ ниже коридора т.е. в рынок не вошли, Но рынок вернулся на 8-10,10 свече в этот коридор,  в этот уровень,  может чуть выше/ниже  и не пробил его на следующей свече условно это будет 9, 11 свеча входим рынок лимиткой  на пробой или рыночным ордером. См. 13 пункт как выставляется отложка.
А)Важно. Закрытие по ордера по обратному сигналу зигзага. Ордер не должен закрываться моментально.  Возможно рынок пойдет дальше и можно будет взять максимальный профит. Как только происходит закрепление уровня и вот вот будет разворот только тогда происходит закрытие рыночного ордера.
Надеюсь стратегию правильно описал и Вам все понятно.
Настройки.
1.BUY         = true;  //разрешить торговать
2.SELL        = true;  //разрешить торговать
3.LOT          = 0.01;
4.Количество свечей для открытия ордера.
4.1. Уровень  если условно 4 свеча выше (ниже)  на +- 35 пипсов (задается в настройках) уровня  минимума (максимума) то вход в рынок не происходит. Вход в рынок исключительно в рамках определенных уровней. Если это минимум то не более условно +35 пипсов. Если максимум – 35 пипсов.

5. Тейк профит
6. Стоп лосс.
7.Советник отображает индикатор Зиг Заг поинтер  и ЗигЗаг на графике. Настройки  Зиг Заг поинтер и стандартного индикатор Зиг Заг (буду подбирать оптимальные, ниже стандартные)
Zigzag_Depth       = 12;
Zigzag_Deviation   = 5;
Zigzag_Backstep    = 3;
8.Время начала работы (запуска) по времени терминала
9.Время окончания работы по времени терминала
10.Таймфрем на котором будет работать советник.
11.Выбор как торговать:
11.1.Торговать по индикатору ЗИГ ЗАГ поинтер (true, false)
11.2.Торговать по стандартному индикатору ЗИГ ЗАГ(true, false)
11.3.Использовать оба индикатора – сигнал поинтера должен подтверждается стандартным индикатором и наоборот  (true, false)

12.Выше описан вариант, как  ведется открытый рыночный ордер пока индикаторы не обновят минимум или максимум и ордер закрывается (true). Возможность отключить, прописав false и закрывать ордер по тралу. Включить трал   - true
Настройки трала  а) сам трал (15, 20, 30 и т.д. пипсов) б) шаг трала (1,2, 5 пипсов) Если включен трал, как описано выше стоп переносится в безубыток и тралится согласно настройкам.
Буду пробовать пипсовать на минутном таймфрейме. Поэтому лимитные ордера, трал все должно работать четко.
Еще один вариант с виртуальным ТР по достижении которого если цена пошла дальше без отката включается трал с настройками и ордер тралится чтобы ловить импульсные движения на рынке.

13.Выставлять  отложенный ордер (true. false)
13.1. Для большей безопасности скорее всего буду работать отложками, но это не означает, что рыночные ордера не должны выставляться, буду все пробовать, все варианты. В случае отложенного лимитного ордера выставляется отступ от, например, 5 свечи (условно 5,10,15-50 пипсов, настраиваемый параметр. Еще раз - важный момент отсчет расстояния отложки идет от закрытия условно 3, 4, 5 свечи, тела или хвостика.  

14. В случае если рыночная ситуация сложилась так,  что советник 3 раза подряд поймал стопока (настраиваемый параметр), советник отключается и запускается на следующий день во время начала работы.

15. Выбрать выше описанный вариант торговли советника. Вариант №1 (true, false)

16. Выбрать вариант торговли с усредняющей сеткой. Вариант № 2 (true, false).
17. Вариант №2 - советник строит усредняющую сетку ордеров. Открылся рыночный ордер, но рынок не развернулся т.е. все что не сработало выше.
В этом случае настройки:
Шаг сетки
Тейкпрофит
Максимальное количество колен.
Условно прописывается 5 колен. Если советник открыл 5 колено т.е. последнее, в условиях прописанных выше, советник  - выше (ниже) выставляет стоплосс.
Стоп лосс (условно 200 пипсов)
коэффициент умножения.
Дополнительные Ограничения от слива депозита при мартине настройки вариант № 2:
-  закрыть сетку по ограничению в просадке в валюте депозита
- ограничение по времени до принудительного закрытия сетки по лимиту времени.
- ограничение по % просадки

18.Максимальный размер спреда при котором советник не работает, условно прописывается 15 пипсов. Если спред равен или выше советник не работает однозначно.
19. Мейжик ордеров.
20. Информ панель. Вывод текстовой информации в левом верхнем углу графика. Информ панель можно свернуть. Развернуть.
а) профит (убыток) по текущему рыночному ордеру. Сделать это в рамочке чтобы это было красиво
б)профит (убыток) сегодня в валюте депозита и процент прибыли.
в) профит (убыток) за неделю в валюте депозита и процент прибыли
г) профит (убыток) месяц в валюте депозита и процент прибыли
д) Всего профит (убыток) в валюте депозита и процент прибыли
с) Текущий спред.
- текущая просадка (прибыль)  в валюте депозита  по открытым позициям и сколько осталось до принудительного закрытия по лимиту просадки в деньгах.
- показывать время «жизни» ордера (сетки ордеров) в часах и минутах и количество время оставшегося до принудительного закрытия по лимиту времени.
- % просадки по текущей сетке и сколько осталось до принудительного закрытия по ограничению в просадке.
- количество открытых рыночных ордеров
- объем всех рыночных ордеров составляет условно
- общий своп по текущей сетке ордеров в валюте депозита

Размер и цвет шрифта настраиваемый. Информационное окно сделать на фоне. Цвет фона настраивается
Ниже информационного окна кнопка закрыть ордера. Закрываются ордера по текущей валютой паре.
                                                    Работа советника по паттернам
1.Вход в рынок по паттерну 123.
Зиг заг показал минимум-максимум. В случае если рынок вышел из коридора, на 2, 3 свече ( в настройках 5) но частично вернулся на условно на 8-10 свече  не войдя в коридор образовав паттерн 123,  в точке два советник выставляет отложку.
Настройки
 Включить отработку паттерна 123 (true. False)
 Расстояние от точки два до отложки.
 Закрытие по обратному сигналу индикатора Зигзаг т.е. как и при входе в «коридоре». См. пункт А) как должен закрываться рыночный ордер по обратному сигналу зиг-зага.
 Стоплосс.
 Показать на графике  визуально, что советник отработал паттерн 123. Графическими фигурами это должно быть отмечено в терминале на графике. Отправить сообщение на эл. Почту (телеграмм), что советник по такой-то валютой паре отработал паттерн 123. Взял в профит энное количество пипсов и заработал условно 50 центов.
 
2.Вход в рынок  по паттерну двойная (тройная) вершина, двойное(тройное) дно.
Зиг заг показал минимум-максимум. В случае если рынок образовал паттерн двойная (тройная) вершина двойное(тройное) дно в точке два советник выставляет отложку. Как советник выставляет отложку см. пункт 13,1
Настройки
 Включить отработку паттерна дно и вершина (true. False)
 Расстояние от точки два до отложки.
 Закрытие по обратному сигналу индикатора Зигзаг т.е. как и при входе в «коридоре». См. пункт А) как должен закрываться рыночный ордер по обратному сигналу зиг-зага.
 Стоп лосс.
 Показать на графике  визуально, что советник отработал паттерн дно, вершина. Графическими фигурами это должно быть отмечено в терминале на графике. Отправить сообщение на эл. Почту (телеграмм), что советник по такой-то валютой паре отработал паттерн дно, вершина. Взял в профит энное количество пипсов и заработал условно 50 центов.
 Как советник будет отрабатывать паттерн 123 напишите.


 Е-ДРОБа
 Советник в советнике. Пробитие верхних и нижних экстремумов отложенными ордерами. Как только зиг заг отрисовал минимум от предыдущего максимума советник выставляет отложку на пробитие максимума. Как только зиг заг отрисовал максимум от предыдущего минимума советник выставляет  отложку а пробититие минимума. Код есть - советник e-Droba-ZigZag работает отложенниками на пробой экстремумов по тренду, есть и трал, и перевод в безубыток.
Настройки:
1.Включить е-дроба(true. False)
Если включен настройки
1.2.Стоп лоcc
1.3. Тейк. Если тейкпрофит (true).
1.4. Если  тейк – False,  то ордер тралится Трал.  
Настройки трала - сам трал в пипсах и шаг трала.
1.5. Лот фиксированный. Для е-дроба должен быть отдельный лотаж.
Настройки индикатора зигзаг такие же как в основе.
1.6. Расстояние от максимума/ минимума где советник выставляет отложку.
1.7. Показать на графике  визуально, что советник отработал графическими фигурами это должно быть отмечено в терминале на графике. Отправить сообщение на эл. Почту (телеграмм), что советник по такой-то валютой паре отработал паттерн дно, вершина. Взял в профит энное количество пипсов и заработал условно 50 центов.


4.Скорость движения рынка.
Советник определяет скорость движения рынка – зиг-заг отрисивал минимум/максимум и на следующей условно на 15 минутной свече рынок прошагал 100 пипсов и более
т.е. высокая скорость движения рынка. Выше/ниже условно 15 минутной свечи советник выставляет отложку.
Настройки
 Включить отработку высокой скорости движения рынка (true. False)
 Выставлять отложенный ордер на определенном таймфрейме в случае если рынок прошагал энное количество пипсов.
 Количество пипсов от свечи, или хвоста свечи до отложки.
 Таймфрейм на котором советник определяет скорость
 Количество пипсов  которое пройдет рынок на определенном таймфрейме.
 Фиксированный лот
 Стоп лосс.
 Для чего это нужно – зиг-заг  отрисовал минимум/максимум  рынок резко развернулся и на второй свече полетел вверх/вниз. Закрытие происходит по обратному сигналу индикаторов ЗИГ ЗАГ
Ловить в т.ч. резкие развороты и движения рынка.


21. Дополнительные фильтры. Мои варианты. Предложите свои
А) Прикрутить индикатор ???

22. Количество попыток открытия ордеров.
Задача - свести убыточные входы к нолю.

  Предложите дополнительные фильтры, которые будут отсекать ложные входы  и меньше ловить стопаков. И по максимуму брать профитное движение.

Условие -  код сделать блоками  и каждый блок закомментировать.
Условно этот код индикатор зиг заг
Это индикатор параболик.
Это индикатор булс.
Это трал и т.д.
Да и хороший программист всегда даже для себя комментирует код. Тогда все ясно и понятно где и что.
Все  настройки советника вынести в «шапку».
Советник передается с открытым кодом.
Условие после передачи 10 торговых сессий на тестирование. Если что-то  нужно дорабатывать или обнаружены ошибки, баги  и или советник работает не так как описано в стратегии срок тестирования продлевается – советник дорабатывается. После тщательно тестирования -  все Ок - оплата.
Условие, 6 месяцев гарантии на программный продукт. Если обнаружится ошибка,  нужно будет поправить по гарантии.

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


--
тел. +79148601234 (ватсап)
+79004069177 (ватсап)  
Немного огорчу Вас.
ZigZag , а также  fractal в Квике - это индикаторы, которые заглядывают в будущее.
Такие индикаторы прибыльно торгуют лишь на истории,
и их успехи очевидны лишь на исторических графиках.
--------------------
Реально торгующий на этих индикаторах робот будет просто убыточным.
-------------------------------------
Блажен, кто верует..
 
Обсудим диалог на Lua?
 
рекомендую для общего понимания.
https://www.ibm.com/developerworks/ru/library/l-embed-lua/

Вы можете сделать все, что придумаете с помощью API C для LUA,
так как создание интерфейсов требует хорошего уровня программирования.

Увы, обычно уровень  хотелок у буратин обратен их уровню умения их реализовать.

 
Изменения в работе с колбеками LUA в новой версии
 
Цитата
swerg написал:
Ладно, хрен с ним с этим троллем.
Я на самом деле никак не могу получить ответ на свой вопрос, который давно меня заботит.
Ну вот как это сделано в метатрейдере, в других терминалах? нигде ж нет никакого main(). Есть по сути просто скрипт с колбеками (да? я не ошибаюсь?)
И вот когда в этих системах прекращается вызов этих колбеков?? я никак не могу этот момент найти, или ищу плохо.
Или там после запуска скрипта вызов из него колбеков никогда не прекращается?
Расскажите, а
Вообще-то, решение в виде бесконечного цикла ,
которое обеспечивает работу системы известно давно и широко используется, например в ОС микроконтроллеров (arduino).

Такое решение типично для одноядерных SOC.

Полагаю что проблема КВИКа в том,
что VM LUA встраивалась в уже готовую систему,
вместо того, чтобы дать пользователям нормальный API к функциям торгового терминала.

Кроме того, как неоднократно подчеркивали сами разработчики, они встраивали луа не для разработки торговых роботов , а для буратин и хрен знает зачем.


 
Программисты на LUA, Требуются LUA программисты
 
Ну кто Вам этого урода слепил, к тому и обращайтесь.
Кому интересно в чужом г...не ковыряться .
И сейчас угадаю.Типа -надо делать очевидно очень простые правки (как правило за символическую плату)
Изменения в работе с колбеками LUA в новой версии
 
Цитата
Владимир написал:
Anton,  
Цитата
Какая может быть вытесняющая модель без потоков, шедулера (планировщика потоков), синхронизации?
Обыкновенная. Все скрипты есть просто куски текста, так что никаких потоков там нет и быть не может. Дойдут руки у интерпретатора - выполнит команду, нет - так и будут лежать голым текстом.

Да ничего я не придумывал"! Синонимы команд - обычный сервис: кому-то удобнее begin-end, кому-то {} - почему бы не дать такую возможность? А уж в именах объектов и их атрибутов синонимов и вообще может быть выше крыши (я имею в виду базы данных).
Не знаю, что за книгу вы написали и здесь пиарите, но в языках и виртуальных машинах вы ноль без палочки
------------------
Где Вы увидели интерпретатор в реализации луа в квике?
Это VM а не интерпретатор
и там не куски текста а байт код - т е это машинный язык именно VMLua.
------------------------
Пардон, что то я сильно бисер разметал...
Изменения в работе с колбеками LUA в новой версии
 
либо проще
обслуживание колбеков пулом потоков без разделение на виды.
Изменения в работе с колбеками LUA в новой версии
 
добавлю свои пять копеек.
---------------------------
сделал бы для каждого вида колбека отдельный пул потоков.
Открытие файла и память
 
Цитата
s_mike@rambler.ru написал:
Цитата
Старатель написал:
Что интересно, если переменную удалить сразу после использования, то скрипт станет занимать больше памяти.
 
Код
      local   a   =     0  
 print (collectgarbage(  "count"  ))    --> 23.4453125      
 
 
Код
      local   a   =     0  
a   =     nil  
 print (collectgarbage(  "count"  ))    --> 23.453125      
 
рaзница в 8 байт. Как раз длина строчки a = nil )
a=nil - не удаляет переменную, а присваивает ей значение nil
а скрипт естественно длиннее на строку a=nil.
------------------------------------
Чудес не бывает, бывает лишь отсутствие знаний.
Предложение к разработчикам
 
Цитата
Владимир написал:
В своём коде я "обвистовал" все присвоения tostring или tonumber - пока работает (а мне, собственно, осталось только отладить подачу заявок и контроль их исполнения, да обработку событий от юзера), но замечания к реализации остались. На код глядеть местами тошно, но это мелочи. Однако, есть и довольно важные замечания. Попробую их изложить по группам:

I. Настоятельно рекомендуемые к исправлению:

1. У меня  все до единого  обращения к функциям другого потока (SetCell, SetColor и прочие) выполняются только после контроля флага останова. Тем не менее, даже после этого мне доводилось пару раз так "удачно" нажать на кнопку "остановить", что управление в main больше не возвращалось, скрипт завершался принудительно, и вместо записанного файла результатов работы скрипта я получал шиш с маслом. Здесь уже высказывалось мнение, что это "на 100% зона ответственности QUIK, и я с ним согласен. Я отслеживаю эту ситуацию по наличию или отсутствия финального message("Скрипт остановлен!") и по нулевому размеру файла результатов, но это же ненормально! Как и бесконечные "if f then ... end".

2. Как и первое предложение, это высказывалось уже давно, и не исправляется ГОДАМИ! Как и в первом случае, я не понимаю (и не хочу понимать!) почему "для того, чтобы строки отображались, необходимо, чтобы вызов CreateWindow() производился ДО процедуры добавления строк в таблицу". Здесь участники дискуссии, на мой взгляд, очень убедительно показывали, что такого быть не должно, но хотя бы внесите в описание языка эту "особенность"! Ведь многие (особенно новички) даже не подозревают о таких "нюансах" и тратят многие часы на отладку того, что в принципе не может быть отлажено.

3. Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!

II. Очень хотелось бы, но это уже скорее ненаучная фантастика:

1. Определение типов данных программистом, типа STRING s, NUMBER n, BOOLEAN b, и чтобы интерпретатор не имел права менять указанный тип данных  ни при каких обстоятельствах  (вылетал бы с ошибкой). Хотя бы как дополнение к существующей "динамической типизации" (а лучше как полная её замена).

2. Вернуть "украденный" целочисленный тип данных (INTEGER i) и операции булевой алгебры для работы с ними (and, or, not или, в сишном синтаксисе, &, |, ^, >>= и т.д).

3. Отделить ключи от индексов. Точнее, ввести индексы в их классическом понимании как порядковый номер элемента в массиве (автоматически получая возможность задавать именно массивы, а не "таблицы Lua"), а также структуры данных (и, соответственно, возможность определять таблицы как массивы структур или, в реляционной терминологии, как массивы кортежей). Это, к тому же, заставит нумеровать массивы либо с нуля, либо с единицы, а не как Бог на душу положит. Для меня в своё время стало открытием, что определив таблицу как T={} я спокойно заполняю её данными, начиная с нулевого индекса, а если начинаю инициализировать вроде:
Q = { 0x999999, 0xFFFFFF, 0x99FFFF, 0x99FF99 };
то для обращения к первому элементу требуется указать именно 1, а не 0.

III. Синтаксис

1. В циклах имеется break, а вот continue почему-то нет (про goto я просто молчу).

2. Неплохо бы вообще приблизить синтаксис к совершенно гениальному языку C (фигурные скобки вместо "паскалевских" begin-end - тем более, что никакого begin как начало блока здесь вообще нет), возможность определять константы (#define), возможность условной трансляции/исполнения (#if) - тогда языку просто цены не будет!  ::  
Вы не к тем разработчика обращаетесь.
Ваши хотелки  || и III.
Это претензии к разработчикам языка луа, а это -  в Бразилию.
----------------  
Но самое прикольное,
что и луа и VMLua
и даже терминал QUIK
- это все Вам бесплатно
- т е халява.
А дареному коню в зад, то бишь  зубы,  не смотрят. (Народная мудрость)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.
Наверх