Процесс разработки системы Ubzen

 

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

Итак, у нас уже есть система, предоставленная участником по имени sakis. Небольшой 3-месячный тест показал ожидаемые результаты. Теперь я изучаю, как получить все статистические измерения за этот период, используя эту статью. Сначала я начну с Mae/Mfe.

 

ubzen Существует два подхода к определению MAE/MFE каждой сделки во время бэктестинга.

Первый метод, которого я придерживался, заключался в отслеживании максимальной прибыли/убытка позиции тик за тиком во время бэктестинга, фиксируя экстремальные значения в режиме "реального времени". Этот подход требует наибольших затрат процессора, но в то же время наименее подвержен систематическим ошибкам в конечном результате.

Второй метод, который я использую в настоящее время, заключается в том, чтобы дождаться завершения бэктеста и затем во время выполнения функции deinit() просмотреть историю ордеров, извлечь временные метки открытия и закрытия ордеров для каждой сделки и найти экстремально низкую и экстремально высокую цену, которая произошла между этими двумя временными метками. А затем используйте эти экстремальные цены для расчета MAE и MFE, которые должны были иметь место для сделки в это время.

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

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

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

 

привет ubzen как дела?

1) Ваша логика выхода, похоже, не работает так, как определено в оригинальной системе, по крайней мере, при первом взгляде на график.

2) Система работает для меня лучше с соотношением риск-ревард 2 вместо одного, возможно, динамический RRR может даже улучшиться больше.

3) 01.01.2010 - 01.03.2010, похоже, является наилучшей точкой для этого советника, почти без потерь, период может быть немного мал для тестирования и не очень удачно выбран.

4) У нас разная интерпретация стратегии, после пересечения price/ma я понимаю, что MACD уже должен пересечь 0 (но не более чем через 5 баров), но вы ждете пересечения macd и открываете ордера.

-Моя интерпретация фильтрует уже много сделок.

Я добавил:

a)поддержка для покупок и продаж в одно и то же время. (также если ордера находятся в безубытке, можно открывать новые ордера).

b) фильтр входа по точкам разворота (покупать только выше/продавать только ниже)

c) я использую CCI вместо оригинальной логики выхода. (В этом деле еще многое предстоит сделать).

Вот несколько фотографий:


 

Спасибо Zzuegg,

Ты такой рисковый человек ;). 10% ???. Я рад видеть, что это в какой-то степени работает в будущем. Я боялся заглянуть в будущее, опасаясь подгонять эту штуку по кривой. Один визуальный взгляд - это все, что нужно.

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

2) Система работает для меня лучше с соотношением риск-ревард 2 вместо одного, возможно, динамический RRR может даже улучшиться больше. Вот почему я делаю все это, чтобы увидеть, что можно улучшить.

3) С 01.01.2010 по 01.03.2010, похоже, была лучшая точка для этого советника, почти без потерь, период может быть немного мал для тестирования и не очень удачно выбран. Так что он попал в точку с первой попытки, я боялся этого. Мне действительно неважно, является ли эта штука святым Граалем. Я просто использую ее в качестве примера, это не моя система, поэтому я могу опубликовать коды.

4) У нас разная интерпретация стратегии, после пересечения price/ma я понимаю, что MACD уже должен пересечь 0 (но не более чем через 5 баров), но вы ждете пересечения macd и открываете ордера. Да, я учил об этом. Только оригинальный провайдер может прояснить это сейчас.

 
ubzen:

Спасибо Zzuegg,


3) 01.01.2010 - 01.03.2010 похоже, что это лучшая точка для этого советника, почти без потерь, период может быть немного мал для тестирования и не очень удачно выбран.
Так что он попал в точку с первой попытки, я боялся этого. Мне действительно неважно, является ли эта штука святым Граалем. Я просто использую ее в качестве примера, это не моя система, поэтому я могу выложить коды.

Если это работает хорошо, почему бы не использовать систему? Еще многое предстоит сделать, но для сырой стратегии это показывает потенциал. Логика выхода должна быть сильно расширена с моей точки зрения.

Что касается 10%, мне нравится видеть подъемы и спады четко на тест-рунах, для реалистичного моделирования это, конечно, не подходит.


добавить:

Самое интересное, что даже при соотношении риск-ревард 2 эта система выиграла более 50% сделок, что является неплохим преимуществом.

 

@1005phillip: Предупреждение принято к сведению. Я никогда не тратил время на загрузку тик-данных. Насколько велика эта проблема?

Поскольку максимальное неблагоприятное отклонение должно быть более важным для трейдера, мы начнем с него. Используя те же результаты, я построил в Excel линию тренда, как я полагаю (метод LS), кто-нибудь поправьте меня, если я ошибаюсь. Инструмент, использованный для создания электронной таблицы, был инструментом Роша, найденным здесь. Далее, я буду использовать инструмент 1005phillip's, найденный здесь, чтобы оценить его на основе некоторых различных постоянных времени.

Что ж, у него положительный наклон. Итак, что это значит и как мы можем сделать его лучше? Черт, если бы я знал это, я бы не стал здесь экспериментировать. Однако, как и написано в статье, "Положительный" - это одно очко в нашу копилку. Я собираюсь оставить логику Stop_Level на месте. Когда мы протестируем его с разными time-2-close, эти цифры должны сильно измениться.

Ниже приведено изображение графика и склона..... Я также приложил .csv, созданный отчетом.

Файлы:
 

ubzen, это вопрос личных предпочтений, что вы делаете с данными MAE.

Я не характеризую MAE в сравнении с P/L... для меня это не является статистически обоснованной причинно-следственной связью.

Я характеризую MAE так: MAE говорит вам, что ваша "стратегия входа" привела вас в позицию слишком рано, на величину, равную MAE. Таким образом, ваш "потенциал прибыли" по сделке был подорван на величину, равную MAE.

MAE - для настройки стратегии входа. MFE - для настройки стратегии выхода.

Разницу между MFE и OrderProfit я называю "избыточным MFE" или просто "EMFE", и это деньги, которые вы оставили на столе в силу того, что ваша стратегия выхода держала позицию открытой слишком долго.

И в-третьих, время - это деньги. Капитал, связанный с поддержанием маржинальной позиции по сделке, - это капитал, который не может быть использован для поддержки другой сделки. Поэтому "время до MAE" и "время до EMFE" являются параметрами для анализа, поскольку они указывают вам на то, что вы не используете свой капитал разумно/эффективно.

И, наконец, крайне важно изучить хронологию возникновения MAE и MFE. Если MAE происходит до MFE, то сделка была хорошей, но нуждается в оптимизации, чтобы настроить стратегии входа и выхода для минимального MAE и минимального EMFE.

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

Кажется, я уже публиковал эти данные, но не могу вспомнить:

 
Спасибо за эти графики, 1005филлип. Для меня это очень хорошо объясняет.
 
Привет, Филипп, я застрял и нуждаюсь в вашей помощи. Используя ваш инструмент, я почему-то получаю значения, которых не ожидал. Например, когда я суммирую прибыль/убыток в Pips Data, он возвращает отрицательное число, но в симуляторе оно было положительным. Я предполагаю, что это как-то связано с частотой, но не могли бы вы объяснить. Собирался написать вам в почту, но, возможно, у других есть такие вопросы о вашем инструменте. Спасибо.... Ниже прикреплены файлы из теста.
Файлы:
help.zip  20 kb
 
@1005phillip спасибо за графики! Я уже давно закодировал эту статистику в своем советнике... это определенно улучшает мою интерпретацию цифр, которые он выдает!!!
 

Привет, Филипп. Просто несколько небольших вопросов с моей стороны:

После использования вашего инструмента я получил эти файлы гистограмм. До этого момента я внимательно посмотрел на "Profitloss versus MAE & MFE" в пунктах.

Насколько я понял, эти значения показывают пипсы, которые я упустил во время открытой сделки. В принципе, наилучшие результаты будут тогда, когда Profit==MFE и MAE==0. Правильно?

Если вы посмотрите на рисунок ниже, то увидите:

  • если советник получает прибыль, то она близка к MFE (конечно, так как я использую тейкпрофиты)
  • если советник получает прибыль, то MAE в основном близок к 0, что означает, что и входы довольно хорошие. (по крайней мере, лучшие во время открытия ордера).
  • если советник приносит убытки, то MAE в основном совпадает с MAE (конечно, поскольку используется стоплосс):
  • Если в этом случае MFE близок к 0, то шансов получить прибыль не было.
  • Если же MFE высок, то это означает, что я пропустил выход.

Правомерны ли эти выводы?