Блог им. AleksandrBaryshnikov

Как я рассчитываю и использую сигналы ТА в торговле

    • 12 августа 2023, 00:01
    • |
    • bascomo
  • Еще

В этом посте:

  • вводная часть
  • понятие «сигнал»
  • примеры классических сигналов
  • мой подход к определению сигналов
  • как использовать подход
  • оценка качества сигналов
  • пример стратегии, основанной на сигналах
  • заключение

Введение

У нас обещанного три года ждут, но я справился быстрее.

Начинал я, как и многие другие, не скажу, что с анализа, но с просмотра свечных графиков и графиков индикаторов. Думаю, что точно так же, как и другие, на их основании строил свои торговые системы. Знакомился с торговыми системами других. Обнаруживал, что они тоже работают по сигналам. По сигналам индикаторов, чего сами люди иногда, порой, даже и не понимали и не были способны формализовать. Еще самом начале процессе знакомства с биржей и торгами в голову пришла идея о том, что хорошо бы использовать сигналы разных индикаторов, комбинируя их между собой, чтобы найти оптимальные точки входа и выхода. Значительно позже в голову пришла идея о том, что те сигналы, которые мы видим на стандартных графиках — это лишь верхушка айсберга тех данных, которые мы можем использовать для статистического анализа и что на самом деле их гораздо больше. Родилась гипотеза о том, что их тоже можно и нужно использовать для торгов. Поскольку, скорее всего, ими никто другой не пользуется, поскольку их не видят, они должны быть эффективнее, чем те стандартные сигналы, которые описаны в методиках использования индикаторов их авторами. Концентратом этой идеи является данный пост.

Что такое «сигнал»

Итак, что же такое сигнал? Я несколько примитивизирую это понятие, сказав, что сигнал либо есть, либо его нет. Соответственно, мы видим сигнал, как «истину» или «ложь». Или как «да» или «нет». Обычно, как я писал ранее, под сигналом понимают принятие решения о входе или выходе из позиции. Например, по любому индикатору в интернете можно найти много руководств о том, как их использовать. И в этих руководствах, как правило, сигнал состоит из нескольких условий. С моей точки зрения, каждое такое условие есть отдельный атомарный сигнал. Решение на вход или выход, а равно на открытие или закрытие позиции мы принимаем на основании комплекса таких атомарных сигналов. Поэтому далее под понятием сигнала я буду понимать некоторую величину, которая может принимать два значения: истина или ложь, и специально акцентирую внимание на том, что сигнал не может быть составным. Сигнал всегда атомарный, неделимый, не состоящий из других сигналов. А комбинация сигналов даёт нам решение на сделку.

Примеры классических сигналов

Для пояснения понятия ниже привожу примеры сигналов.

Свечные сигналы

Как я рассчитываю и использую сигналы ТА в торговле

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

Сигналы индикаторов

Как я рассчитываю и использую сигналы ТА в торговле

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

Сигналы осцилляторов

Как я рассчитываю и использую сигналы ТА в торговле
Посмотрим на моментум. Для него есть нормативное значение — 100. Один из сигналов — когда моментум выше 100. Это означает, что следует быть готовым к продаже.

Мой подход к определению сигнала

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

Типы сигналов: статические

Во-первых, я разделяю сигналы на статические и динамические. Что это означает? Статический сигнал — это такой сигнал, для вычисления которого достаточно данных только текущей свечи. Например, чтобы вычислить сигнал по индикатору «Моментум» из примера выше, нам нужно знать только константу 100 и значение Моментума. Это можно сделать в границах одной свечи, не заглядывая в прошлое, на момент её завершения, разумеется.

Типы сигналов: динамические

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

Категории сигналов

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

Чуть сложнее выглядит идея сигналов категории продолжения. Это означает, что мы получаем этот сигнал с момента его возникновения и до момента появления зеркального сигнала. Для примера давайте посмотрим на осциллятор Стохастик. Когда быстрый Стохастик пересекает медленный сверху вниз — это сигнал на продажу. Сигнал продолжения будет работать с момента такого пересечения и до тех пор, пока быстрый Стохастик не пересечет медленный в обратном направлении. Эта категория является зависимой и её можно посчитать от некоторых других сигналов, например, пересечения или прохождения экстремума. Таких сигналов тоже будет два и они тоже взаимоисключающие.
Как я рассчитываю и использую сигналы ТА в торговле
Сигналы категории области значений также удобно продемонстрировать на примере Стохастика. По классике работы с осциллятором есть предопределенные диапазоны от 0 до 20, от 20 до 80, и от 80 до 100. Соответственно, областей значения Стохастика будет 3 для каждого временного ряда. Таким образом, для двух временных рядов (быстрого и медленного Стохастика) мы получаем 6 сигналов категории области значений, которые будут нам говорить, в какой области и какой временной ряд находится на текущей свече.

Нуль-центрированные и значение-центрированные сигналы похожи, за той разницей, что нуль-центрированные сигналы в качестве константы используют нуль, а значение-центрированные — конкретное значение. Их суть — показать, является ли значение временного ряда выше, равным или ниже нуля или определённой константы. Работу этих сигналов удобно продемонстрировать на примере Моментума, который был показан в примере выше. Для Моментума значением является константа 100, и значение Моментума выше этой константы будет включать один сигнал, а ниже — зеркальный.
Осциллятор MACD колеблется вокруг нуля, и потому для него можно рассчитать нуль-центрированные сигналы по тому же принципу, что и с Моментумом. Однако, в MACD три временных ряда, а не один, как в Моментуме, поэтому сигналов для MACD будет 6, а не два.
Почему два и шесть, а не 3 и 9? Статистическая значимость сигнала, когда временной ряд равен нулю или константе, почти отсутствует, поэтому этот сигнал я исключил. Но можете проверить самостоятельно.

Пояснение: осцилляторами я называю такие индикаторы, которые не находятся в диапазоне цены инструмента. Поэтому, например, средняя скользящая или Боллинджер — это индикатор, а Стохастик, Моментум и MACD — осцилляторы.

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

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

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

Сигналы прохождения экстремумов возникают тот момент, когда производная становится равной нулю. То есть, они возникают в моменты разворотов временного ряда. Тут будет тоже 2 сигнала: разворот вниз и разворот вверх, безотносительно зоны разворота.

Производные сигналов

Помимо всех этих сигналов, мы можем также посчитать производные для временных рядов: первую и вторую.
Первая производная будет нам говорить о скорости изменения временного ряда, а вторая — о темпах изменения этой скорости. Таким образом, мы можем добавить ещё 2 категории сигналов к тем, что приведены выше:
  • скорость изменения
  • темп изменения скорости
Поскольку временной ряд может двигаться как вверх, так и вниз, то и значения производных могут быть положительными или отрицательными. Поэтому, дополнительно, мы можем посчитать абсолютные значения и рассчитать сигналы на их основании:
  • абсолютная скорость изменения
  • абсолютный темп изменения
Значений по каждому кортежу будет так же три: растёт, не меняется, уменьшается. Отмечу, что с помощью производных я детектирую импульс.

Видимые и невидимые сигналы

Поразмышляв над изложенным выше, можно прийти к выводу, что все сигналы мы можем разделить на 3 группы. Первую группу человек глазами на графике может легко увидеть, идентифицировать и принять решение. Со второй группой может быть посложнее, а уж торговать на ее основе — точно затруднительно. Третью группу человек не увидит вообще, поскольку эти данные являются производными от того, что видно на графике. По этим причинам много информации остается вне зоны нашего внимания и осознания и не участвует в принятии торговых решений. Между тем, я уверен, что некоторые отдельные трейдеры эти данные тоже используют, но используют интуитивно, ориентируясь на некую свою внутреннюю чуйку и не смогут даже объяснить, почему приняли такое решение — оно просто сработало. Делов  том, что они годами смотрели на графики и совершали сделки, и отдельные зоны в мозге научились видеть эти закономерности в картинках и связали их с успешными сделками. Но объяснять они, конечно, не учились и не умеют — даже не способны. Я же хочу вывести это в рациональную плоскость, с целью понять и объяснить механику процесса.
Короче говоря, просто глядя на график, многое теряешь.

Список сигналов

Как вы поняли, для каждого индикатора будет своё число сигналов, в зависимости от того, что он из себя представляет — будут рассчитываться только релевантные. Как краткое резюме, привожу список сигналов, которые я использую для торговли:
  • AboveArea
  • AboveIndicator
  • AboveValue
  • AbsSpeedFall
  • AbsSpeedGrows
  • BelowArea
  • BelowIndicator
  • BelowValue
  • Convergence
  • CrossDown
  • CrossDownContinues
  • CrossUp
  • CrossUpContinues
  • DirectionDown
  • DirectionUp
  • Divergence
  • EqualValue
  • ExtremumHigh
  • ExtremumHighContinues
  • ExtremumLow
  • ExtremumLowContinues
  • InArea
  • SpeedFall
  • SpeedGrows
  • ZeroAbove
  • ZeroBelow

Как использовать подход

Уфф! Ну вот, получил целую кучу сигналов. Что теперь с ними делать? Сразу оговорюсь, что часть из них — шлак, а потому надо понять, какие  из них рабочие, а какие — нет, какие применять для входа в длинные сделки, а какие в короткие, и какие сигналы эффективнее прочих. Ну а дальше использовать для торговли. Такую оценку можно провести несколькими способами, о чём рассказываю ниже.
Разметка лучших баров

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

Так выглядит процесс в моей реализации:
Как я рассчитываю и использую сигналы ТА в торговле

Ну а далее просто провожу статистические расчёты:

  • как часто каждый конкретный сигнал появляется на свечах покупки или продажи — это определит, является ли этот сигнал сигналом на покупку или на продажу
  • и после этого как часто сигнал срабатывает правильно / не правильно — на той свече, к классу которой он отнесён (покупка или продажа) — точность сигнала

Рандомный поиск

Это вариант для продвинутых, в некотором смысле. Может быть, он даже лучше, чем то, что изложено выше. Во всяком случае, я перешёл к нему. Смысл заключается в том, что я рандомно, случайным образом выбираю сигналы для входа и для выхода (конечно, не вручную), а затем проторговываю их на истории цен, с верификацией — такой, какая нравится, например, walk forward.

Отмечу, что по сути, в принципе, этот вариант ничем не отличается от того, что использует большинство алгоритмических трейдеров, за исключением того, что сигналы выбираются случайным образом, а не зашиты в код. Используя классические техники и классические терминалы, эта задача может показаться неразрешимой из-за большого числа сигналов (348!) и огромного времени на перебор всех возможных комбинаций. По этой причине нужно использовать другие подходы, оптимизационные, которые позволят массово исключать подмножества априори неработающих комбинаций сигналов на вход и выход, и сосредоточиться и развивать те комбинации, которые работают и дают нужный мне результат. Понятно, их число огромно.

Я рассчитал 348 флагов на 15 индикаторах для каждой свечи. Пара индикаторов — моей собственной разработки. А есть ещё свечные формации вроде трёх солдат. Сами по себе они черта не работают, но в комбинации с другими сигналами дают хорошие результаты — они повышают вероятность точности определения точки разворота тренда, например. Но, подчеркиваю, еще раз  — в совокупности с другими сигналами. При этом ничего не мешает посчитать сигналы и по другим индикаторам, которые я в свой пакет не включил. Может быть, даже вы увидите что-то, что я упустил на графике и какие-то еще сигналы, которые можно посчитать на основе той информации, которая представлена в графиках, — делитесь идеями об этом в комментариях.

Что тут важно? Нужно понимать, что чем больше поляна, тем больше вы соберете ягод и грибов. Пресекая на корню дискуссии о переподгонке и переоптимизации из-за большого числа сигналов, хочу сказать следующее. Во-первых, число сигналов на вход и число сигналов на выход выбираете вы. Хотите, используйте 2 штучки на вход, 2 штучки на выход. Из опыта, похоже, что большинство стратегий по такому принципу и работают. Вы можете использовать и 5, и 7 сигналов на вход и столько же на выход. Число сигналов на вход не обязано совпадать с числом сигналов на выход, между прочим. Если вы, конечно, найдете хоть какие-то комбинации сделок с таким числом сигналов.

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

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

Оценка качества сигналов

В таблице на рисунке ниже приведена статистическая оценка сигналов и их качества, основанная на методике из раздела «Разметка лучших баров», который вы прочитали выше. Для примера я взял сигналы, которые использованы в примере стратегии, описанном ниже.
Как я рассчитываю и использую сигналы ТА в торговле

В таблице приведено наименование сигнала, временной ряд, к которому он относится и веса принадлежности сигнала к направлению «покупка» или «продажа», а так же его точность. Видно, что в строках 1-3 сигналы классифицированы, как сигналы, на которые следует опираться при принятии решения о покупке (% buy weight > 50). В строке 4 и 6, напротив, сигналы следует использовать при принятии решения о продаже (% buy weight < 50).

Отдельно хочу обратить внимание на строку 5. По сути, сигнал выглядит, как мусорный и на совершение сделок вроде бы как не влияющий, однако это может быть и не так. Поясню: дело в том, что комплексный сигнал является логическим произведением всех сигналов на сделку (в данном случае — логическое И всех сигналов в строках 4-6). А в таблице, что выше, приведены сепарированные расчёты для каждого сигнала без учёта влияния на него других, так как комбинации сигналов могут быть любыми, как вы понимаете. Поэтому здесь нельзя сказать, что этот сигнал мусорный или не значим и его можно исключить. Нужно провести исследование, и если после исключения этого сигнала результат не изменится — то в реальной торговле, конечно, его можно исключить, ещё больше упростив алгоритм. Лично я в таком упражнении смысла не вижу.

Пример стратегии, основанной на сигналах

Ниже на диаграмме изображена кривая доходности по криптовалютному фьючерсу XMRUSDT. Период виден внизу диаграммы.  На оси слева мы можем видеть доходность в процентах. Чёрная линия — это, собственно, рост капитала, а так же на диаграмме видно, как менялась рыночная цена в привязке к точкам роста — сделкам (Market Price). Кроме того, на графике нарисована линия максимальных достигнутых значений в ходе торгов (MaxSTD), кривая идеального роста (EtalonSTD), а так же усреднённая кривая по методу наименьших квадратов, которая практически совпадает с идеальным ростом (rsquare_RevenueSTD), но это частный случай — обычно они не совпадают.

Сигналы входа и выхода представлены такой строкой:
B:AMA/Close_AboveIndicator;B:ThreeBlackSoldersC_SpeedGrows;B:ThreeBlackSoldersL_AbsSpeedGrows;S:RSI_ExtremumLow;S:SMA/HMA_Divergence;S:SMA/HMA_BelowIndicator;M:ShortAllowed;
Давайте я её расшифрую. Начну с конца:

M:ShortAllowed;
Означает, что данной стратегии разрешены только короткие сделки. Соответственно, входом будет продажа (S), а выходом — покупка (B).

Вход осуществляется, когда все три сигнала истинны:
S:RSI_ExtremumLow; — кривая осциллятора RSI достигла минимального значения и начался её рост.
S:SMA/HMA_Divergence; — кривые SMA и HMA расходятся.
S:SMA/HMA_BelowIndicator; — HMA ниже (меньше), чем SMA.

Выход осуществляется, когда все три сигнала истинны:
B:AMA/Close_AboveIndicator; — Close текущей свечи выше AMA.
B:ThreeBlackSoldersC_SpeedGrows; — скорость «трёх белых солдат растёт»
B:ThreeBlackSoldersL_AbsSpeedGrows; — абсолютная скорость «трёх чёрных солдат» растёт.

По поводу двух последних строк требуется пояснение. Дело в том, что эти солдаты — это не временной ряд, сами по себе, а комплекс из трёх свечей — пресловутый паттерн. И здесь имеются ввиду не они, а их сигналы. То есть, пять восходящих свечей дадут нам 3 сигнала ThreeBlackSoldersC — на 4-й, 5-й и 6-й свече. Соответственно, значение сигнала ThreeBlackSoldersC_SpeedGrows изменится с 0 (ложь) на 1 (истина) на той свече, где первый раз увидим формацию «три белых солдата» — четвёртой.
Аналогично для ThreeBlackSoldersL_AbsSpeedGrows.
Буквы C и L в конце названия определяют методику определения трёх солдат — по Close или по High/Low.

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

И короткая ремарка относительно того, как была получена эта стратегия. Исследования (то есть, рандомный поиск стратегий, как он описан выше — а картинка работы механизма приведена в конце поста) осуществлялись на интервале 01.05.2022 — 31.05.2023. В данном случае взята одна из полученных стратегий, которой скормлен ценовой ряд за июль и небольшую часть августа. Никакой подстройки стратегии не осуществлялось — в моей концепции «подстройки параметров», чем заняты большинство алготрейдеров, не предусмотрено.

Как я рассчитываю и использую сигналы ТА в торговле

Заключение

 

Как уже говорилось ранее, можно использовать массу различных индикаторов, чтобы сгенерировать сигналы на их основании. Также можно создать сигналы на основании данных стакана, на основании тиков или на основании других данных технического анализа — горизонтальных и обычных объёмов, уровней, открытого интереса и так далее. Единственное требование — сигналы должны выдавать на выходе ИСТИНУ или ЛОЖЬ.

Проще не значит лучше?

По моему мнению, сложность описываемой идеи заключается только в её комплексности. На атомарном же уровне, на уровне простого кирпичика, понятно, что все очень просто, если не сказать — примитивно. Никакой высшей математики здесь нет, только статистика. А потому ее может использовать любой трейдер. Хотя, думаю, этот подход всё же ближе к алгоритмическому трейдингу по понятным причинам — нужно много посчитать и много протестировать, чтобы получить готовую стратегию. Но это этап исследования. Что же касается самой торговли — видно, что стратегии получаются весьма простыми, поэтому, думаю, и для ручной торговли они вполне могут сгодиться. В этом контексте их очевидным плюсом является ещё и жёсткая, абсолютная формализация правил входа и выхода. Никаких ощущений, никакой интуиции, сколько вешать в граммах — указано абсолютно точно и без разночтений.

Движение в сторону нейронных сетей

Я думаю, что тот, кто раньше уже имел дело с нейросетями, уже понял, что такой набор бинарных флагов, которые нам дают сигналы по этой методике, является наиболее желанным кормом для любой нейросети. По сути, это будет вектор из нулей и единиц, в моём случае длиной 348. Тут даже не будут нужны слои нормализации или защиты от переобучения, да и вообще сеть будет, похоже, линейной, небольшой. Можно сделать один выход — в случае регрессии и предсказывать вероятность от 0 до1, где стремление к 0 — это будет, например, покупка, а к 1 — продажа. Но ещё лучше сделать сеть с вектором на выходе, содержащим три значения, которые будут соответствовать трём действиям — купить, держать, продать, а каждый из них — вероятность от 0 до 1 соответствующего действия. Учиться такая сеть тоже будет очень, очень быстро. А потому, если у нас есть размеченные покупкой или продажей свечи и посчитанные сигналы для каждой свечи, мы можем скормить все эти данные нейросети и использовать ее для определения вероятности успешности входа и выхода на конкретной свече. И, оценивая эту вероятность, принимать решение.

Тут важно отметить только то, что такие сети должны быть регрессионными или классифицирующими, поскольку они не будут предсказывать будущее. Они будут говорить, что при определённой комбинации сигналов В ПРОШЛОМ вероятность успеха больше, если купить. Или продать. Ну и, поскольку никакая нейросеть не может быть точной на 100%, следует использовать механизмы защиты при такой торговле.

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

Поиск стратегий (торговых алгоритмов)

Если использовать подход, базирующийся на определении сигналов, как описано в данном посте, то для исследования необходимо создать отдельную подсистему, которая быстро и эффективно будет находить такие комбинации сигналов входа и выхода из 348!, которые будут являться профитными на желаемом отрезке времени. Кто-то ищет стратегии, которые будут работать годами, я сконцентрирован на более коротких стратегиях. В любом случае, описанный тут подход применим и там, и там. На самом деле, этот подход даёт десятки тысяч годных стратегий, и высока вероятность, что если вы опишите сигналами свои стратегии, то описанными механизмами найдёте и свою, и усовершенствованную версию своей, и стратегии, базированные на вашей или с элементами вашей. Наконец, прикреплю картинку, на которой видно, как работает алгоритм поиска профитных стратегий среди всего многообразия сигналов и на этом, пожалуй, закончу. Спасибо тем, у кого хватило терпения прочитать весь этот текст до конца :)
Как я рассчитываю и использую сигналы ТА в торговле

★17
60 комментариев
Все из перечисленных индикаторов, осцилляторов завязаны на ТФ.
Измените его и показатели резко поменяются. Какой смысл в таких стратегиях, если от главного параметра зависит их результативность?
avatar
Fairman, а зачем вообще что то менять? так в принципе можно сказать — измени параметры индикаторов — результаты другие будут. измени инструмент — результаты другие будут. так оно и понятно. но зачем если и так хорошо?
Валерий Борискин, чтобы стало «хорошо», надо определить, на каком ТФ это «хорошо» чаще всего происходит. А если перебирать разные временные рамки, то это называется подгонка и оптимизация.
Более того, человеческая природа такова, что трейдер постоянно будет смотреть на состояние индикаторов на разных ТФ, сравнивая их и выискивая подтверждение или опровержение мнимой точки входа/выхода.
И последнее: все вышеописанные индикаторы построены на временных рядах на основе прошлых значений цен. Это не работает для прогнозирования! На мой взгляд, лучше использовать информацию о свершившихся сделках участников, анализируя её и принимая решение, о том куда с большей вероятностью пойдет цена на основе полученных результатов невзирая на величину ТФ.
avatar
Fairman, а я считаю так, протестировал, — кривая доходность есть, как у топикстартера, кривая нормальная. на ней и надо торговать. ограничил риск — квартал отторговал. если норма — торгуешь еще квартал. и так поквартально, пока сбой не произойдет на каком-то из кварталом. потом только оптимизировать. и торговать по-новому поквартально. потому что теоретически можно много кварталов торговать в плюс, пока сбой не произойдет. а иначе получается бесконечная оптимизация.
Валерий Борискин, проблема в том, что один неудачный квартал может перечеркнуть все предыдущие. Но, в целом, при контроле рисков, вы правы
avatar
Шел 2023 год, зумеры придумали теханализ
avatar
avatar
Я думаю, что тот, кто раньше уже имел дело с нейросетями, уже понял, что такой набор бинарных флагов, которые нам дают сигналы по этой методике, является наиболее желанным кормом для любой нейросети.

Блеванет она с такого корма...

PS. Не является инвестиционной рекомендацией.
avatar
Redline, это тема отдельного поста))
avatar
Никакой высшей математики здесь нет, только статистика.


Такие посты мне нравятся. Такой подход мне близок. 

Поясню:

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

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

 

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

avatar
Redline, каждый раз с нуля ищет на первой эпохе, а на следующих уже наследованием. Но то, что ранее было найдено и записано в базу, уже не используется. Хотя можно и такой вариант реализовать. В таком случае придётся ещё раз проходить через полный цикл — разработка — технологическое тестирование — логическое тестирование — встраивание в текущие механизмы — опять тестирование. Лень мне. И так всё работает выше всяческих похвал. Когда-нибудь, возможно.
avatar
Redline, скажу очень просто: искатели грааля — это те, кто ищет лес, но «за деревьями леса не видят». У меня много, много деревьев. Я уже в лесу.
avatar
Redline, и не надо доверять, надо проверять.
avatar
искатели грааля — это те, кто ищет лес, но «за деревьями леса не видят».


Варварские обычаи: ключи раздают, а замков нет. Маргадон
youtu.be/yCWGwApxYQY
avatar
Tуземец, Не умеете лгать, молодой человек. Все люди разделяются на тех, которым что-то надобно от меня, и на остальных, от которых что-то нужно мне.
avatar
bascomo, 
avatar
Tуземец, но этот вариант мне нравится больше.

Видишь ли, мой друг, все люди делятся на два сорта: те, у кого револьвер заряжен, и те, кто копают. Так что — копай.
avatar
разбудите меня, когда программы опубликуют, — ладно?
avatar
Ho_Chu, Под лежачий камень вода не течёт.
avatar
Поскольку временной ряд может двигаться как вверх, так и вниз, то и значения производных могут быть положительными или отрицательными.
И всё так чинно, благородно...

Выйти из режима post processing, расширить понимание помогает Merlijn van Veen, он инженер и учитель. Почитайте у него про реально работающие сигналы и индикаторы, про Coherence and Reverberation, почему не все данные являются данными, и как их различать. Почитайте Bob McСarthy у него есть важные вещи, почему Impulse это сигнал на  среднесрок и почему он неадекватен как IR-индикатор. Bob в нашем деле вообще человек — легенда, его TF в координатах Quasi-logartihmic scale это современный способ анализа тренда.
avatar
MPlus, Зачем?
avatar
bascomo, Потому что экономика и математика это гуманитарные дисциплины, и это нужно преодолеть. Проверено электроникой, что методы RTA анализа  (= TA) не надёжны   и остались для начального образования.
avatar
MPlus, могу только порадоваться. Но меня лично в том, что и как я делаю — всё устраивает. Я не понимаю, зачем меня к своим религиям пытаются приобщить :)
avatar
MPlus, это походу методы анализа звука? Данные сильно различаются
avatar
EY, да, это всё про звук
avatar
делаете vst — плагин, направляете через парсер данные с терминала и смотрите как красиво в мультитреке, а главное, тик в тик
avatar
MPlus, ого 
avatar
bascomo, а чего стесняться. уже кейпады для трейдеров делают, фейдеры и пады назначаемые под терминал, чувствительность, уровни и глубина коррекции задаются под свой стиль

Для тестирования на истории столет как рекордеры придуманы, брать нужно с питч-контролем.
avatar
Redline, 
Остаётся вернуться к тесту этого подхода

Результаты теста должен автор продемонстрировать, показывая результы торговли онлайн. Пытаться делать это каждому на своем депозите не рекомендуется…
avatar
Makstrade, автор никому ничего не должен 
avatar
Redline, а вот Газпром.



И природный газ.




avatar
bascomo, а на случайном блуждании посмотри что покажет, нам можешь не показывать )
Пафос Респектыч, тебе надо — ты и смотри. Что ж вы все ленивые такие. Пи$деть все горазды, а чё сделать — как крысы по углам спрятались.
avatar
bascomo, мне что надо я конечно же смотрю, а тебе это не надо чтобы не разочаровываться, я понял ) а то вдруг она у тебя всё-таки рубит бабло на случайном-то блуждании нулевом? ) может всё-таки глянь? )
Пафос Респектыч, дорогой, мне хватит того, во что $1000 на бинансе превратилась с 23 июня. Я, видишь ли, бесполезными упражнениями заниматься не привык, не моё это. Это тест получше случайного блуждания. На СЛ, кстати, его единицы прошли, а остальные до сих пор так и блуждают, из одного случайного поста в другой. Ни дать ни взять броуновское движение.



avatar
bascomo, да я уже понял что просто не терпится похвастаться, ничего, это пройдёт )
Пилите, коллега, она золотая 100% )
prostoiaga, Превосходно. Регистрируй следующий аккаунт
avatar
Так и не понял, почему ваш метод выбора лучших сигналов рандомным перебором не является подгонкой). Это ещё больше подогревает интерес к реальным результатам на дистанции))).

p.S.
«Делов том, что они годами смотрели» (пробел)

«Сами по себе они черта не работают» (частичка не переставлена)

avatar
Леха «my-trade», всё является подгонкой, вопрос лишь в её степени. Можно поискать стратегии, которые работают годами, но мне лень :) 
avatar

я понял, что мне не нравится в этой теме
...
мне в ней не нравится то, что упомянуты вполне конкретные паттерны типа 3 солдата
...
а в прошлых темах шла речь о том, что какие-либо паттерны вообще не используются
… либо неувязочка, либо я невнимательно читаю

avatar
Ho_Chu, В тексте я написал, почему. И вопрос: а почему должно нравиться-то?
avatar
bascomo, 

чтобы ответить на этот вопрос надо все тщательно перечитать

а для неокрепшего ума это может оказаться сложным
avatar
bascomo, Я бы по меньше распылялся на такие темы, как грится «Болтун находка для шпиона». Всё сказанное в сети, наматывается на харды и доступно для анализа синтетическим интеллектом. Люди эту инфу могут переваривать годами, а вот ИИ заточенный на поиск алгоритмов, скажет спасибо за ваше потраченное время и за идею. Чел отличается от ИИ тем, что может  выдавать идеи, а ИИ этого не может, он всё черпает из сети.
avatar
BearBull, Идея очевидна и проста. Её реализация сложная. И такого ИИ, о котором идёт речь, ещё нет, но скоро появится. Но тогда это будет уже не важно. Не факт, что человечество это событие переживёт.
avatar
а сколько времени занимает рассчет оптимального торгового пути для 1 инструмента на одном компе, если считать, скажем 1млн строк данных? где то полтора суток плюс минус?
avatar
Михаил Табаков, Для биткоина за всё время его котирования на бинансе - это несколько лет минутных баров - минут 5-7.
avatar

Спасибо за идею разметить идеальные точки входа/выхода и прогнать по ним набор своих сигналов.


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

 

И по скорости такой прогонки — на последнем скриншоте видно, что тестирование за месячный интервал проходит за ~5-6 минут. Это действительно так или времени всё же больше уходит (на скрине явно какие-то операции продолжаются)? На каком языке пишете?

 

У меня сейчас просчёт нескольких сигналов на годовом интервале — от 10 до 20 минут. Если добавить вместо двух индикаторов пару сотен, это займёт, похоже, на порядок-другой больше времени. Можно, конечно, закешировать расчёты по индикаторам, чтобы потом гонять их показания как угодно, но всё равно будет очень долго.

avatar
Андрей Борисов, Мне не понятно, а как индикатор может не подойти под какой-то актив? OHLCV везде одинаковые. Сигналы индикаторов, соответственно, тоже. На последнем скрине поиск торговых систем, а не проверка индикаторов/сигналов. Поэтому вопрос не понятен. Там одна эпоха занимает столько времени, но это не проверка индикаторов. Я пишу на C#
avatar

bascomo, под проверкой индикаторов я имел ввиду подбор их комбинаций для торговых систем.

 

Насчёт не универсальных индикаторов — да, использовать можно любые индикаторы где угодно, но, глядя на поведение некоторых конкретных «бумаг» могут рождаться идеи, которые будут работать именно на этих бумагах. Вы, в общем-то, правы: если родилась идея нового индикатора на конкретной бумаге, то почему бы не прогнать его и на других.

avatar
Андрей Борисов, Теоретизировать, рассматривая глазами - это самообман, лучше прогнать тест. У мну там были такие этапы: 1) Поиск оптимального пути 2) Расчёт индикаторов и флагов и статистики, как часто и как точно какой сигнал попадает в нужное место 3) Отброс совершенно очевидно мусорных сигналов по этой статистике 4) Конструирование торговых систем из оставшихся сигналов
avatar
Андрей Борисов, Обычно большинство совершает одну и ту же ошибку - рассчитывает индикаторы каждый раз при прогоне стратегии. Я это делаю один раз, и потом гоняю стратегии на готовых данных. За счёт этого скорость тестирования вырастает на порядки.
avatar
bascomo, именно это я и имел ввиду под «кэшированием»: один раз просчитал и сохранил в БД, дальше с готовым набором работаешь. Актуально, если у самого индикатора настройки не меняются динамически в зависимости от других индикаторов.
avatar
Андрей Борисов, в бд я не сохраняю, но считаю один раз, когда свечи из бд загиужаю
avatar

 Родился вопрос про настройки параметров. Вы пишите, что индикатор, выдающий сигнал, в процессе подбора не перенастраивается никак. Условно говоря — один раз зафиксировал его параметры и всё.


Но вот, например, индикатор вычисляет пересечение SMA и HMA — здесь явный настраиваемый параметр — длина периода для подсчёта у каждой скользящей (кол-во свечей). При Вашем подходе, я так понимаю, каждое новое значение периода — это по факту отдельный индикатор, т.е. индикатор пересечения при периоде 9 свечей, 50, 200 и т.д. Верно я логику понял?

Тут вот и вопрос: каким образом эти параметры выбираете, пока не зафиксируете?

avatar
Андрей Борисов, Если вам так хочется, то вы можете сделать сто машек разных типов и периодов. А я сходил в стандартный терминал, 4 штуки: квик, мт5, традингвью и бинансовый и добавил там машку на график. И везде по умолчанию стояло одно и то же число периодов. Вот его я и использовал. И с другими индикаторами так же - посмотрел настройки по умолчанию в основных торговых терминалах и использовал их. Отдельных индикаторов я не создаю, одной стандартной Машки вполне достаточно, поскольку она всё равно будет работать в группе с другими индюками и их сигналами
avatar

bascomo, понял.

Весьма интересный у Вас подход, весьма прагматичный и без лишней эзотерики. Это я в общем о подходе к созданию ТС. Спасибо, что делитесь!

avatar
Андрей Борисов, Да, результаты выглядят потрясающе на графиках на тестах) как никто раньше не додумался - не понимаю) одно слово - гений))
avatar

теги блога bascomo

....все тэги



UPDONW
Новый дизайн