Михаил Понамаренко (Все сообщения пользователя)

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

Страницы: 1 2 След.
Управление таблицей LUA, Вопросы и пожелания.
 
 

Напомню. Годы летят, а таблицы скриптов QLUA, всё также, бессовестно лезут на первую попавшуюся вкладку…

 
Улучшенный поиск, Пробел, как разделитель запроса
 

Логика простая. Пробел является разделителем вхождений в запрос.
Например.
Запрос «sr 215» выведет все 215-е страйки опционов фьючерса Сбербанка.

SR021500BB9

SR021500BC9

SR021500BD9

... и т.д.


Запрос «sr d» выведет все мартовские коллы опционов фьючерса Сбербанка.

SR013000BD9

SR014000BD9

SR015000BD9

... и т.д.

Такой способ ускоряет поиск.

индикатор исторической волатильности
 
 

Могу предложить Индикатор для QUIK Historical Volatility http://pmntrade.ru/indikator_history_volatility.html

 
Мерцание таблицы QPILE после повторной загрузки скрипта, Версия QUIK 7.16
 
Спасибо, пользуюсь уже более полугода. Ошибок нет.
Улучшенный поиск, Пробел, как разделитель запроса
 
Приветствую!
Уважаемые разработчики, не могли бы вы немного улучшить поиск.
Думаю, моя идея будет интересна и не сложна в реализации.
Например, мне нужно найти опцион "SR021500BD8".
Я могу найти "sr0215", увижу все опционы всех серий .
Чтобы более точно указать запрос, нужно ввести полностью код опциона.
Но если введу "sr0215 D8", я могу увидеть только опционы этой серии.
Т.е. пробел может служить разделителем частей запроса, ну, и само самой быть пробелом.
На практике знаю, что штука удобная.
Мерцание таблицы QPILE после повторной загрузки скрипта, Версия QUIK 7.16
 
Мерцание заголовков таблицы QPILE и её содержимого после повторной локальной загрузки любого скрипта в версии QUIK 7.16.
При этом, добавляется первая пустая строка.
Возможно возникало и в предыдущих версиях.
Решается удалением и созданием новой таблицы.
Просьба поправить в последующих версиях.
Фильтрация транзакций "своего" робота
 
Я сделал через комментарий http://pmntrade.ru/positions_history.html
Если нужно разделять одинаковые заявки внутри робота под одним комментарием использую ID.
Метки в новой версии 7.14, В новой версии изменились метки, где описание новых параметров?
 
Кстати, TRANSPARENT_BACKGROUND = 1, делает прозрачной и саму картинку, не только фон. Насколько понимаю, ошибка.
Метки в новой версии 7.14, В новой версии изменились метки, где описание новых параметров?
 
Можно же через GUI, а в коде нельзя. Неравноправие!
Метки в новой версии 7.14, В новой версии изменились метки, где описание новых параметров?
 
Здравствуйте!
А моё пожелание уже не меняется уже более 10 лет.
Возможность привязки метки к координатам окна диаграммы.
Это позволит фиксировать надписи, например, к левому верхнему краю.
Программы PMN Trade, Список моих программ созданных с 2007-го года.
 
Очень не хватает редактирования сообщения. В предпросмотре всё выглядело хорошо, а после отправки сообщения появились HTML теги. :smile:
Программы PMN Trade, Список моих программ созданных с 2007-го года.
 
Приветствую всех интересующихся снова. Времени на хобби сейчас стало меньше. Но, тем не менее, кое-что было сделано за последний год:[TABLE][TR][TD]10.03.2017[/TD][TD] Утилита для QUIK "Робот Скальпер"
Версия 20170310
Добавлено:
- Возможность использования трейлинг-стоп

[/TD][/TR][TR][TD]17.03.2017[/TD][TD] Индикатор Арбитраж для QUIK
Версия 20170317
20170316 – Увеличено количество изменений арбитражного индикатора.
20170317 – Устранён двойной расчёт индикатора. Подробнее: https://forum.quik.ru/forum10/topic2634/.

[/TD][/TR][TR][TD] 28.03.2017[/TD][TD] Индикатор Арбитраж PRO для QUIK
Версия 20170328
20170328 – Добавлено: возможность указания даты экспирации патерном expДД.ММ.ГГГГ.
[/TD][/TR][TR][TD]21.04.2017[/TD][TD] Утилита для QUIK "Робот Скальпер"
Версия 20170421
- Добавлена возможность расчёта отступов, стоп-лосс и тейк-профит на основе индикатора АТР (Average True Range).

[/TD][/TR][TR][TD] 22.05.2017[/TD][TD] Утилита для QUIK "Робот Сетка Д"
Версия 20170522
- Исправлен учёт количества прибыльных позиций подряд. В прежних версиях, если происходил переход на другой уровень, счётчик количества прибыльных позиций подряд сбрасывался на ноль. Было это сделано намерено, но теперь было решено отказаться от этой версии.

[/TD][/TR][TR][TD]02.06.2017[/TD][TD] Утилита для QUIK "Робот Сетка Д"
Версия 20170602
- Возможность автоматического определения кода бумаги. Например, если указать "?", то код бумаги будет опеределён из легенды (названия) индикатора. Работает только для FORTS. Позволяет быстро переключать торговый инструмент, меняя график при помощи привязки к таблице Текущие торги (Таблица Текущих Параметров).

[/TD][/TR][TR][TD]16.08.2017[/TD][TD] Утилита для QUIK "Дубликатор сделок QUIK-QUIK"

20170715 - Возможность совершения в получателях дополнительных сделок, т.е. свои сделки.
20170715  - Возможность дублирования из нескольких QUIK в один.
20170731 - Возможность работы через Интернет. 20170816 - Возможность отключения полной синхронизации.
[/TD][/TR][TR][TD]24.11.2017[/TD][TD] Утилита для QUIK "Робот Скальпер"
Версия 20171123
- Добавлена возможность "Режим Ассистента". Робот подхватывает выставленную трейдером заявку для входа и далее работает в обычном алгоритме.

Версия 20171124

- Добавлена возможность "Режим Последовательного входа в позиции". Например, если "Последовательный вход в позиции" = "Да", робот сначала будет выставлять только первую заявку для входа из списка. Когда произойдёт вход в первую позицию в полном объёме, будет выставляться заявка входа второй позиции и т.д. Если применяются ТП и СЛ, они будут выставляться сразу, после входа в позицию.

[/TD][/TR][TR][TD]13.03.2018[/TD][TD] Утилита для QUIK "Робот Скальпер"
Версия 20180310
- Добавлена возможность "Граница волатильности". Можно определять в каком состоянии рынка (трендовом или контртрендовом) робот будет торговать. Уровень волатильности определяется индикатором АТР. Например, если значение АТР выше указанного уровня, то состояние рынка будет определено, как "трендовое". Если мы выбрали торговлю только в контртрендовом состоянии рынка, то открытые позиции будут ожидать закрытия по стоп-лосс или тейк-профит, но новые позиции открываться не будут.

Версия 20180311

- Добавлена возможность указания стоп-лосс на основе значения индикатора. Например, если укажем в настройках стоп-лосс "!стоп", то нужно создать индикатор с идентификатором "стоп". Значение для стоп-лосс будут приходить из этого индикатора в неизменённом виде.[/TD][/TR][/TABLE]
Аналог функции eval для lua, Аналог функции eval для lua
 
...выведет 9.
Аналог функции eval для lua, Аналог функции eval для lua
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Можно попробовать через loadstring
Код
   function   calculateString (str)
    return  assert(loadstring( "return "  .. str))()
 end 
  
Отличное решение! Большое Вам спасибо!
Как и предполагал, можно пользоваться всеми math функциями, например, "math.pow(3,2)" выведет
Аналог функции eval для lua, Аналог функции eval для lua
 
Задача простая.
Есть переменная типа string str = "1+(2*3)".
Нужно из неё получить результат 7.
Есть два способа.
Первый - пишем парсерную функцию eval. Хорошая функция, учитывающая скобки, приоритет операций и т.д. занимает около 1000 строк.
Второй - просто и изящно передаём строку в назначение переменной, например res = 1+(2*3), будет равен 7.
Код
function calculateString(str) {
  return (new Function('return ' + str))();
}
Это пример для JavaScript. Где-то видел аналогичный для LUA, но не могу найти.
Помогите с решением задачки.  :what:
Копирование сделок., Копирование сделок.
 
Утилита для QUIK "Дубликатор сделок QUIK-QUIK"
http://pmntrade.ru/double_trades_quik-quik.html
Последние обновления:
20170715
- Возможность совершения в получателях дополнительных сделок, т.е. скрипт получателя видит только свои сделки.
20170715  - Возможность дублирования из нескольких QUIK в один.
20170731 - Возможность дублирования сделок через Интернет.
Перекрестие с информацией, Прошу добавить в ближайшие 50 лет
 
Спасибо!
Быстро реагируете!  :lol:
Неверный код клиента в MOVE_ORDERS, Ошибка Неверный код клиента при вызове транзакции перестановки заявки FORTS
 
А пока проблема решается, может есть способ из кода узнать используется ли единый брокерский счёт (ЕДП)?
Феерическое
 
Неверный код клиента в MOVE_ORDERS, Ошибка Неверный код клиента при вызове транзакции перестановки заявки FORTS
 
Приветствую!
Появилась ошибка "Неверный код клиента" при вызове транзакции перестановки заявки FORTS.
При этом, заявка выставляется и снимается без проблем с аналогичным массивом.
Проблема возникла у брокера Открытие, при использовании Единого брокерского счёта и субсчетов.
В других вариантах у этого же брокера ошибка не наблюдается.
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Всё же, решить проблему не удалось. Проблема именно в том, что пересчёт индикатора задним числом удалось сделать только на новом тике. Если пересчитывать ранее, например, на последнем баре, получаем всё те же нули с верхнего графика.
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
s_mike@rambler.ru, спасибо за хорошую мысль. Действительно, перерисовать индикатор можно только таким способом, прогнав весь массив тайм-серии сначала. А событием для этого сделаю ненулевую цену графика. Попробую.
Но, всё равно, "телега бежит впереди лошади".
Может уважаемые разработчики хоть, как пожелание зарегистрируют запуск расчёта индикаторов после получения данных всех графиков на диаграмме.  
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Цитата
Sergey Gorokhov написал:
Михаил Понамаренко  ,
Все равно не воспроизводится.
быть может у Вас индикатор все-таки создан из окна с верхним графиком?
Попробуйте повторить на разных инструментах.
Для чистоты эксперимента, установил QUIK 7.10 с Вашего сайта. Ничего не менял в настройках, только скопировал тестовый индикатор и добавил окно второго инструмента. Инструменты другие. Но картина такая же. (
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Николай Камынин, индикатор в QUIK прорисовывается раньше, чем приходят данные графика. А перерисовать индикатор не представляется возможным любыми способами, в т.ч. во внешней библиотеке. Или я не прав?
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Sergey Gorokhov, проблема актуальна:
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Sergey Gorokhov, посмотрите видео:
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Sergey Gorokhov, проблема выявляется, когда на диаграмме несколько графиков.
Ниже упрощённый код:
Код
Settings =
{
 Name = "!Тест" -- Название индикатора
}
function Init()
 return 1
end
function OnCalculate(index) -- Первая (самая левая) свечка имеет индекс 1
 tChartA, NumA, LegendA = getCandlesByIndex("A", 0, index - 1, 1) -- информация о свечках по идентификатору
 return tChartA[0].close -- вывод результата на график
end
Нужно создать диаграмму с двумя графиками.
На нижний график добавляем идентификатор "A".
Загружаем индикатор на первый график, получаем дублирование Close:

Пытаемся переключить таймфрейм, получаем нули:

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

Вроде бы все проблемы решены, но нет. Теперь при перезаказе данных на этом индикаторе недоступен верхний график. Устанавливаем идентификатор на верхний график, перезаказываем данные Заказ данных - Перезакать данные...:


Чтобы решить проблему, считаю, нужно производить расчёт индикаторов после получения данных по всем графикам на диаграмме.
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Sergey Gorokhov, в примерах getCandlesByIndex() не используется.
Речь идёт об индикаторах, которые берут данные из других графиков.
Перерисовка индикатора из кода, Перезапуск OnCalculate()
 
Здравствуйте!
Имеется индикатор, использующий данные графика "А" через функцию getCandlesByIndex().
Каждое утро на сервере происходит перезаказ данных. (Можно эмулировать: Заказ данных - Перезакать данные...)
График "А" ещё не получен от сервера, а индикатор уже производит расчёт.
Т.к. данных графика "А" нет, индикатор не может быть рассчитан.

Решается входом в "Редактирование настроек графика" и нажатием "Применить" или "Ок". В этом случае, происходит перезапуск OnCalculate() и индикатор перерисовывается.

Как сделать перезапуск OnCalculate() или есть другое решение?

Лишний вызов OnCalculate, Как обойти?
 
Нашёл решение через обработку чётного расчёта и событие смены интервала.
Лишний вызов OnCalculate, Как обойти?
 
Здравствуйте!
В QUIK версий 7 и выше индикаторы (функция OnCalculate) рассчитываются
по 2 раза при первой загрузке и при изменении параметров. Причём, при изменении
параметров рассчитываются по 2 раза ВСЕ ИНДИКАТОРЫ НА ВСЕХ ДИАГРАММАХ ОКНА (это сильно тормозит систему). При
переключении таймфрейма, индикаторы рассчитываются 1 раз, как должно быть.
Пожелание по исправлению проблемы зарегистрировано многократно.
Может есть какой-то способ обойти лишний вызов в коде индикатора?
Спасибо!
Перенос заявки исполненой стоп-заявки, Заявка, выставленная стоп-заявкой не переносится.
 
Спасибо большое!
Действительно, выводит дату и начальный номер заявки.
Перенос заявки исполненой стоп-заявки, Заявка, выставленная стоп-заявкой не переносится.
 
Да, можно по ID или мониторить исполнение стоп-заявки.
Если можно, как пожелание с невысоким приоритетом, добавить в Таблицу Заявок информацию о переносе заявок. На данный момент, я просматриваю через глупый метод "Заменить заявку".
Перенос заявки исполненой стоп-заявки, Заявка, выставленная стоп-заявкой не переносится.
 
Здравствуйте!
Стоп-заявка исполняется, выставляется заявка без переноса.
Как сделать заявку с переносом?
Можно ли как-то в таблице заявок определить переносится ли заявка?
Спасибо!
Управление таблицей LUA, Вопросы и пожелания.
 
Присоединяюсь. Очень бы удобно было. Сейчас приходится парсить легенду.
Функция NumberToRGB(number), Функция преобразовывает одно число цвета в компоненты RGB (red, green, blue)
 
Хотел раскрасить метку из Settings.line[1]["Color"]. Но функции, как получить RGB из числа не нашёл. Нужна такая функция или другое решение.
Заранее спасибо!
Управление таблицей LUA, Вопросы и пожелания.
 
Цитата
Stanislav Tvorogov написал:
относительно QLUA либо QPILE
Относительно QLUA. В QPILE все настройки сохранялись в .wnd (было очень удобно).
Перекрестие с информацией, Прошу добавить в ближайшие 50 лет
 
Спасибо за добавленную линейку!
Превзошла ожидания!!!
В Новый Год чудеса случаются!
Я скромно просил "в ближайшие 50 лет". )))

Ещё очень хочется исполнения желания относительно таблиц QLUA. Они бессовестно лезут на другую вкладку после перезапуска QUIK. https://forum.quik.ru/messages/forum10/message20140/topic1156/#message20140

С наступившими Новым Годом и Рождеством!
Ещё раз СПАСИБО!
Управление таблицей LUA, Вопросы и пожелания.
 
Ещё:
• отсутствует возможность сохранения ширины столбцов
Не помешала бы функция GetColumnSize(column).
Всё же, реализация в QPILE с сохранением параметров таблиц в .wnd файлы была наиболее удобна.
Событие изменения файла в LUA
 
require "lfs" -- http://files.luaforge.net/releases/luafilesystem/luafilesystem/luafilesystem-1.4.2/luafilesystem-1.4...
local new_att = lfs.attributes (TradesFile) -- получаем атрибуты файла
message(tostring(new_att.modification), 1) -- время изменения файла UNIX
Событие изменения файла в LUA
 
Файл изменяется пользователем.
Выбрал LuaFilesystem https://keplerproject.github.io/luafilesystem/manual.html
Событие изменения файла в LUA
 
Здравствуйте!
Как лучше обрабатывать событие изменения файла в LUA?
Контроль размера файла не подходит.
Контроль даты и времени изменения файла не нашёл.
Спасибо!
Управление таблицей LUA, Вопросы и пожелания.
 
Ещё раз спасибо за развёрнутый ответ!
Решения через QLUA устраивают.
Горячие клавиши нужны будут для вызова добавленных возможностей, например, экспорта DDE.
Для меня в приоритете сохранение вкладки и экспорт DDE.
Управление таблицей LUA, Вопросы и пожелания.
 
Здравствуйте!
1. Запускаю скрипт, создаётся таблица QLUA, сохраняю координаты окна таблицы, перехожу на другую вкладку, перезапускаю QUIK, таблица появляется на том же месте, НО НА ТЕКУЩЕЙ ВКЛАДКЕ, А НЕ НА ТОЙ, ГДЕ ОНА БЫЛА ОТКРЫТА. Есть ли возможность "запомнить" вкладку?

2. Есть ли возможность задать свою иконку в верхнем левом углу?


3. Очень не хватает возможностей, которые имели место в QPILE таблицах.

Ниже приведен список действий, которые не поддерживаются для таблиц, созданных на языке Lua:
 
таблицы не сохраняются в файл конфигурации (решилась бы проблема сохранения вкладок);
отсутствует диалог редактирования таблицы;
отсутствует контекстное меню таблицы (кроме пункта «Переместить на закладку»);
не создается копия таблицы;
не задается по умолчанию заголовок окна таблицы;
отсутствует экспорт данных из таблицы (особенно важен DDE экспорт, т.к. функциями DDE LUA пользоваться непривычно и неудобно);
недоступно управление «горячими клавишами».
Спасибо!
Cимвол процента в паттерне LUA
 
Задача найти и заменить "%" на "".
Отладка скриптов Lua для Quik., Как произвести отладку скрипта?
 
Цитата
Imersio Arrigo написал:
Цитата
Михаил Понамаренко (pmntrade.ru)   написал:
НАЗВАНИЕ_ПЕРЕМЕННОЙ;ЗНАЧЕНИЕ
а еще крупнее шрифта небыло?
Копировал из Notepade++. Не знал, что он поддерживает форматирование.
Отладка скриптов Lua для Quik., Как произвести отладку скрипта?
 
UP
Decoda (https://www.quik2dde.ru/viewtopic.php?id=32) часто отключается и возобновляет работу только перезагрузки. Требует введения имени переменной. Неудобно.
Мне вполне по душе реализация QPILE, где вбиваешь волшебный breakpoint() в заветном месте и видишь сразу все свои переменные в формате НАЗВАНИЕ_ПЕРЕМЕННОЙ;ЗНАЧЕНИЕ. Там, правда, очень не хватало сортировки по имени переменной.
Может быть кто готов поделиться своими наработками (пивом угощаю)? Хотелось бы аналог описанный выше.
Ну, и конечно, хотелось бы увидеть реализацию по умолчанию от Вас, уважаемые разработчики.
Спасибо!
Редакторы для QLUA Notepad++ vs SciTe
 
Notepad++ оказался не готов к подсказкам по функциям. Нужна доработка. Если найдётся решение, пишите.
Выкладываю пока то, что получилось.

Описание.
Файл lua.xml содержит подсказки при вводе параметров функций.
Выявлены недочёты:
- не выводится подсказка для функций с точкой (io.open и т.д.),
- подсказка на русском выводится в виде иероглифов.
Установка.
1. Скопировать файл lua.xml в папку <Path>\Notepad++\plugins\APIs.
2. Перезапустить Notepad++.
Последняя версия Notepad++: http://notepad-plus-plus.org/download/
Последняя версия этого пакета: http://pmntrade.ru/other/luaxml.rar
Текущая версия: 20160608


Также, выкладываю пакет для SciTE: http://pmntrade.ru/other/SciTEQLua.rar
Подсветка синтаксиса QLua для Notepad++
 
Но хотелось подсказки:
Подсветка синтаксиса QLua для Notepad++
 
А нет, есть: Notepad++ - Опции - Определение стилей... - Lua, FUNC3, в Пользовательские добавляем:
"getWorkingFolder isConnected getScriptPath getInfoParam message sleep getItem getOrderByNumber
getNumberOf SearchItems getClassesList getClassInfo getClassSecurities getDepo getMoney getParamEx getQuoteLevel2 getSecurityInfo getTradeDate sendTransaction getPortfolioInfo getPortfolioInfoEx getBuySellInfo getBuySellInfo CreateDataSource getCandlesByIndex getLinesCount getNumCandles SetUpdateCallback AddColumn AllocTable Clear CreateWindow DeleteRow DestroyTable InsertRow IsWindowClosed GetCell GetTableSize GetWindowCaption GetWindowRect Highlight RGB SetCell SetColor SetTableNotificationCallback
SetWindowCaption SetWindowPos"
Страницы: 1 2 След.
Наверх