Вопрос к Гусеву Владимиру а также ко всем алготрейдерам.
В продолжении утренней серии топиков по сложности алготрейдинга, хочу всем задать вопрос — КАК ОПРЕДЕЛИТЬ ФЛЭТ ПРОГРАМНО?
Это насущьный и актуальный вопрос не имеющий однозначного ответа. Выскажите свои мнения пожалуйста.
Итак, мы все понимаем что на рынке присутствуют только два состояния флэт и тренд. Определив алгоритм для распознания флэта и отфильтровав его мы получаем бесперебойный печатный станок. Кажется все просто, но на деле не совсем так. Ибо программно заложить алгоритм флэта не так то просто, приходится строить нейронно обучаемые цепочки, состоящие из логико — математических следований. Для построения этих цепочек требуются начальные вводные от количества и качества которых зависит точность работы основного алгоритма.
Итак как бы Вы определили флэт? На основании каких вводных Вы сможете предположить что в данный момент времени цена торгуется во флэте?
Выведите на главную пожалуйста, думаю что будет интересно и полезно для многих трейдеров.
35 |
Читайте на SMART-LAB:
Валютные облигации МКБ - мутная муть или риски в цене?
Тимофей на днях подсветил , что я взял немного субордов. Постараюсь описать логику почему купил и подсветить, что происходило с банком...
Инвестиции с защитой от инфляции: реальные активы в портфеле МГКЛ
📈 Когда цены растут, особенно важно понимать, что лежит в основе бизнеса. В МГКЛ эта основа — реальные активы: товары, техника, залоги, золото. Это...
Информационное сообщение для акционеров ПАО «ЭсЭфАй» о выкупе акций холдинга
17 декабря 2025 года подведены итоги внеочередного заочного голосования общего собрания акционеров ПАО «ЭсЭфАй», на котором в числе прочих...
*все кроме меня
В программировании не шарю, но, думаю, разница в их программном определение есть. Да и действия системы при этих двух состояниях должны разница. имхо
ага дисперсия такая то (меньше чем M, но больше еще чего то) флет, не такая (больше M) не флет, мало этого? добавляете еще степень свободы — отношение цен (доходности, конец окна к началу например), получаются еще комбинации. Мало этого? добавляете еще степень свободы — например коэфф. вариации, получаются еще комбинации. Простор для творчества большой, и в целом, логично и работоспособно.
И у Вас получается некая 3-х мерный массив комбинаций, каждому значению присваиваете тезис «флет, не флет, расширяющийся, безоткатный рост, еще что-то».
И вот получается простая модель на истории, ну а потом смотрите ее на текущие значения комбинаций, можно даже это автоматизировать и система будет выдать один из тезисов.
Просто, но работоспособно.
P.S. А можно пойти от противного, придумать тезисы, и начать например с 1 парамтера, найти их все на истории (очень много), и сопоставляя параметры, перепроверяя их!, найти диапазоны изменений параметра. Не хватает одного, добавляем еще 1. Смотрим, делаем. Не хватает 2, берем третий и так далее. Но слишком усложнять нет смысла. На мой взгляд 3 вышеперечисленных достаточно, они логичны и имеют смысл. Даже если каждому из них задать 3 диапазона, это уже 27 комбинаций, более чем! Можно добавить и объем например, но это на любителя…
Мне интересны другие точки зрения. Отличные от этой.
Что касается других точек зрения, ну не знаю… если надо определять программно, то все равно придется опираться на какие-то статистические зависимости, не на эти, так на другие. Как иначе то?
Аааа, ну еще можно анализ изображений делать;)), определять график, разбивать его на участки, определять тангенс угла наклона в каждом и делать выводы;))
.
Вот этот топик: smart-lab.ru/blog/173926.php
И вопрос Вам задали вполне корректный: Каковы причины выброса цены в вашем же примере с точки зрения манипуляций на рынке. Вы не ответили. Ответа у Вас нет и не будет. Одни голые слова.
Так что статья о распространении недостоверных сведений к Вам применима в полной степени. Не пишите бред.
Сами-то грешите безапелляционными суждениями, причём зачастую именно безграмотными. И боитесь в этом признаться. На вопрос ответьте.
Вот топик: smart-lab.ru/blog/173926.php
Вот вопрос: Каковы причины выброса цены в вашем же примере с точки зрения манипуляций на рынке. Вы не ответили.
Не ответите — не лезьте в каждую дырку с дурацкими советами. Ответите — извинюсь.
Рассмотрим то что касается объема. Как мы можем идентифицировать размер нашего шаблонного объема который мы примем за единицу измерения, для понимания того что он вырос по отношению к предыдущему объему? В разный период времени в течении дня торговая активность различна и тот объем который мы заложили в шаблон после выхода из флэта утром, будет отличатся от объема в американскую торговую сессию. Путь идентификации по объему ложный или не полный. Нужны еще вводные.
Скорость наполнения объемом к примеру тиковых свечей привязываем к единице времени. Получаем тоже самое — свеча в зависимости от активности рыночной фазы может наполнятся по временному фактору одинаково как во флэте так и в тренде.
Если мы рассмотрим временные графики то здесь мы время свечи должны привязать к волатильности свечи и опять у нас будут огромные отклонения от шаблонов в зависимости от многоих составляющих.
Вобщем Владимир, на этих признаках мы не построим програмку!
Как идея неплохо, есть над чем подумать!
Опять же продолжительность флэта никак не определишь заранее, выход из него будет виден постфактум.
Так что усилия в этом направлении смысла особого не имеют. Лучше попытаться сделать алгоритм, который будет не очень много терять на флэте, пусть в ущерб частичной потери доходности на тренде.
Видел такую штуку: codebase.mql4.com/ru/4483
Но тоже не панацея.
Ну а для алготрейдеров есть подсказка. Вот Вам небольшой кодик на описание флэта с помощью зигзагов, найдите в нем ошибки))
Хочу сказать что код не мой) Свой я бы не выложил здесь)
while (Pos >= PosEnd)
{
PriceHigh = HighBid[Pos] / Point + 0.1;
PriceLow = LowAsk[Pos] / Point + 0.1;
if (FlagUP)
{
if (PriceHigh > Max)
{
Max = PriceHigh;
ZZTime = Time[Pos];
}
else if (Max — PriceLow >= MinSize)
{
ZigZag[Count].Size = Max — Min;
ZigZag[Count].Time = ZZTime;
Count++;
FlagUP = FALSE;
Min = PriceLow;
ZZTime = Time[Pos];
}
}
else
{
if (PriceLow < Min)
{
Min = PriceLow;
ZZTime = Time[Pos];
}
else if (PriceHigh — Min >= MinSize)
{
ZigZag[Count].Size = Max — Min;
ZigZag[Count].Time = ZZTime;
Count++;
FlagUP = TRUE;
Max = PriceHigh;
ZZTime = Time[Pos];
}
}
Pos--;
}
И если кому-то нужен код — отпишу за деньгу.
Но, не обольщайтесь, это не сделает вашего робота прибыльнее.
Так как идентифицированный флэт может в любую минуту прекратиться и превратиться в тренд или во флэт со сдвигом.
Результат может принести прогноз наступающего флэта. Для этого нужен сложный волновой анализ (предпочтительно) или паттерн-рекогнайзер (не очень надежный метод).