Блог им. verumest

Господа, прошу совета в способах оптимизации параметров торговой системы.

Примерные ТТХ системы: система на основе дивергенций: a) инструмента с индикатором №1; b) инструмента с индикатором №2; c) индикатора №1 и индикатора №2 между собой. Тип — intraday (опционально с переносом на вечернюю сессию и через ночь). Условия для входа в сделку не формализованы, окончательное принятие решения о заключении сделки принимается трейдером. Выход из сделки в большинстве случаев осуществляется по условиям системы, в отсутствии которых сделка закрывается либо через trailing-stop, либо перед закрытием основной сессии. Выход с убытком осуществляется через stop-loss за ближайшим локальным экстремумом цены или индикатора. 
 
 Задачи: оптимизировать кол-во пунктов, пройденное инструментом (как относительно текущей цены инструмента, так и относительно величины дивергенции) в направлении потенциальной сделки, при котором входим в позицию, проверить потенциал входа и выхода частями (одинаковыми и различными), оптимизировать выделяемую на каждый инструмент часть средств, проверить возможность переноса сделок на вечернюю сессию и через ночь.

 Интересуют любые способы, методы, платформы и связки для проведения данных процедур, учитывая относительную неформализованность условий для входа и выхода, подразумевая возможность накопления статистики по сделкам «на бумаге» только в ручном варианте. 

Заранее спасибо всем откликнувшимся!



8 комментариев
Мысли свои Вы изложили очень четко — чувствуется основательность отношения к задаче. Только вот
Условия для входа в сделку не формализованы, окончательное принятие решения о заключении сделки принимается трейдером
не позволяет, на мой взгляд, провести какое-нибудь тестирование системы, не говоря уже об оптимизации параметров.
Владислав К, Эта задача решается накоплением статистики по «бумажным» сделкам на истории с получением на выходе, к примеру, текстового файла, содержащего данные о «виртуальной» сделке, такие как краткий код бумаги (допустим SRM9), время предполагаемой сделки в формате sec/min/hr/d/m/y и тип сделки (buy or sell). Формулу трейлинга позиции добавить думаю также не сложно. Данные по каждому инструменту имеются во всех платформах, а при необходимости импортируются с того же finam-а.  
avatar
 По поводу оптимизации.
Если подходить к вопросу основательно, то все не так уж просто.
Приведу абстрактный пример:
Имеем два параметра оптимизации P1 и P2. В процессе оптимизации прогоняем стратегию по всем комбинациям этих параметров с некоторым шагом в пределе диапазонов допустимых значений параметров, в качестве результата каждого прогона стратегии оцениваем параметр оптимизации (это может быть абсолютное значение эквити, процентное, профит-фактор стратегии, что угодно, выделяемое нами как мера «качества» стратегии при заданных параметрах).

Если составить т.н. «тепловую карту» результатов, у нас получится нечто подобное:


На двумерном пространстве параметров (P1,P2) с помощью цвета отмечаем точку, соответствующую качественной оценке стратегии при конкретных значениях параметров P1 и P2. Чем больше мера «качества» стратегии, тем ярче, теплее цвет. Чем хуже результат — тем ближе к «абсолютному нулю» — черному цвету.

Если выполнять оптимизацию тривиально, «в лоб» — искать значение пары параметров, при котором значение меры качества максимально, мы в результате оптимизации получим значения параметров из мелких локальных выбросов в левой части картинки, просто потому, что там значения меры максимальны (самый яркий цвет). Хотя, глядя на картинку, здравый смысл нам подсказывает, что предпочтительнее брать значения параметров из области в правой части, так как там результаты выглядят устойчивее.

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

В общем, толковая оптимизация — это тоже целая наука, усилий придется приложить немало при основательном подходе.
Владислав К, а почему «здравый смысл» подсказывает вам, что предпочтительнее брать параметры в области расплывчатости?
avatar
Kot_Begemot, Изображенное справа пятно с большой площадью может указывать, что там мера качества более устойчива к изменению подгоняемых параметров. Т.е. если мы возьмем «оптимальную» пару параметров P1 и P2 где-то внутри пятна и немного изменим туда-сюда эти параметры, мера качества останется примерно такой же (в окрестностях точки цвет не отличается), т.е. наша стратегия будет давать примерно такой же профит, как и в оптимальной точке, либо ненамного будет отличаться.
А вот вкрапления слева могут свидетельствовать о случайности прибыльного результата в тех точках. Т.е. слегка изменились параметры рынка (или мы недостаточно точно прикинули оптимальные параметры) и стратегия из прибыльной резко становится сливной.
Владислав К, каким это, интересно, образом «вкрапления» свидетельствуют о случайности результата? Они свидетельствуют только о сильной зависимости двух параметров между собой и возникающем нелинейном  эффекте.

Представьте, например, что вы готовите еду. Оптимизируемый параметр — время приготовления и температура. Естественно, что эти два взаимосвязанных параметра дадут вам на карте оптимизации одно единственное «вкрапление» — при низких температурах вы не приготовите еду, а при высоких возникнет риск порчи сырья, от которого вы можете избавиться фиксируя/ ограничивая время приготовления.

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

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

Например, если за P1 на вашей картинке принять размер Stop Loss, а за P2 -«силу» сигнала к покупке, то на явно растущем рынке вы получите примерно такое распределение — после опредёлённого прога стопы вообще перестают браться и не влияют на итоговый результат, аналогично и с параметром P2.

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





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

Т.е., например, кто-то в качестве одного из параметров оптимизирует период простой скользяшки. Предположим, на периоде 100 минутных свечек результат стратегии наилучший. Если проверить периоды от 80 до 120 минут и результат не сильно будет «скакать», то можно сделать предположение, что в этой стратегии что-то есть. Если же при небольшом изменении параметра, например, до 97 или 103 стратегия «легким движением руки» внезапно становится сливной, то тут, скорее всего, имеет место переподгонка. Это я и имел в виду под «случайностью» удачного результата.

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

А нейтральность к данным и есть «переподгонка», в самом простом случае выродженная в стратегию Buy&Hold.

Во втором примере, с арбитражем, вы обращаете внимание на абсолютно другой эффект, не связанный с оптимизацией параметра, но абсолютно верно, трактуемый в негативном ключе через не стабильность получаемого результата. В науке, например, результаты любого эксперимента, которые не является стабильно воспроизводимыми отвергается.
avatar

теги блога Gorazio

....все тэги



UPDONW