Блог им. Replikant_mih

Инъекция ООП в стратегию. Повышаем уровень абстракции в стратегиях.

Немного порассуждаю про уровень абстракции в стратегиях и про ООП как инструмент для этого.

 

Да, чтобы войти на пересечении скользящих и выйти по трейлингу на основе параболика ООП нафиг не нужен. Но я мыслю более реальными, «физическими» категориям. В смысле более живыми. Импульс, консолидация, да тот же тренд. Да, теоретически я могу использовать стандартные индикаторы, но у меня всегда индикатор – всего лишь отражение какого-то физического процесса. Но об этом я частенько упоминал, сейчас не совсем об этом.

 

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

Сейчас попробую выделить ещё один вид преимущества, ну или вернее ниша, в которой, как мне кажется, пасется не так много народу. Я говорю про нишу высокоуровневых абстракций.

Что я имею в виду, зачем это надо, при чем здесь ООП.

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

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

 

Когда кто-то говорит, что что-то «не работает» в трейдинге, так и хочется сказать: серьезно? – ты прям проверил весь огромнейший диапазон дойдя до высочайших уровней абстракции и ничего не нашел. Уровни не работают. – Серьезно? Каналы не работают – Серьезно? Фигуры не работают – Уверен?

Красивой конструкции Громко заявить – Красиво доказать, конечно, не получилось, было желание скорее громко заявить нежели красиво доказать, доказательством поэтому сильно не заморачивался, сорри :).

★2
25 комментариев
потому что диапазон разнообразия по идее должен расти с повышением уровней абстракции,

С чего бы это? Под «высоким уровнем абстракции» понимается обобщение. Общих понятий больше чем частных, тем более конкретных по вашему?
avatar
sortarray sortarray, Не, скорее не так. Низкий уровень — это кубики, а высокий уровень — конструкции, которые можно из кубиков собрать, далее конструкции из конструкций ну и и т.д. И да, реальных конструкций, которые можно назвать конструкциями, будет может и не так много, но вот комбинаций кубиков, которые будут «претендовать» на то чтобы называться конструкциями, будет дохрена, на ещё более высоком уровне еще больше комбинаций.
avatar
Replikant_mih, на мой взгляд очевидно неверная трактовка, даже с тз «канонического».
То что Вы заявляете — это уровни сложности, а не уровни абстракции.

«абстракция» — понятие не совсем удачное, оно порождает путаницу.

В общем случае, это означает «умозрительное».

К сожалению, в обиходе, это не всегда означает обобщение, хотя в большинстве случаев это так.

То что в CS понимается под этим, означает именно обобщение, например тип, класс, множество.

Я бы предложил тут понятие «универсалия» вместо «абстракция»
avatar
sortarray sortarray, Возможность. Но сложность слишком размытое понятие)) — мне тоже в этом контексте оно не нравится.
avatar
Replikant_mih, «сложность» не надо усложнять. Да, в языке оно сейчас размыто, но возвращаясь к корням, сложное — это составное, противоположное атомарному.
avatar
sortarray sortarray, Ну, в общем если б я решил серьезней подойти к вопросу — я бы по-любому расшифровал понятия в начале. Но так как я не люблю к постам подходить серьезно, то как-то так)).
avatar
sortarray sortarray, Теперь, когда мы поняли, о чем речь — что думаете по поводу основной идеи?)
avatar
Replikant_mih, а идея в чем? В том что нужно конструировать из более простых блоков более сложные? Поддерживаю:) С этим вообще никто не поспорит.
Это понятие близкое к декомпозиции. Если задача сложная, ее нужно разбивать на подзадачи
avatar
sortarray sortarray, Типа того, да)).
avatar
Replikant_mih, только я хочу заметить, что надо плясать от задачи. До бесконечности разбивать сложное на более простое тоже не нужно.
Без фанатизма.

Если нас не интересует внутреннее устройство автомобиля, а интересует только его технические характеристики, не нужно собирать его из частей каждый раз, достаточно порождать автомобили целиком, и декларировать их характеристики. К примеру
avatar
sortarray sortarray, Если отталкиваться от аналогии с автомобилем — многие видят груду деталей и хотят сделать что-то что будет ехать, а лучше будет ехать само, а лучше само и не ломаться и т.д. Но при этом они, не понимая, что это за детальки просто их как-то комбинируют, пристраивают одна к другой поворачивают. И конечно это не работает. Да, если взять простые и нужные в данном контексте детали — ну там только колеса и какую-то основу — оно поедет, но и только. Чтобы оно ехало реально хорошо, нужно понимать суть каждой детали, понимать, как они взаимодействуют ну и пробовать разные конструкции — не тупо комбинации (ибо их дохрена), а именно конструкции, обоснованные физическим смыслом деталей.
avatar
Replikant_mih, тут нет общего закона. Это противостоит принципу «абстрагирования от деталей», черному ящику.

Оба подхода одинаково полезны в различных ситуациях. Например, иногда нужно просто набросать прототип, и тогда детали излишни.
Все зависит от модели, короче говоря.
Для водителя важней чувствовать ходовые качества, иметь нужный ему «интерфейс» управления. Хороший автослесарь не становится автоматически хорошим гонщиком.
avatar
sortarray sortarray, если бы на всех уровнях тусовалось одинаковое количество народу — я бы не стал отстаивать преимущество того или иного уровня, оно не очевидно для меня, но что-то мне подсказывает, что выше первого этажа, а тем более ещё выше поднимается очень небольшая доля народу. И только уже это делает высокие уровни очень интересным местом.
avatar
sortarray sortarray, Ещё есть вариант, что я называл высоким уровнем абстракции это понятие не совсем верно, а на самом деле более подходящее название выглядит как-то иначе).
avatar
Replikant_mih, у меня напрашивается именно «уровень сложности», и «уровень обобщенности».

К примеру, здание состоит из кирпичей. Но кирпич не является подтипом здания.
Уровень сложности здания выше чем кирпича, но мы имеем дело с разными типами, одного уровня обобщенности, назовем их «здания», где подтипами будет «жилое здание», «административное здание», «культовое сооружение» и «строительный материал», где подтипами будут «кирпич», «доска», «брус», «пеноблок».

Да, эти 2 понятия часто путают даже «опытные», к сожалению
avatar
sortarray sortarray, Да не, ну я точно не имел в виду иерархию — мы ж разобрались). Я из C# знаю только синтаксис, и-то не весь)), до остального сам доходил, так что когда говорят «уровень абстракции» применительно к C#, я понятия не имею что имеется в виду)).
avatar
Вот лучше бы расшифровал ООП. Организация освобождения Палестины?
Ну, тогда-да, при чём она тут?..
avatar
Дмитрий Ш, объектно-ориентированное программирование.
Расшифровывать не надо, потому что любой разработчик это знает, а статья для разработчиков.
avatar
sortarray sortarray, Да сразу понял Я тут так… в стороннке, тИхонько))
avatar
Дмитрий Ш, Объектно ориентированное программирование.
avatar
Такой абстракционизьм просто обязан заканчиваться картинкой с усладой для глаз, с красивыми зелеными холмиками прибыли на графике, гиде они?
avatar
Friendly Deep Space, это личное)). Да и накой мне — мне ж инвесторы не нужны, и обучать я не планирую).
avatar
автор, если вы программист, то зачем изобретаете свой собственный велосипед, в ООП же уже созданы общепринятые патерны проектирования, начните с абстрактной модели, создайте интерфейсы и далее уже более конкретизируя свою задачу, тот же MVC вам в помощь
avatar
Константин, Я не программист… но программирую. Что-то я не понимаю к чему вы это пишете. Речь о том, что мало кто использует ООП подход глубоко при рисече (это если упростить суть вопроса). Как это делать уже дело десятое.
avatar
Replikant_mih, я тоже не программист, но программирую ))

avatar

теги блога Replikant_mih

....все тэги



UPDONW