Избранное трейдера MrD

по

Qlua: работа с метками, пишем торгового советника на индикаторах.

Сегодня рассмотрим:

Вывод текста на график
Вывод графических сигналов
Удаление меток с графика
Торговый советник на индикаторах
Удаление данных вечерней/утренней сессии с графика.

В торговом терминале почти нет графических инструментов, которых можно было бы задействовать через скрипт. Фактически разработчики оставили возможность использовать только индикаторы (неточность или ошибка в написании которых может подвесить весь терминал) и специальные метки, которые можно наносить на график.

И хотя сам терминал имеет возможность отрисовки различных линий, фигур, каналов, дуг, уровней, но из lua скрипта ничего этого до сих пор штатными методами не доступно. Разработчики оставили единственную возможность — вывод рисунка (bmp или jpg), поэтому желающий нарисовать, например, прямоугольник должен сперва его отрисовать где-то (или взять из библиотек рисунков), сохранить в нужном формате, и далее уже через метку поместить в конкретном месте графика. Вот такой вот «кружок авиамоделизма») Посмотрим как это работает.



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Создание на Lua своего индикатора в графике Quik: основы, нюансы, пример. Индикаторы: прогнозных High и Low следующего интервала; ценовых уровней объема.

   Кратко расскажу принципы и некоторые нюансы работы с графиком в Qiuk в плане создания своего индикатора (здесь и далее – подразумевается использование языка программирования Lua). В конце текста изначально хотел прикрепить видео с демонстрацией и краткими пояснениями работы моих индикаторов, но решил сделать это во второй части статьи, чтобы совместить просто иллюстрацию с небольшим анализом фьючерсов и акций.
   На полноту изложения вопроса по работе с индикаторами на графике Quik не претендую. Информация будет полезна интересующимся данной темой, не рассчитана на профессионалов (которые и так все знают, умеют и реализовали – свято в это верю), но все же предполагает наличие определенного уровня знаний Lua.
   Зачем мучиться со своими индикаторами? Конечно, в этом нет смысла, если вас устраивают стандартные индикаторы или отсутствуют самостоятельные подходы (методы) торговли, либо визуализация вам в принципе не требуется (не интересна).
   В моем случае мне банально захотелось сделать визуализацию своего метода прогнозирования экстремумов цены следующего интервала.



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Qlua: получение данных биржевых свечей с сервера брокера, обработка данных, пишем скрипт выгрузки котировок

Функция CreateDataSource
Получение количества свечек данных
Пауза для подгрузки данных
Получение по инструменту OPEN, HIGH, LOW, CLOSE, VOLUME
Обработка времени и даты
Закрытие источника данных
Примеры: получение данных последних 10 свечей, выгрузка новой минутной свечки после её закрытия, текущее значение простой средней SMA10 по минуткам
Простой скрипт выгрузки котировок

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

Более практичным вариантом является получение данных через функцию CreateDataSource, запрос осуществляется следующим образом:

ds, err = CreateDataSource(код класса, тикер инструмента, интервал)

Код класса: для акций «TQBR», для срочного рынка «SPBFUT».



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Подстройка параметров ТС в процессе торговли

Доброй ночи, коллеги!

Сам то я вроде противник curve fitting.
С другой стороны, все, что делает алготрейдер в процессе поиска Грааля — есть чистый curve fitting (IMHO).

Спешу поделиться собственным успехом.
Уже 3 года как практикую подстройку ТС по предыдущим итогам ее работы.

Подробнее:

1. Гуры СЛ ищут идеальную ТС методом WFT (это к 100 грамм золота — сам я этот метод называю WTF))) ). В действительности все такие шевеления имеют единственной целью поиск стационарного индикатора, который кроет все остальные, как тузик — грелку.
2. Мои скромные вычисления способны убедительно показать, что Грааля идеального стационарного индикатора не существует.

Что остается нам, простым алготрейдерам?

Регулярно подстраивать параметры ТС (IMHO).

Теперь докладываю, коллеги — в этом вопросе я преуспел )))

Мои алго, так же, как в WFT, анализируют прошедший интервал, и оптимизируют параметры торгового алго по его итогам. Ну, т.е. меняют их.
На выходе я имею более стабильную систему, нежели стационарный индикатор, прошедший тест WFT (а такие есть?).

( Читать дальше )

Qlua: пишем скринер акций Московской биржи

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

Нам понадобятся:

1. Таблица для вывода данных (строить уже умеем).

2. Получение данных из таблицы текущих торгов через getParamEx (проходили там же).

3. Тикеры бумаг. Можно взять конкретный список бумаг и работать с ним, но приятнее и правильнее, чтобы скрипт мог автоматом выгружать все торгуемые тикеры из терминала и далее уже отслеживать их динамику. Попробуем это реализовать.

Через sec_list = getClassSecurities(«TQBR») можно получить строку с тикерами акций на Московской бирже, которые будут разделены запятыми. Чтобы пройтись по всем элементам и записать их в массив используем цикл:

for TIKER in string.gmatch(sec_list, "[^,]+") do
  tikers[#tikers + 1]=TIKER
end


Отслеживать будем параметр LASTCHANGE – процент изменения цены от цены закрытия:



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Вопрос к алготрейдерам про оптимизацию эквити

Доброй ночи, коллеги!

Все из нас так или иначе пытаются оптимизировать эквити.

Наиболее модными способами являются:

1. Максимизация результата (значение эквити в конце интервала)
2. Максимизация результата по отношению к просадке

Кстати, в последнем вопросе бытуют разные точки зрения.
К примеру, покойный Марковиц в своей революционной работе максимизировал МО-СКО (отсюда и определенная корявость его формул).
Лично я считаю, что оптимально максимизировать МО/СКО, но это моя личная точка зрения (IMHO).

Тем не менее, жизнь алготрейдера интересна и непредсказуема, и иногда ставит новые задачи.

Так, ваш покорный слуга уже 4+ года разрабатывает и использует в торговле ТС для торговли лимитными ордерами. Лимитная эквити — это очень сложная штука (формула для эквити не только зависит от всего предыдущего массива цен HLC, но еще и нелинейно зависит от индикатора), но она еще и очень чувствительна к количеству совершаемых сделок.

Если не вдаваться в детали, то вкратце — из 2-х ТС при одинаковой доходности на обычном маркетном исполнении при лимитном исполнении будет более доходна та, которая совершает меньшее количество сделок. Т.е. та, которая имеет максимальный показатель прибыль/сделка.

( Читать дальше )

Qlua: завершаем апгрейд советника.

Сегодня дополним наш алгоритм советника следующими пунктами:

1. Пропуск «поздних» сигналов на старте.
2. Обработка советником обрыва связи.
3. Сохранение сигналов и логов в файл.


Еще один пункт, связанный со временем, который был выбран для апгрейда советника – это пропуск сигналов на старте, если запуск скрипта состоялся не в начале торговой сессии (например любой старт после 10:30). Это может быть полезным, если выбрана активная внутридневная стратегия и сигналы полученные на старте скрипта, например в середине дня, могут быть уже не актуальными (с низким потенциалом прибыли) и лучше дождаться новых. Т.е. необходимо разделить сигналы на те, которые сгенерировались на старте и остальные сигналы, которые будем далее брать в работу. Сигнал на старте может закрыться (по обратному/сигналу выхода) и если переоткроется снова, то его уже можно брать в работу как новый.

В нашем скрипте сигналы по каждому инструменту (массив signal) ранее могли принимать значение:

0 – вне позиции по инструменту



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Вопрос к А.Г. по нелинейным индикаторам

Добрый вечер, коллеги!

Как можно понять из моего блога, я люблю изучать разнообразные линейные и нелинейные индикаторы, равно как связанные с ними ТС.
Линейный индикатор — это линейная функция приращений цен. Если она положительна — покупаем, если нет — продаем.
С полиномиальными (квадратичными, кубическими etc.) индикаторами все устроено ровно так же.

К примеру — моментум, пересечение МА с ценой, пересечение двух и более МА — это все линейные индикаторы.
Пересечение курсом полос Боллинджера — это квадратичный индикатор.

Индикаторы можно комбинировать.
Например, трендовый индикатор (МАшки?), совмещенный с полосами Боллинджера, это кубический полином от приращений цен.

Теперь вопрос к уважаемому А. Г.

1. С одной стороны, А. Г., ссылаясь на ЦПТ (центральную предельную теорему), принимает за разумную модель процесс с нормальными приращениями цен (возможно зависимыми) и нестационарными МО и дисперсией.

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

( Читать дальше )

Определение тренда - опыт дискуссии с уважаемым 3Qu

Добрый вечер, коллеги!

Дискуссия навеяна smart-lab.ru/blog/923792.php#comment15897236

Уверен, на СЛ 99.9% резидентов (кроме меня, а нас всего около 1000 ))) ) знают, что такое тренд.

Но, обычно, либо приводят классическое определение Доу (нестрогое), либо объясняют на пальцах, либо дают расплывчатые определения.

Для работы же и формализации определение должно (желательно) быть четким.

В математике для этого присутствуют 2 метода — аналитический и синтетический.

Аналитический — это явное вычислительное определение.
Вариант — тренд — это угол наклона линиии регрессии (больше 0 — тренд, меньше 0 — контртренд, 0 — боковик).

Плюс — все четко и понятно.
Минус — большинство боковиков будет классифицировано как тренд.

Синтетический — желаемый набор аксиом (свойств).
Вариант — аксиома T3: если на каждом из двух пересекающихся интервалов тренд растущий, то на совокупном объединенном интервале он также растущий. Ну или если на двух интервалах растущий, а на их пересечении растущий/боковик/падающий (нужное подчеркнуть), то на объединенном интервале растущий.

( Читать дальше )

....все тэги
UPDONW
Новый дизайн