All articles

15 Ноябрь 2017

verona scuole aportiane

Вопрос: откуда взялся дом отдыха членов семей горисполкома в Вероне? Машины обслуги, флаги... Здание соответствующее...

24 Июль 2017

Индикатор открытых позиций физическими и юридическими лицами

Комплект индикаторов из серии "черпаем издалека и намазываем на график".

16 Июль 2017

Байты, килобайты и терабайты

Очень короткая функция для форматирования размера файла в человеко-читабельный вид.

23 Март 2017

Philippines

После белых китов в белом же море по совету филиппинца решил поплавать с акулами в море Бохол на Филиппинах. Завораживающе..

05 Февраль 2017

Округление до шага

Часто требуется математическое действие, округляющее определенное значение к заданному шагу. Такого рода действия необходимы при написании торговых роботов, чтобы в частности привести значение к шагу цены инструмента или округлить текущее время к границе таймфрейма. Например, необходимо округлить число 9876.54321 до шага 0.01. Результат будет 9876.54. Действие тривиальное, но "больная голова рукам покоя не даёт. Улыбаюсь...  

29 Январь 2017

О пользе inline-кода или библиотека bit

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

09 Декабрь 2016

Осваиваем смежные специальности

Давно хотел пробить в стене проход из кабинета в спортзал. Созрел-таки Улыбаюсь

Строки как массивы символов

Надоело каждый раз для получения i-того символа строки выписывать вызов string.sub и каждый раз лезть в документацию, чтобы посмотреть параметры этой функции. Хочу так:  str[i]

06 Декабрь 2016

Juggler: Эквилибристика графиками

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

15 Ноябрь 2016

Сканер рынка

В терминале QUIK доступны сотни и даже тысячи инструментов. Как найти среди них те, в которых выполняются определённые условия? Например, бумага начала расти или достигнут локальный минимум и имеет смысл рассмотреть вопрос покупки этого актива? Или какое-то другое условие, которым пользуетесь именно вы для анализа ценных бумаг рынка.

06 Ноябрь 2016

Ограничение функции unpack

Функция unpack возвращает в качестве результата все значения таблицы с целочисленными индексами в соответствующем порядке. Функция весьма удобна. Например, с ее помощью легко узнать максимальное значение элемента таблицы:

t = {100,1,200,2,300,3}
print( math.max(unpack(t)) )

Насколько безопасно пользоваться этой функцией?

03 Ноябрь 2016

Индикатор Open Day

Индикатор, выводящий на график уровень открытия дня.

30 Сентябрь 2016

Кемер времен позднего Эрдогана

Как приятно, когда в хорошей гостинице весь персонал знает тебя по имени. Да и самого персонала в отеле больше чем гостей...

09 Сентябрь 2016

26 Август 2016

23 Июнь 2016

20 Июнь 2016

1 сентября, дети, Родина

Сан-Марино. Скала посреди Апеннин. Зажиточная Италия. Цветы в кадках, улыбки, космические цены.... И...

09 Июнь 2016

Дважды Англия

27 Май 2016

Комплимент

И вот наконец это произошло! Мне сделала заказ на робота девушка!

27 Апрель 2016

Массивы в M4

Массивов, как таковых, в препроцессоре M4 нет. Ну на самом деле, зачем массивы в препроцессоре? Однако несложный макрос позволяет их реализовать самостоятельно. Даже ассоциативные.

25 Апрель 2016

Шанхай

19 Апрель 2016

Технология кидка через Вебмани

C некоторых пор я перестал использовать электронные деньги. Делюсь собственным опытом.

11 Апрель 2016

Россияне

Интересные цифры нам даёт Левада-Центр:

10 Март 2016

Репутация

 

10 Февраль 2016

Индикатор времени, оставшегося до завершения свечи

Еще один индикатор. Его попросил написать трейдер, видимо пришедший на рынок с форекса. Поскольку Quik не Метатрейдер и рисовать на графике он не даёт на текущий момент, пришлось немного поморщить лоб - вот результат.

03 Январь 2016

31 Декабрь 2015

Я бросил курить

 

 

26 Декабрь 2015

Бюргеры. Они такие.

Дрезден. Пивная Watske. 100 лет. В числе посетителей Ленин и Гитлер. 3 этажа, на третий пускают только членов пивного клуба.

15 Декабрь 2015

Расчет индикаторов методом кофеварки

Листая форум сайта quik.ru, узнал о существовании ftp сервера компании ARQA. Среди прочего увидел файл indicators.zip, в котором собраны исходные коды индикаторов, чем-то напоминающих встроенные в терминал quik. Отдавая должное автору, написавшему эту громадную кучу текста, в их использовании было отказано.

13 Декабрь 2015

На злобу дня

Сейчас мне кажется, что хуже того, что со мной происходит, и быть ничего не может. А ведь пройдет пара этапов, и вот по этому именно дню и наступит сожаление. И покажется, что держал что-то в руках, сам не понимая что, – держал, держал да и выкинул. Господи, как же погано должно стать потом, чтобы можно было жалеть о том, что происходит сейчас… И ведь самое интересное: с одной стороны, жить все бессмысленней и хуже, а с другой – абсолютно ничего в жизни не меняется. На что же я надеюсь?

В. Пелевин. "Принц Госплана"

17 Ноябрь 2015

Как в скрипте получить значение трендовой линии?

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

13 Ноябрь 2015

Индикатор DayDelimiter

Как на графике отделить один торговый день от другого?

01 Октябрь 2015

Индикатор Aroon

Реализация и описание индикатора Aroon. Демонстрационная и полная версии.

30 Сентябрь 2015

Индикатор объема с разделением на покупки и продажи

Внутридневная замена стандартному индикатору объема. Показывает одновременно объемы покупок и продаж.

06 Сентябрь 2015

Tesla Model S

 Индекс РТС нулей не прибавил, но с мечтами о Тесле ситуация иная:

19 Август 2015

Новые индикаторы

После перерыва выложил на сайт несколько новых индикаторов. Все они представлены в виде демо- и полнофункциональной версий.

14 Август 2015

Стакан на графике

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

17 Июль 2015

1 лось, 2 лося, 5 лосей

Функция для закоренелых эстетов. Подбирает правильную форму существительного взависимости от его количества.

16 Июль 2015

09 Июль 2015

Индикатор Zig-Zag

Потребовалось написать индикатор Zig-Zag для quik. Почему-то в стандартной поставке этот индикатор отсутствует. Демо-версия (и полная тоже) находится здесь.

06 Июль 2015

Индикатор Моментум

Как использовать индикатор Momentum?

24 Июнь 2015

onTradedate

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

20 Июнь 2015

Аттестат

Вчера был выпускной вечер в школах. Дочка приготовила мне вот такой подарочек:

05 Июнь 2015

Индикатор профиля рынка

Индикатор умеет накапливать историю и выводить ее на график за предыдущие торговые дни.

30 Май 2015

Набор стандартных каналов

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

15 Май 2015

Что такое SipNet или как звонить бесплатно на городской телефон

Если Вам требуется из любой точки мира с компьютера или мобильного устройства

  • Бесплатно звонить на городские телефоны Москвы, Санкт-Петербурга, Алматы или Астаны
  • Дешево звонить на мобильные телефоны этих городов
  • Очень дешево звонить на городские и мобильные телефоны других городов и стран
  • Бесплатно связываться (текст, файлы, звук и видео) с другими абонентами SipNet

то

05 Май 2015

Добавление символов в строку до нужной длины

--- Pads str to length len with char from right
function string.lpad(str, len, char)
    return str .. string.rep(char or " ", len - #str)
end
--- Pads str to length len with char from left
function string.rpad(str, len, char)
    return string.rep(char or " ", len - #str) .. str
end

 

08 Апрель 2015

Разбор кода опциона

Как разобрать код опциона или фьючерса на языке Lua?

21 Март 2015

Как упаковать бинарный файл в lua скрипт?

Иногда необходимо упаковать несколько бинарных файлов в тело скрипта на lua с тем, чтобы в процессе работы можно было создать этот файл в нужном месте.

17 Март 2015

Константинополь

Не ограничиваясь только одной римской столицей: вторая оказалась не менее интересной.

27 Февраль 2015

Вычисление выражения, заданного строкой

Есть строка "3+5". Можно ли вычислить результат выражения из этой строки?

06 Февраль 2015

Архив котировок с сервера брокера

Этот скрипт позволяет накопить историю котировок и параметров, используя базу, находящуюся на сервера брокера QUIK.

02 Февраль 2015

Функции time() и date() для qpile

Несмотря на то, что на замену qpile в терминале quik пришел lua, мне временами приходят просьбы дать эту функцию.

Даю. Она написана не на чистом qpile, а с использованием препроцессора. Однако перевести ее в обычный вид не составит огромного труда.

17 Январь 2015

16 Январь 2015

Тест правильности установки AmiSharp. Пример простейшей программы

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

13 Январь 2015

Особенность интерпретатора Lua

Наткнулся на неприятную особенность интерпретатора lua, встроенного в терминал QUIK.

18 Декабрь 2014

Себестоимость позиций

Пока народ штурмует автосалоны, меняет презренные пиастры на технику в М-Видео, чтобы поставить её на мебель от Икеа, мне взгрустнулось. Я в дерби участия не принимал: все кубышки перекрашены в зелёный цвет уже давно.

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

11 Декабрь 2014

Обновление адаптера Quik-Amibroker

Разработчики ARQA обновили адаптер экспорта котировок, устранив (наконец-то!) так называемую проблему усов на графиках.

Попробовал, пока проблем не заметил.

Ссылка для скачивания

Настройка экспорта котировок в Amibroker (видео)

22 Ноябрь 2014

Модуль очереди для обмена между потоками

Модуль FIFO очереди для обмена данными между потоком терминала (колбеками) и потоком скрипта QLua.

20 Ноябрь 2014

Оптимизация в Lua

Перевод статьи  на русский язык.

18 Ноябрь 2014

Динамические многомерные массивы

Мощь языка Lua в совокупности с минимализмом особенно явно видны на некоторых примерах. Вот один из них - реализация динамического многомерного массива.

17 Ноябрь 2014

Индикатор: себестоимость позиций

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

14 Ноябрь 2014

Трансаэро

Вам приходилось летать на неисправном самолете?

13 Ноябрь 2014

QUIK в Паттайе?

12 Ноябрь 2014

Пятиминутка

Банановая змея - одна из наиболее ядовитых на Земле. Смерть гарантированно наступает через 5 минут после укуса - отсюда второе название - пятиминутка. Чем я ее заинтересовал, пока тихо и мирно починял примус тянул ром - загадка.

06 Ноябрь 2014

Муссон

 

07 Октябрь 2014

График прибылей/убытков для фреймворка

В случае использования фреймворка для построения торговых роботов Amibroker-QUIK можно в реальном времени строить график прибылей/убытков по результатам реально совершенных сделок с учетом накладных расходов.

25 Сентябрь 2014

22 Сентябрь 2014

20 Сентябрь 2014

Qlua и Google Finance

Пример упаковки веб-станицы в таблицу qlua. Подробнее здесь, можно скачать.

15 Сентябрь 2014

Максимальное и минимальное целое в Lua

Однажды, работая с миллисекундами, меня взяли сомнения. Миллисекунды щелкают быстро. Хватит ли значащих цифр в мантиссе, чтобы хранить нужное мне целое число? Тип данных number в языке Lua ведь не целочисленный, а 8-битный плавающий...

11 Сентябрь 2014

Анимированный заголовок окна таблицы

Как оживить заголовок окна?

03 Сентябрь 2014

Qlua и интернет

В сообществе любителей метатрейдера наткнулся на скрипт, который создаёт в MT5 сводную таблицу мировых индексов, получая информацию из Google Finance. Интереса для быстренько сляпал аналог на Lua для терминала Quik.

02 Сентябрь 2014

Как увеличить максимальный размер базы Amibroker

Оказывается, можно увеличить максимально возможный размер базы Amibroker. Стандартно лимит установлен в 500 000 свечей для каждого тикера.

01 Сентябрь 2014

Палитра цветов для LUA

Палитра RGB цветов для использования в LUA.

29 Август 2014

Цитаты

Альберт Шпеер - государственный деятель Германии, личный архитектор Гитлера,  рейхсминистр вооружений и военного производства).

11 Август 2014

Стокгольм

Был в Стокгольме. Жара +32. Несколько десятилетий такого не было - начинаю подозревать неладное (Бенедикт XVIСнег в Каире).

15 Июль 2014

Простая безындикаторная скальперская стратегия

Очень несложная скальперская стратегия. Для успеха требуется ее дополнить риск-менеджментом.

14 Июль 2014

Дивергенция

Дивергенция, виды дивергенции, как их распознать.

31 Май 2014

Наше все

Да, я грешен. Да, денежные знаки входят в список важных для меня вещей. Да, меня приятно волнуют высокие проценты по валютным депозитам. И вот круг моих слабостей стал шире - появился новый объект для трепетного обожания. Это Сберегательный Банк. Системообразующий банк Российской Федерации. Вот так, не больше и не меньше.

30 Май 2014

Экспорт котировок из QUIK в SierraChart

SierraChartЗаказчику потребовались котировки российской биржи в программе SierraCharts. Я никогда с ней не работал. Однако беглое знакомство оставило очень приятное впечатление. Простая, легкая, с богатыми возможностями (часть из которых отсутствует в большинстве аналогичных программ) плюс встроенный язык С++. При всем том программа активно развивается, ожидается выход Linux варианта.

25 Май 2014

Формат времени 1900

Кроме привычного для lua формата времени и даты существует и другой вариант задания времени. Он применяется, например, в Excel, LibreOffice или в некоторых программах технического анализа.

24 Май 2014

Lua и IEEE754

В языке lua не предусмотрены штатные возможности работы с бинарными данными. Например, нет штатных возможностей записать в файл 8-байтный double float стандарта IEEE754 таким образом, как это можно сделать из того же языка Си. Необходимость работы с двоичной информацией возникает, например, при взаимодействии скрипта Lua с внешними программами с использованием уже существующих протоколов. Мне такое преобразование потребовалось для написания экспорта котировок из QUIK в SierraCharts.

Конечно, можно для этих целей написать расширение на С++. Однако делать расширение ради одной этой цели, и таскать ее в комплекте со скриптом на мой взгляд, совсем не комильфо. Все можно реализовать и на чистом lua - весь адаптер уместился в одном lua файле.

13 Май 2014

Генератор случайных чисел

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

08 Май 2014

Переменное количество аргументов функции

Нельзя ли распространить приятную особенность языка Lua, дающего возможность поставлять в функцию произвольное количество параметров, на другой язык? Скажем на AFL?

07 Май 2014

9 Мая

Одна из немногих НАСТОЯЩИХ дат. Поздравляю всех. Отдельно поздравляю моих обоих дедов, один из которых был в Берлине, а второй был 4 раза ранен. Для меня они живы.

28 Апрель 2014

Обмен данными между терминалами

Как организовать обмен между двумя рабочими местами quik?

20 Апрель 2014

OLE интерфейс к таблицам quik

Как обойтись без DDE для доступа к таблицами quik из внешних программ?

13 Апрель 2014

Zero-Lag Moving Average

Все сглаживающие фильтры и все скользящие средние имеют запаздывание. Это отставание обусловлено использованием в расчете не только данные текущей (последней) свечи, но и данные предыдущих (более старых) свечей. Однако можно попытаться уменьшить величину этого отставания из экспоненциальной скользящей средней (EMA). Совсем убирать задержку нельзя, поскольку в этом случае скользящая средняя будет в точности повторять линию цены, по которой она строится. Здесь нужно искать приемлемый компромисс. Предпримем попытку удалить запаздывание индикатора, а уже после чего попробуем использовать фильтрацию.

12 Апрель 2014

VWAP Channel

Подход к построению торгового коридора от Paul Levine. Базируется на 5 основных принципах.

03 Апрель 2014

OLE интерфейс к таблицам quik

Как получить во внешней программе, написанной,к примеру, на языке С++, содержимое таблиц рабочего места quik? Алгоритм вроде очевиден. Создаём таблицы вручную, добавляем в них все инструменты и все параметры, которые могут понадобиться роботу. Настраиваем экспорт по DDE и в своей программе создаём DDE сервер. Либо экспортируем данные протоколом ODBC в какую-нибудь базу данных и учим программу с этой базой работать. При этом постоянно что-то не складывается, отсоединяется, лапы ноют и хвост отваливается... При рестарте терминала нужно каждый раз руками или программно (автогеном) инициировать старт экспорта. Не забывать добавлять вручную в таблицу текущих параметров каждый раз новые фьючерсы после экспирации старых. В общем, насколько бы ни был качественно написан сам алгоритм, удобство и надежность робота оставляют желать много лучшего из-за "удобств", предлагаемым самим терминалом.

30 Март 2014

Сравнение двух таблиц

Как сравнить 2 таблицы (да и просто 2 любых объекта) на идентичность с учетом возможного наличия метаметода __eq?

25 Март 2014

История компании ARQA Technologies

В Новосибирске на улице Коммунистической, где современные бизнес-центры соседствуют с двухэтажными деревянными домами, находится необычное здание. Оно скорее похоже на шале где-нибудь в Австрии, чем на офис российской компании, чьи акции обращаются на фондовом рынке. В этом здании расположен филиал Московской биржи, а раньше здесь был офис Сибирской межбанковской валютной биржи (СМВБ) - ключевой торговой площадки региона до начала 2000-х.

19 Март 2014

Как узнать таймфрейм графика?

Чтобы узнать таймфрейм графика из скрипта индикатора, qlua предлагает метод getDataSourceInfo(). Однако иногда нужно получить таймфрейм графика из обычного lua-скрипта. Здесь getDataSourceInfo() не поможет. Однако можно попытаться сделать это своими силами.

12 Март 2014

Опиум для народа

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

08 Март 2014

Расположение Broker.exe

Как получить путь к исполняемому файлу Аmibroker, в котором запущен скрипт?

03 Март 2014

А может ли квик разговаривать?

А может. Смеюсь Причем не требуется никакого мошенничества, достаточно лишь элементарной ловкости рук. Подмигиваю

02 Март 2014

Lua + Win32 API

Пример использования Win32 API из Lua.

01 Март 2014

Остров Крым

Если неправильно выберешь вино, весь обед покатится под откос, и все вы через два часа будете выглядеть, как свиньи.

"Остров Крым", Василий Аксенов

28 Февраль 2014

MessageBox

А можно ли при использовании qlua задать вопрос пользователю и дождаться от него ответа?