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

по

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

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

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

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

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: если на каждом из двух пересекающихся интервалов тренд растущий, то на совокупном объединенном интервале он также растущий. Ну или если на двух интервалах растущий, а на их пересечении растущий/боковик/падающий (нужное подчеркнуть), то на объединенном интервале растущий.

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

Пара строк в гроб теоретико-вероятностному подходу к рынкам

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

Я не перестаю удивляться количеству людей, которые пытаются лечить свои фрустрации от рыночных лоссов путем изучения учебников по ТВиМС. Ну т.е. я ни разу не против любой научной и околонаучной деятельности (успешно тренирует мозг), но всячески не рекомендую рассчитывать на будущие профиты на основании вновь приобретенных знаний.

К примеру, я до сих пор пытаюсь расколоть крепкий орешек задачи максимизации «правильной» эквити. Эта задача легко решается при наличии квантового компьютера в 512+ кубит и крайне тяжело во всех остальных случаях.

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

Пусть x(i) — это цены
Пусть d(i) = x(i) — x(i-1) — это приращения цен

Составим 2 выражения (формульный синтаксис взял из Excel — чтобы было меньше вопросов)

1. сумм(d(n)*(ЗНАК(d(n-1))+ЗНАК(d(n-2)))*abs(d(n-1)))
2. сумм(d(n)*(ЗНАК(d(n-1))+ЗНАК(d(n-2)))*abs(d(n-2)))

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

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

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

1. Получение биржевых данных через функцию getParamEx
2. Выгрузка списка параметров функции getParamEx через DDE из торгового терминала
3. Создание пользовательских таблиц в торговом терминале


Одна из особенностей работы через квик это то, что можно получать достаточно большой объем биржевой информации по интересуемым инструментам. Большинство других платформ для алгоритмической торговли и терминалов в РФ будут выдавать только цену открытия, максимум/минимум дня, последнюю цену, цену закрытия, объемы по инструментам и максимум еще 3-5 каких-то дополнительных пунктов. В распоряжении тех, кто использует qlua огромная матрица параметров таблицы текущих торгов.


Получить их можно через функцию getParamEx:

getParamEx(код класса актива, инструмент, параметр), где:

код класса: например в случае акций это «TQBR», а в случае срочного рынка «SPBFUT».
инструмент: тикер.
параметр – один из параметров для соответствующей группы инструментом (об этом подробнее ниже).


Функция возвращает таблицу со следующими полями:



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

Получение тикеров торгуемых бумаг через getClassSecurities

Благодаря наводке @quant_trader (за что отдельное спасибо!), переписал свой первый скрипт из поста https://smart-lab.ru/blog/916765.php по выгрузке из терминала всех торгуемых бумаг. Теперь всё выполняется штатными средствами с помощью getClassSecurities.

Далее второй скрипт (из поста выше) выгружает из торгового терминала под закрытие дня (под закрытие основной, либо вечерней сессии — можно устанавливать, я делаю обе выгрузки) необходимые данные по всем бумагам списка.

Особенности запроса. Если ввести:

sec_list = getClassSecurities("TQBR")<br />message(sec_list)

то терминал выдаст строку, где через запятую будут все тикеры, при этом видим, что список не полон, обрывается на RTSB:

Получение тикеров торгуемых бумаг через getClassSecurities

Как выяснилось, это связано только с ограничением самого терминала на вывод строки (не более 899 символов).

При этом если посмотреть длину строки, то будет видно, что символов больше:

sec_list = getClassSecurities("TQBR")
message(tostring(string.len(sec_list)))

выдаст 1281

Разбив строку по запятым получим весь массив тикеров для дальнейшей работы:



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

Доходность к получению

Напомним основные различия между YTM и HPR. 

YTM (yield to maturity)  — доходность к погашению, номинальная или эффективная, в зависимости от контекста. Это ставка дисконтирования, при которой приведенная стоимость потока платежей по облигации равна ее рыночной цене. Методики расчета YTM есть на сайте Мосбиржи. В Quik и брокерских приложениях указывается эффективная доходность. Ее можно вычислить и самостоятельно при помощи функции Excel ЧИСТВНДОХ(..) /XIRR(..)/ При расчете YTM  неявно предполагается, что облигация удерживается до погашения и все получаемые купоны реинвестируются под эту же ставку. Иными словами, это априорная оценка доходности, рассчитываемая заранее. 

HPR  (holding period return) — реализованная доходность за время удержания позиции. Именно она важна для инвестора, так как отражает  финансовый результат в течение срока владения облигацией. Этот срок может быть любым; предполагается, что по его истечении облигация продается или погашается.



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

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

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

Давеча случилось чудо событие — удалось построить линейно-квадратичный прогноз будущего приращения цены по предыдущим приращениям.
И такой нарядный, что статистически значимо превосходит линейные прогнозы, а прибавка к эквити составляет +25% (в смысле умножить на 1.25, что немало, но это только начало).

Соответственно:
1. Если приращения цен образуют многомерное нормальное распределение (и пох на корреляции), то наилучший прогноз будущего приращения цены = условное МО = линейная функция от предыдущих приращений цен
2. Если нелинейный прогноз систематически работает лучше — про Гаусс можно смело забывать

Что вы думаете по этому поводу, коллеги?

P.S. Вопрос скорее к опционщикам, т.к. «нормальные» трейдеры (за редким исключением) не основывают свои ТС на гипотезе нормальности приращений цен

Вопрос к алготрейдерам про мани менеджмент (нужен ли он?)

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

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

У алготрейдеров (на первый взгляд) все проще.
1. Запустил тест системы, посмотрел на процент прибыльных и убыточных сделок, на среднюю прибыль и средний убыток
2. Посчитал по Келли плечо и/или долю капитала
3. Первый шаг на пути к хуллиарду сделан

В жизни все, конечно, не так. Жизнь — жестче © Армянское радио.

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

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

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