Заметка ниже будет полезна тру алготрейдерам, которые сами пишут торговые программы, исследуют рынки и придумывают алгоритмы. Она поможет не утонуть, не уйти по ложному пути и остаться на плаву долгое время, и может быть, если повезёт — грааль будет создан.
Итак, какие объекты (индикаторы) необходимо создать в программе, для написания эффективных алгоритмов?
Обязательные:
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/, где выложены переводы подобных научных статей.
А какие объекты пишите и используете вы ?
Почему вы это называете объдектами? Из-за реализации их в форме объекта (ООП)? Или по какй причине?
Имеется в виду, что 1-4 (ну или другие из описаных) используются для формализации каких-то понятий из «реального мира»? Ну т.е. какие-то «трейдерские» сущности формализуем через 1-4. Об этом речь?
Да и что такое в вашем понимании «объект»?
вы что-то не то делаете. никаких объектов не создается, вычисляется обычной формулой и помещается в обычную переменную.
среда программирования здесь не при чем.
вам, как создателю алгоритма, необходимо понимать физику того, чего вы считаете и каким образом это помогает вам в ваших логических размышлениях. тогда окажется, что вместо сложного можно считать простое, а может быть и вообще не стоит использовать ту или иную функцию.
а те кривые на ценовом ряде, которые у вас на картинке, оставьте ручным скальперам, им ведь без этого никак.
именно поэтому я их и не использую :)
я видел, как встроенный индикатор в МТ5 показывает неверные значения и терял на этом деньги, поэтому их использование противоречит моим целям :)
глобально и сильно неверное. проявляется редко, при определенном стечении обстоятельств. связанно с самим принципом управления тайм-сериями в мт5.
Алгоритмы медленные, хватает,
а переписывать все нет желания)
К тому времени в мою жизнь резко вошел линукс и c++ и все прикладные задачи очень плавно перешли на линукс примочки типа bash и тд
Как говорится - шо то, шо это, все пища для модели машинного обучения))
а в итоге у тебя хренова гора коробок с неясным и ненужным содержимым, а для перемещения в пространстве приходится использовать медленный и тяжелый грузовик.
спасибо, я сам посчитаю то, что мне нужно и тогда, когда мне нужно.
У меня в одной проге на Делфи6 до 100 роботов, в каждом по несколько индикаторов. Гружу последние 3000 5-минутных свечей и работает не выключаясь еще полгода, сохраняя и все обсчитывая.
И все хватает без ООП.
я про MQL, что там у других мне не известно, но думаю все тоже самое.
Но это уже следующий уровень