Обсуждение статьи "Самоадаптирующийся алгоритм (Часть IV): Дополнительный функционал и тесты" - страница 7

 
Amba404:

!!!

Чоза грибы!!!

Писал-писал коммент 2 часа. Отправил. И вот он был, а вот он пропал. Совсем.

ай эм вшокебыл....

Вы ничего не написали, а просто процитировали огромный кусок текста.


Прикрепил текст - чтобы не пропал...

Файлы:
sor.txt  11 kb
 
Vladimir Karputov:

Вы ничего не написали, а просто процитировали огромный кусок текста.


Прикрепил текст - чтобы не пропал...

Спасибо, добрый человек!

Не просто процитировал, а ответы писал в том же блоке.

Сейчас отредактирую и перевыложу...

 
Maxim Romanov:

to: Maxim Romanov

нужно, чтобы новые серии закрывались как можно чаще - Не только чаще, а и с достаточной прибылью. Из своего опыта: просадка большую часть времени, сумма профита по прибыльным позициям всегда меньше суммы минуса по убыточным, при неблагоприятном развитии убытки увеличиваются в геометрической прогрессии, в то время как профит растет линейно. Накопленного профита (с учетом, что 20% должно остаться, и пусть это будет не 1 цент) обычно не хватает на закрытие самого минусового трейда (серии), только на часть, потому и назвал "частичным", хотя в статье такого не подразумевалось.

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

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

По моим наблюдениям наращивать позицию имеет смысл только против хода цены. Могу предложить рассмотреть такую ситуацию. Два валютных инструмента, с разными размерами торгуемого в настоящий момент блока, но с одинаковой их стоимостью. По обоим купили, ожидаем выход через два блока. Один пошел вверх, другой вниз, с одинаковой скоростью. Через один блок мы покупаем еще (наращиваем минус), а плюс - нет. Через два блока мы получили +2 по первому (и закрыли), не закрыли -3 по второму (но по нему мы вот как раз сейчас докупаем еще 1 блок, и когда это кончится - неизвестно). Торговля больше относится к вере, а не знаниям. Мы верим в надежность системы, Ну, или не верим, а доверяем ей, с долей уверенности, скажем 0.6. Мы не знаем надежность каждого сигнала, не можем сказать сразу, что вот это верняк100%, а это ошибка; мы доверяем в целом всем 100% сигналов, но только на 60% каждому. И если мы так уверены в том, что минусовая серия достигнет планового результата, и наращиваем её, то почему мы отказываем в доверии изначально положительной сделке (не серии, т.к. не наращивали)?

 - Минимальное и максимальное значения длины анализируемых блоков, а также их соотношение. Наблюдал, что иногда, при достаточной разнице между мин и макс размере поиска, можно получить разнонаправленные сигналы в начале и конце диапазона шагов, H блока =const.

- размер блока выбирается минимальный...  с уменьшением размера блоков, процент перевеса ... цена закрытия свечи не совпадает с ценой закрытия блока. Мы обсуждали это ранее, повторю тут кратко. Минимальная ближайшая дистанция трейда, имеющая смысл (ИМХО) - это тройной спред (один на профит и два на потери при исполнении входа-выхода). Если на малом размере блока увеличиваются ошибки искажения от построения, и это влияет на результат (что не обязательно), нужно увеличить размер. Если ошибки построения зависят от дискретности исходных данных (по Close), нужно ориентироваться на размер такой дискретности. Я при построении использую OHLC, и ориентируюсь на 5 * iATR(sy, PERIOD_M1, 1440). То, что close М1 не совпадает с close блока, не критично (на мой взгляд), потому что по алгоритму построения последний по времени блок всегда закрывается там же где и close[1] М1, а остальные блоки вполне могут закрываться между двумя close, раз уж изначально упрощаем движение цены до линейного графика close. По поводу процента перевеса: эту парадигму я до конца не воспринял. Я определяю график распределения частот пробега на истории. Затем назначаю флетом вершину полученного колокола (или шляпы) и окрестности её, включающие N% всех наблюдаемых случаев. График зависит только от размера блока и длины статвыборки, и также учитывает общее направление движения на выборке (центр тяжести шляпы будет смещен по ходу движения). Процент флета назначаю произвольно. Но какие длины пробега упадут в заданный диапазон, чтобы считаться трендом или флетом - покажет статвыборка, и я не вижу смысла корректировать границу между трендом и флетом в зависимости от размера блока.

- Границы между трендом и флетом нет,  - согласен, но см. выше.


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

- при потере сигнала я начинаю сначала - означает ли это закрытие открытой серии, по которой потерян сигнал?

- Фикс 10$ обратно уводит систему к матожиданию 0 из-за рандома. Не соглашусь. Долго писать, и всё из "я попробовал", без математики, добавлю только, что не просто фикс 10$, а некая F(),  в том числе от стоимости блока. Стоимость блока  (а в случае минлота - минимальный шаг изменения профита) - величина базовая для системы, и должна быть выбрана исходя из финожидания (рисков и прибыли) и размера депозита. Сама F() - предмет исследования и дискуссии.

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

- механизм частичного закрытия я планировал попробовать.  Писал выше, что я подразумевал на самом деле под "частичным" закрытием. Сожалею, что ввел в заблуждение своим неясным изложением :(


Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
 
Пересидка по усреднению с мартином дает прямые графики но как уже замечено максимальная просадка по эквити сравнима с прибылью за тот же период теста, можно конечно подробить и найти участки которые будут выглядеть хорошо. Но система опасна хоть  и работоспособна, нужен большой депо в районе 10000 баксов чтобы выдержать пересидки, сам тоже сейчас сделал по усреднению сов но все это довольно скользкий путь. Если система работает и за ней стоит какой то сигнал хороший то просто сигнал на вход и сигнал на выход и все. Но уже не будет таких графиков, это будут жуткие волны причем еще не факт что они смогут спред преодолеть. Как показала практика и тесты количество падающих блоков или просто долгое движение цены не всегда дает нужного отката. А если по честному чем глубже просидка тем еще глубже она может просесть. Чтобы включать пересидку нужно знать уровни ниже которых она точно не просядет, а это по моему опыту невозможно. Но вы продолжайте, может у вас и получится, деталей много у вас может быть и выйдет. Но я вот даже мультипликатор шага делал для усреднения и шаг умножался постоянно но есть участки где просто долбит вниз или верх так что ни дна не потолка не видно. Можно пересидку подстроить конечно чтоб вытягивала но просадка сравнима с прибылью. Попробуйте пересидку отключить и посмотреть что даст алгоритм без нее. Или еще самый простой пут просто кройтесь если пересидка слишком пересидела. Зато это честно и себя не обманете. Механизм конечно красивый, но очень вредный )))
 
Amba404:

to: Maxim Romanov

нужно, чтобы новые серии закрывались как можно чаще - Не только чаще, а и с достаточной прибылью. Из своего опыта: просадка большую часть времени, сумма профита по прибыльным позициям всегда меньше суммы минуса по убыточным, при неблагоприятном развитии убытки увеличиваются в геометрической прогрессии, в то время как профит растет линейно. Накопленного профита (с учетом, что 20% должно остаться, и пусть это будет не 1 цент) обычно не хватает на закрытие самого минусового трейда (серии), только на часть, потому и назвал "частичным", хотя в статье такого не подразумевалось.

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

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

По моим наблюдениям наращивать позицию имеет смысл только против хода цены. Могу предложить рассмотреть такую ситуацию. Два валютных инструмента, с разными размерами торгуемого в настоящий момент блока, но с одинаковой их стоимостью. По обоим купили, ожидаем выход через два блока. Один пошел вверх, другой вниз, с одинаковой скоростью. Через один блок мы покупаем еще (наращиваем минус), а плюс - нет. Через два блока мы получили +2 по первому (и закрыли), не закрыли -3 по второму (но по нему мы вот как раз сейчас докупаем еще 1 блок, и когда это кончится - неизвестно). Торговля больше относится к вере, а не знаниям. Мы верим в надежность системы, Ну, или не верим, а доверяем ей, с долей уверенности, скажем 0.6. Мы не знаем надежность каждого сигнала, не можем сказать сразу, что вот это верняк100%, а это ошибка; мы доверяем в целом всем 100% сигналов, но только на 60% каждому. И если мы так уверены в том, что минусовая серия достигнет планового результата, и наращиваем её, то почему мы отказываем в доверии изначально положительной сделке (не серии, т.к. не наращивали)?

 - Минимальное и максимальное значения длины анализируемых блоков, а также их соотношение. Наблюдал, что иногда, при достаточной разнице между мин и макс размере поиска, можно получить разнонаправленные сигналы в начале и конце диапазона шагов, H блока =const.

- размер блока выбирается минимальный...  с уменьшением размера блоков, процент перевеса ... цена закрытия свечи не совпадает с ценой закрытия блока. Мы обсуждали это ранее, повторю тут кратко. Минимальная ближайшая дистанция трейда, имеющая смысл (ИМХО) - это тройной спред (один на профит и два на потери при исполнении входа-выхода). Если на малом размере блока увеличиваются ошибки искажения от построения, и это влияет на результат (что не обязательно), нужно увеличить размер. Если ошибки построения зависят от дискретности исходных данных (по Close), нужно ориентироваться на размер такой дискретности. Я при построении использую OHLC, и ориентируюсь на 5 * iATR(sy, PERIOD_M1, 1440). То, что close М1 не совпадает с close блока, не критично (на мой взгляд), потому что по алгоритму построения последний по времени блок всегда закрывается там же где и close[1] М1, а остальные блоки вполне могут закрываться между двумя close, раз уж изначально упрощаем движение цены до линейного графика close. По поводу процента перевеса: эту парадигму я до конца не воспринял. Я определяю график распределения частот пробега на истории. Затем назначаю флетом вершину полученного колокола (или шляпы) и окрестности её, включающие N% всех наблюдаемых случаев. График зависит только от размера блока и длины статвыборки, и также учитывает общее направление движения на выборке (центр тяжести шляпы будет смещен по ходу движения). Процент флета назначаю произвольно. Но какие длины пробега упадут в заданный диапазон, чтобы считаться трендом или флетом - покажет статвыборка, и я не вижу смысла корректировать границу между трендом и флетом в зависимости от размера блока.

- Границы между трендом и флетом нет,  - согласен, но см. выше.


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

- при потере сигнала я начинаю сначала - означает ли это закрытие открытой серии, по которой потерян сигнал?

- Фикс 10$ обратно уводит систему к матожиданию 0 из-за рандома. Не соглашусь. Долго писать, и всё из "я попробовал", без математики, добавлю только, что не просто фикс 10$, а некая F(),  в том числе от стоимости блока. Стоимость блока  (а в случае минлота - минимальный шаг изменения профита) - величина базовая для системы, и должна быть выбрана исходя из финожидания (рисков и прибыли) и размера депозита. Сама F() - предмет исследования и дискуссии.

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

- механизм частичного закрытия я планировал попробовать.  Писал выше, что я подразумевал на самом деле под "частичным" закрытием. Сожалею, что ввел в заблуждение своим неясным изложением :(


Без теории нет смысла измерять корреляцию и собирать статистику. Это будут просто цифры, которые непонятно как меняются. Теоретическая модель обязательно нужна. кто-т опишет, что это мартингал ,кто-то пишет, что перисиживатель или сетка. Без теории это может выглядеть именно так. С теоретической моделью это становится совсем не так. Например я могу показать, как изменяя лоты на фонде можно сделать положительное матожидание. Со стороны будет казаться что это что-то типа мартингейла ,ведь лоты постоянно плавают. Но есть одно различие: без теории это просто плавающие лоты, а с теорией я знаю какие лоты нужно выставлять и почему. Модель не должна быть для форекса или фонды, она должна описывать чем отличаются и похожи между собой рынки, в том числе сырье и криптовалюты.

100% вероятности входа не нужно. Всегда будут неучтенные факторы, которые не позволят сделать 100%. Чем точнее модель, тем выше вероятность.

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

Если сигнал потерян, серия не закрывается. Я тут не понял что значит потерян. Серия начинается когда появляется сигнал и продолжается до тех пор, пока цена не достигнет расчетной точки закрытия. Расчетная точка закрытия постоянно корректируется из-за появления новых блоков. Не может быть такого, что позиции не закрылись, а график уже скорректировался. Точнее у меня может, но это уже детали реализации алгоритма и тут запускается механизм компенсации убыточных позиций.

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

по частичному закрытию тут тоже есть над чем поработать, но для меня этот этап будет позже, пока не думал над этим.

 

привет

воды добавлю немного )

алгоритм на алгоритм не тянет - на разных парах разный результат
ветер дунул, логика порушилась
попытка создания алгоритма

а в общем прикольно
продолжайте, пожалуйста
с интересом жду окончательного результата

 
Спартак Угланов:

привет

воды добавлю немного )

алгоритм на алгоритм не тянет - на разных парах разный результат
ветер дунул, логика порушилась
попытка создания алгоритма

а в общем прикольно
продолжайте, пожалуйста
с интересом жду окончательного результата

Никак не обоснованное высказывание. Типа "машина то не машина, на болоте не то что на асфальте". Бред короче)

 
looking foward to the new article.