Блог им. eskalibur

Объекты в алгоритме.

Объекты в алгоритме.




Заметка ниже будет полезна тру алготрейдерам, которые сами пишут торговые программы, исследуют рынки и придумывают алгоритмы. Она поможет не утонуть, не уйти по ложному пути и остаться на плаву долгое время, и может быть, если повезёт — грааль будет создан.
Итак, какие объекты (индикаторы) необходимо создать в программе, для написания эффективных алгоритмов? 

Обязательные:
1. Moving Average — скользящее среднее   (куда же без них).
2. Linear Regression — линейная регрессия 
3. Minimum, Maximum  — определение минимума максимума 
4. Standart Deviation — стандартное отклонение  (объединено с Пунктом 1, вычисляется в составе одного объекта)

Могут пригодится дополнительно:
5. Correlation — корреляция
6. Relative strength index — индекс относительной силы
7. Multiple regression — множественная регрессия

Пункт 1 (скользящее среднее) также вычисляет бету регрессии, но иногда нужна регрессия не на время, поэтому отдельный объект Linear Regression всё таки необходим.

Пункт 6 RSI, есть смысл использовать в некоторых алгоритмах, но в настоящий момент, нигде не используется.

Пункт 7 Множественная регрессия- необходима для исследований.
Но в итоговых алгоритмах вряд ли будет использоваться. В конечном счёте этот объект необходим для понимания, что множественная регрессия, как и другие сложные математические алгоритмы — не нужны. :-)

Львиная доля метрик рынка, измеряющие временные характеристики (например, AROON), объёмные характеристики, и прочее (цена, открытый интерес и т.п.) описываются с помощью пунктов 1-4.  

Можно копать исследования и диссертации, и даже найти там некоторые идеи. Но из огромных тонн шелухи, вы выловите лишь одну целую семечку, которая уже состарилась. Если всё таки этот тернистый путь интересен, — есть хороший блог smart-lab.ru/profile/uralpro/, где выложены переводы подобных научных статей.

А какие объекты пишите и используете вы ?


    ★10
    67 комментариев
    price action это какой объект у нас получаеццца?
    Главком Главком, price action — это ценовые паттерны?
    avatar
    Eskalibur, я всегда думал что это движение цены

    Почему вы это называете объдектами? Из-за реализации их в форме объекта (ООП)? Или по какй причине?

     

    Львиная доля метрик рынка, измеряющие временные характеристики (например, AROON), объёмные характеристики, и прочее (цена, открытый интерес и т.п.) описываются с помощью пунктов 1-4.  

     

    Имеется в виду, что 1-4 (ну или другие из описаных) используются для формализации каких-то понятий из «реального мира»? Ну т.е. какие-то «трейдерские» сущности формализуем через 1-4. Об этом речь?

    avatar
    Replikant_mih, именно так, объекты в ООП. Все «трейдерские сущности» так или иначе реализуются через математические формулы. Что бы не повторять много раз одно и то же, пишем объект и используем. 
    avatar
    Eskalibur, Тогда согласен). Мне тоже нравится подход когда я реализую низкоуровневый слой, потом из него как из кубиков собираю более высокоуровневый, из него ещё более высокоуровневый. Одни плюсы). Это и для стратегий и для инфраструктуры в целом. И кода меньше и работать приятней и прочее и прочее. Это по поводу объектов и ООП. По поводу формализации через условный ТОП4 индикаторов — у меня наверно как-то по другому).
    avatar
    Replikant_mih, поделитесь, это интересно.
    avatar
    Eskalibur, Ну, по факту возможно у меня тоже будет какой-то ТОП инструментов, помогающих в формализации трейдерских сущностей и идей  целом, я просто об этом как-то не задумываюсь, поэтому стройного ТОПа в головек нет. Например, часто использую ATR сейчас. Мувинги могу использовать для прикидочной оценки влияния фактора тренда и трендовости или чтобы какой-то неценовой ряд сгладить. А в остальном скорее всего помаленьку), скорее какие-то под конкретную задачу временые ряды строю).
    avatar
    Тру алготрейдеры и сами знают какие индикаторы им нужны 😀 Все зависит от стратегии. В некоторых вообще не используются приведенные вами обязательные индикаторы. 
    avatar
    Daniil Lazarev, всё верно. Но пост не обо всём на свете. Если вы пишите полностью торговую программу, то объекты обеспечивающие вычисление (пункты 1-7) имеет смысл создать, для исследований и экспериментов,  Смысл в том, что это скорее максимум, что нужно, и не стоит слишком глубоко погружаться в науку и описывать в программе тысячи существующих индикаторов. У кого-то вообще в программах нет никаких объектов-индикаторов, как например SergeyJu (см. комментарий ниже), и возможно даже эти вычисления не понадобятся. Пост не о размере письки, а о том, на чём достаточно остановится. Может быть для кого-то обязательным является, что-то ещё — вот это было бы интересно почитать.
    avatar
    Никакую регрессию, корреляцию и RSI в системах не использую. И что со мной не так? 

    avatar
    SergeyJu, олд скул называется )
    avatar
    Андрей К, Вы неправильно поняли. Я все перечисленное, плюс разные фильтры, преобразования Фурье и Гильберта, случайные леса  и многое другое исследовал и отбросил за бесполезностью или малой эффективностью. 
    avatar
    Как торгуется регрессия?
    avatar
    T-800, вы може почитать (или посмотреть) Алексей Ван <o-s-a.net>  (https://smart-lab.ru/profile/Tyam/), в частности он описывает, как использует регрессию в торговле. Подход прибыльный. 
    avatar
    Eskalibur, а понятно, но Ван не трейдингом живет, а зарабатывает продажей ос энжин. Поэтому смотреть не буду.
    avatar
    T-800, я тестировал и использовал алгоритм с использованием регрессии, который использует Алексей Ван — он рабочий.
    avatar
    Если я придумал алгоритм, создал робота и он торгует без всех указанных «объектов», то я не тру алготрейдер?!
    Да и что такое в вашем понимании «объект»?
    avatar
    Eldar Shaymardanov, прошу прощения, если термин оказался не раскрыт. Под тру алготрейдером представляется, тот кто сам полностью пишет торговую программу. Которая сама коннектится, сама торгует, имеет свой тестер, свои формы отображение торговли (если нужно) и трейдер выступает  лишь в роли наблюдателя и менеджера программы. Специалисты по qlua не относятся к ним. Объект — это именно объект из объектно-ориентированного програмированния, например, кольцевой массив. Если вы придумали алгоритм, и он торгует без всех указанных объектов прибыльно, то вы превосходный системный трейдер, что лишь подтверждает тезис, что нет необходимости в сложных математических аппаратах.
    avatar
    Итак, какие объекты (индикаторы) необходимо создать в программе, для написания эффективных алгоритмов? 
    Никаких не надо создавать. Если что-то надо узнать в конкретной точке, надо просто вычислить значение.
    Дмитрий Овчинников, если вы пишете программу на си++, или на с# или на дельфи, для вычислений в конкретной точке, как раз и создаётся объект.
    avatar
    Eskalibur, 
    вы что-то не то делаете. никаких объектов не создается, вычисляется обычной формулой и помещается в обычную переменную. 

    Дмитрий Овчинников, если ваша среда программировани позволяет вычислять, например, стандартное отклоенние, одной формулой, то вам конечно никакие объекты не нужны.
    avatar
    Eskalibur, 
    среда программирования здесь не при чем.
    вам, как создателю алгоритма, необходимо понимать физику того, чего вы считаете и каким образом это помогает вам в ваших логических размышлениях. тогда окажется, что вместо сложного можно считать простое, а может быть и вообще не стоит использовать ту или иную функцию.
    а те кривые на ценовом ряде, которые у вас на картинке, оставьте ручным скальперам, им ведь без этого никак.
    Дмитрий Овчинников, Ну, справедливости ради, mql5 же объектно ориентированный язык), так что (точно не помню, конечно) индикаторы там реализованы как объекты.
    avatar
    Replikant_mih, 
    именно поэтому я их и не использую :)
    Дмитрий Овчинников, )) У каждого своя история). Я вот тоже не особо люблю встроенные индикаторы — у меня чисто субъективно это ассоциируется с моим Forex этапом, который у меня как трейдерское «детство».
    avatar
    Replikant_mih, 
    я видел, как встроенный индикатор в МТ5 показывает неверные значения и терял на этом деньги, поэтому их использование противоречит моим целям :)
    Дмитрий Овчинников, поэтому тру алготрейдеры пишут всё сами :-). Но главное это профит. В конечном итоге мы ищем его, а не объекты и индикаторы. Если вы мастер, то вы мастер, не зависимо от наличия или отсутствия объектов. Ваше мнение очень ценно.
    avatar
    Дмитрий Овчинников, Ну не знаю. Неверное значение — вряд ли там глобально что-то «неверное», прям сильно. А если не сильно — то я скорее выкину стратегию, которая от лёгкого дуновения шума ломается)).
    avatar
    Replikant_mih, 
    глобально и сильно неверное. проявляется редко, при определенном стечении обстоятельств. связанно с самим принципом управления тайм-сериями в мт5.
    Дмитрий Овчинников, что бы понять физику, нужно провести исследования. Вы выдвигаете гипотезу, например, о влиянии предыдущих приращений цен, на будущие, и проверяете её на ложность. Для этой проверки подходит множественная регрессия. Просто так вы не вычислите формулой её. Со временем, появятся и простые идеи. Смысл как раз и состоит в том, чего достаточно, и больше не надо.
    avatar
    Eskalibur, 
    Просто так вы не вычислите формулой её.
    Если мне понадобится, я прекрасно вычислю то, что мне нужно. Не уверен, что это будет называться множественная регрессия, но физика может быть похожей :)
    Eskalibur, я на делфи давно пишу роботов. Объекты никогда не создавал. Работает отлично!
    avatar
    T-800, Спасибо. Моё почтение. Главное в нашем деле — это прибыль.
    avatar
    T-800, на какой версии дельфей? )
    avatar
    Андрей К, 6-я)
    Алгоритмы медленные, хватает, 
    а переписывать все нет желания)
    avatar
    T-800, вот это олд скул прям конкретный ) я на 7 остановился, с 6 начинал
    avatar
    Андрей К, сейчас на 7-ке?
    avatar
    T-800, в трейдинге на делфи просидел примерно до 2017, но на нем решал какие то прикладные задачи, что то вида скачать, проанализировать и тд.

    К тому времени в мою жизнь резко вошел линукс и c++ и все прикладные задачи очень плавно перешли на линукс примочки типа bash и тд
    avatar

    Как говорится - шо то, шо это, все пища для модели машинного обучения))

    Андрей Костюк, Используете? В смысле, модели машинного обучения).
    avatar
    ves2010, S и S0 — это цены? и что за три правила торговли?
    avatar
    RoboScalp, спасибо, я так понимаю вы используете ATR в торговле. Там как минимум используются средние.
    avatar
    RoboScalp, почему бы не автоматизировать процесс, исключив субъективный взгляд?
    avatar
     Я не знаю, чё все наезжают на ООП объекты)) — на самом деле это никакое не усложнение, а наоборот упрощение. Вернее, ты более мощную логику помещаешь в коробку, а коробкой пользуешься легко и удобно.
    avatar
    Replikant_mih, 
    а в итоге у тебя хренова гора коробок с неясным и ненужным содержимым, а для перемещения в пространстве приходится использовать медленный и тяжелый грузовик.


    Дмитрий Овчинников, тут вы не правы. На сях или дельфях 20-30 объектов у вас займёт памяти 100-300кБ, в питоне возможно побольше. Можете засунуть всё в библиотеку, и вызывать по необходимости, они даже в памяти висеть не будут. Если посмотреть на квик или мт5, вот уж поистине неповоротливые программы. Сомневаюсь, что кто-то будет держать «коробку» с неясным содержимым,  и уж тем более использовать, — такое положение в трейдинге совершенно недопустимо. Уверен, каждый опытный алго знает как у него всё устроено до атома, в противном случае, до положительного результата ещё очень далеко.
    avatar
    Eskalibur, 
    На сях или дельфях 20-30 объектов у вас займёт памяти 100-300кБ
    У меня в одном алгоритме может быть более сотни инстансов. таких алгоритмов десятки. на каждый инстанс по 20-30 объектов, а как по другому ;)
    спасибо, я сам посчитаю то, что мне нужно и тогда, когда мне нужно.
    Дмитрий Овчинников,
    спасибо, я сам посчитаю то, что мне нужно и тогда, когда мне нужно
    это к чему? Вам советов никто не даёт. Что такое инстанст, итого у вас их около 20-30 тысяч — объектов в инстансе -. Значит какие-то объекты используете?
    avatar
    Eskalibur, а зачем много памяти для бота?
    У меня в одной проге на Делфи6 до 100 роботов, в каждом по несколько индикаторов. Гружу последние 3000 5-минутных свечей и работает не выключаясь еще полгода, сохраняя и все обсчитывая.
    И все хватает без ООП.
    avatar
    T-800, нигде не писал, о необходимости памяти для бота.Как раз наоборот, самописный бот, очень мало памяти занимает, максимально быстр и работает без сбоев. Использование объектов не панацея, кому как нравится, так и пишет, Дмитрий Овчинников, например, прям в теле программы расчёт делает. Главное — это прибыль. Если она есть, вы мастер, который построил свои граали. Это заслуживает уважения.
    avatar
    Дмитрий Овчинников, Речь про реализацию в mql5 или в целом про ООП?) Если в целом про ООП — тут зависит от реализации).
    avatar
    Replikant_mih, 
    я про MQL, что там у других мне не известно, но думаю все тоже самое.
     Я недавно даже свой research'евый Jupyter notebook переписал на ООП рельсы, в разы удобней, проще, гибче, мощнее. 
    avatar
    Replikant_mih, интересно глянуть)
    avatar
    shprots, секретное)).
    avatar
    Большинство начинающих алготрейдеров проходят через поиск «грааля», перебор всех бесплатных индикаторов, фильтры, всевозможные комбинаций, поиск коэффициент… особо безумные копают глубже! и используют тайные числа масонов 
    Но это уже следующий уровень  
    avatar
    Хм, только Макс/мин в явном виде есть в боевых алго среднечастотных, остальное мусор
    avatar
    Вспомнили URALPRO! Он где то выкладывал своих олдовых ботов. Новичкам советую поискать и глянуть.
    avatar
    ves2010, 
    avatar
    ves2010, могли-бы прокомментировать? Видимо, Sn — это некие состояние систем. Могли-бы более подробно пояснить ваш взгляд на проблематику?
    avatar
    Socol, я стер свои коменты… там все просто отошение величин сравнивается с порогом… величины любые… в оригинале это мощность…
    avatar
    ves2010, зря стерли, наживку закинули, а потом уходите. Согласитесь, то что Вы сейчас написали мало похоже на какое-либо, хотя-бы приблизительное описание, один туман. Какие мощности, спектральные, другие, как считаете? Может напишете все-же? интересно. Спасибо.
    avatar

    теги блога Eskalibur

    ....все тэги



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