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

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

Страницы: Пред. 1 ... 39 40 41 42 43 44 45 46 47 48 49 ... 72 След.
Нехватка видеопамяти
 
Цитата
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
- это все Вам бесплатно
- т е халява.
А дареному коню в зад, то бишь  зубы,  не смотрят. (Народная мудрость)
перестало работать снятие активной заявки
 
Цитата
Владимир написал:
Sergey Gorokhov,Да я всегда спокоен - это просто стиль такой.  ::

В 64-разрядный integer спокойно влезают даже 20-значные числа - более 18 квинтиллионов!
Для справки  :
Разрядность мантиссы в 64 битном вещественном числе составляет 52 бита,
что  позволяет точно отобразить лишь 16 разрядное десятичное целое число .
а не  18 квинтиллионов, как наивно полагает Владимир.
Более быстрый способ, all_trades
 
методы создания торговых роботов, принципиально отличаются от написания программ по понятиям, которые гоняют туда сюда кучу данных.
вот некоторые из аксиом, которые надо усвоить и научится программировать.
-----------------
1) В текущий момент времени робот должен тратить ресурсы лишь на обработку новой информации
2) Если робот не успевает обработать информацию до прихода новой, то информация лишняя и обрабатывать ее не имеет смысла.
3) Применение циклов в системах реального времени - это зло, которое надо избегать.
----------------
Поэтому в конкретный момент времени надо обрабатывать лишь новые сделки.
===============  
Если надо очень быстро то используйте API C for LUA.
будет быстрее чем шарп, а для  уровня решения задач посетителей данного форума еще и проще в понимании.
А уж Буратинам надо писать исключительно на луа.
Более быстрый способ, all_trades
 
Цитата
Костя написал:
Цитата
nikolz написал:
Все смешалось - кони,люди

Зачем нагородили кашу из луа и шарпа?

Все делается без шарпов на луа без проблем.
--------------------------------------------------------------------------------------
Мы не ищем легких путей.  
Создадим себе трудности, чтобы потом искать того, кто их преодолеет для нас..
В ОБЩЕМ проблема не решена

Квиж жутко тормозит  и набиваем массив
Освойте сначала луа а потом пишите на шарпе
нет желания разбираться с вашей кашей.
из строки в числовое значение
 
x='0.08'
print(x..","..type(x))
z=tonumber(x)
print(z..","..type(z))
---------
результат:
0.08,string
0.08,number
Более быстрый способ, all_trades
 
Все смешалось - кони,люди

Зачем нагородили кашу из луа и шарпа?

Все делается без шарпов на луа без проблем.
--------------------------------------------------------------------------------------
Мы не ищем легких путей.  
Создадим себе трудности, чтобы потом искать того, кто их преодолеет для нас..
Более быстрый способ, all_trades
 
Цитата
Костя написал:
Цитата
nikolz написал:
исправьте так:
-------------------------------
function qsc.all_trades(msg)
if type(msg.data)~="table"  then msg.data={} end
local i=#msg.data;
 local count = getNumberOf("all_trades");
 while count>i do i=i+1;
     local depo_limit2 = getItem("all_trades",i)    
     if msg.data == "" or depo_limit2.sec_code == sec_code1 and depo_limit2.datetime.hour >= 10 then msg.data = depo_limit2; end
 end
 return msg
end
Благодарю за это, но это тоже медленно  работает ,  буду  
SearchItems пробовать  ...
Напишите для начала сколько времени у вас исполняется ваше решение и сколько это.
--------------
В этом решении все существующие данные загрузятся один раз а не каждый цикл.
Если новых данных нет, то время не тратится.
---------------------
Поясняю на примере.
Пусть в архиве 10000 данных.
В вашем решении на каждом цикле будете читать в таблицу 10000 данных
В моем это чтение будет лишь один раз.
После поступление нового значение у Вас опять будет читаться все 10001 значение
а в моем только 1.
-------------------
Итак какие результаты у вас получились?
Как убрать нуль после точки?, .0
 
 print(type(x))
x=10; print(type(x))
  x="10"; print(type(x))
 x={}; print(type(x))

результат:
nil
number
string
table
Как убрать нуль после точки?, .0
 
для справки тип данных определяется так:
 print(type(x))
 x=10
 print(type(x))
   x="10"
 print(type(x))
  x={}
 print(type(x))

результат:
nil
number
number
string
table
Обучаюсь, Обучаюсь Lua ,мне дали одно задание,но я его не понимаю.
 
Плохой у Вас учитель.
Более быстрый способ, all_trades
 
исправьте так:
-------------------------------
function qsc.all_trades(msg)
if type(msg.data)~="table"  then msg.data={} end
local i=#msg.data;
 local count = getNumberOf("all_trades");
 while count>i do i=i+1;
     local depo_limit2 = getItem("all_trades",i)    
     if msg.data == "" or depo_limit2.sec_code == sec_code1 and depo_limit2.datetime.hour >= 10 then msg.data[i]= depo_limit2; end
 end
 return msg
end
Более быстрый способ, all_trades
 
Цитата
Костя написал:
Цитата
nikolz написал:
local i=#msg.data;
Попробовал ваше  

сработало исключение
@"Lua error: qsfunctions.lua:605: attempt to index a string value (field 'data')"
покажите как вы определили msg которое передаете в вашу функцию.  
Более быстрый способ, all_trades
 
на основе вашей функции, можно сделать примерно так:
-------------------------------
function qsc.all_trades(msg)
if msg.data==nil then msg.data={} end
local i=#msg.data;
  local count = getNumberOf("all_trades");
  while count>i do i=i+1;
      local depo_limit2 = getItem("all_trades",i)    
      if msg.data == "" or depo_limit2.sec_code == sec_code1 and depo_limit2.datetime.hour >= 10 then msg.data[i]= depo_limit2; end
  end
  return msg
end
Более быстрый способ, all_trades
 
для скрипта надо делать две части
первая часть исполняется один раз и читает данные из архива квика
вторая часть работает в колбеке
Предложение к разработчикам
 
Цитата
Владимир написал:
nikolz,
Цитата
nikolz написал:
Вы еще далеки от понимания реальности фондовых рынков.
А зачем мне понимать их реальности?  :: Есть тикеры, есть цена спроса и предложения и это ЕДИНСТВЕННАЯ реальность, которая меня интересует.

Нет, я не помню игровые автоматы в супермаркетах и беспроигрышную лотерею у вокзалов  - мне всегда хватало мозгофф понять, что это лохотрон. Так что, бывшие напёрсточники теперь называются "маркетмейкеры"? ВОТ ЭТО ВОТ теперь называется ""монстры фондового рынка"? Я же говорю: КАБЗДЕЦ финансовому рынку с такими "трейдерами"! КАКИМ ОБРАЗОМ эта хрень может "сделать ликвидность и уменьшить спред"? Развести лохов на бабки? Да лохи и так все свои бабки благополучно просрут, без этих долбаных "мейкеров"!

А брокеры - это НЕ ТОЛЬКО "всего лишь посредники между биржей и клиентами" - цитата из Вики:
На бирже маркетмейкером может являться, например, брокерская контора, которая по договору с биржей берёт на себя обязательство держать в течение оговорённого времени (скажем, не менее 90 % торгового времени) одновременно выставленные заявки с разницей между ценами покупки и продажи (см. спред) не более оговорённой величины, за это биржа предоставляет маркетмейкеру определённые льготы, например, по оплате комиссионного сбора.

Про HFT роботов: кого и как они там "обгладывают" - меня не интересует: меня они не обглодают. Ну что они могут обглодать за свои сраные доли секунды? Ну, получат они какую-то там "информацию" раньше - и что? Ну, купят что-то на полкопейки дешевле, ну, продадут на три копейки дороже - да и то лишь в том случае, если они по этой информации примут правильные решения. Я если рынок тупо проигнорирует эту инфу? А если они неправильно оценят эту информацию? Где тогда будут эти "пираньи"? Правильно, в зопе!    
Не навязчиво рекомендую кроме вики прочитать ФЗ  "О рынке ценных бумаг"
Еще можно для  расширения кругозора почитать книгу Дж.Сороса "Новая парадигма финансовых рынков". Он ее написал под впечатлением очередного обвала рынков.
Что же относительно Вашего представления о фондовом рынке.
Так на то оно действительно  Ваше.
Но зачем же так агрессивно его излагать?
Получение значения индикатора не открывая данных графика
 
Попросите товарища пройтись по таблице и сказать результат.
Более быстрый способ, all_trades
 
Уточните, Вы пишите скрипт или индикатор.
Кто как решил вопрос уведомления о сделках?
 
Цитата
Nikolay написал:
Сделал небольшое решение для отправки сообщений в чат бота телеграма (Telrgram Bot Api).
https://github.com/nick-nh/qlua/tree/master/telegramQuik

Основа - это некое C# консольное приложение (многопоточный сервер), принимающее данные от lua скрипта и отправляющее уже сообщения в чат телеграм. Я предпочитаю делать так, дабы не связываться с проблемами совместимости библиотек lua.

Сначала сделал передачу данных на внутренний сервер через сокеты, но медленно оказалось.
Переделал на Named Pipes, быстрее намного. Пришлось написать библиотеку Named Pipe клиента для lua.

Пока сделал только отправку сообщений, т.к. это самая частая просьба.
информация к размышлению.
Вообще-то пакет байтов 500 по UDP сокетами передается даже на луа примерно не более чем за 20 ms. Это медленно?
Какая же у вас получилась скорость ?
---------------------------  
Страницы: Пред. 1 ... 39 40 41 42 43 44 45 46 47 48 49 ... 72 След.
Наверх