Предложения для эксперта (от убытков к прибыли) - страница 7

 
diostar:

Нет. На данном этапе это не совсем так. Это может быть пустой тратой времени, тестирование от покупки к продаже и наоборот, хотя это и дало изменения. Когда я говорил, я имел в виду именно это:

Нахождение наилучшего решения за минимальное время. В то же самое (очень короткое) время, 5-10 минут максимум, тестировать логику на единицу, чтобы логика могла быть определенной, скажем. 99% хорошо или 99% плохо, это практически подтверждено.

1) Вы просто берете 1 главную логику, скажем, для примера:

и удаляете все остальные, и делаете следующее:

т.е. на единицу логики - тестирование БОЛЬШИНСТВА покупок и продаж, в ОДНО И ТО ЖЕ время. Таким образом, если вы хотите провести оптимизацию с этой 1 главной логикой, вы просто оптимизируете только по вашим основным параметрам - sl,tp, lots, etc. Затем проанализируйте случаи своих покупок и продаж, судите, может ли эта 1 логика сделать срез, в обоих сценариях - делает ли она неправильные или правильные входы. И то, и другое. Затем переходите к следующей логике.

По мере продвижения, вы можете попробовать комбинации... 1-я логика - только покупка, 2-я логика - только продажа, или обе, и т.д. Я считаю, что этот способ более структурирован, и вы действительно можете увидеть, какая именно логика вызывает просадку.


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

Мой вопрос: какие параметры я должен выделить, чтобы сосредоточиться строго на прибыли?

  • MAs?
  • TP
  • SL
  • ?
 
c0d3:

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

Мой вопрос: какие параметры я должен изолировать, чтобы строго сосредоточиться на прибыли?

  • МА?
  • TP
  • SL
  • ?

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

Но я задавался вопросом: "Как это можно доказать в тестере стратегий, если это действительно так? Наверняка должен быть способ". Так я случайно наткнулся на этот метод.

Вы просто берете, в этом случае, эти логические МА в состоянии проверки, одну за другой, скажем, например, вы начинаете с M240close< MA 240. Вы проверяете обе стороны - покупку и продажу, В ОДНО И ТО ЖЕ ВРЕМЯ. Вот это и есть те самые случаи:


1) Теперь, математически, если эта логика действительно осуществима, результат должен быть в некоторой степени НЕЙТРАЛЬНЫМ, так как он охватывает обе стороны. Согласны? Если он получается прибыльным - тогда вы можете сделать вывод, просматривая результаты покупок и продаж, что эта логика делает срез очень, очень хорошо, даже в то время как она принимает удары от противоположной стороны. Значит, она очень здравая.

2) Теперь, если все обернется катастрофой, вы можете сделать вывод, что ВСЯ логика, т.е. сравнение закрытия на 240 с МА 240, на 100% ошибочна против всех видов движения рынка. Это должно убедить вас в том, что вся логика должна быть отменена, заменена полностью.

Остальное - tp, sl - оставьте для оптимизации. На данном этапе важнее добиться правильной логики, кусочек за кусочком.

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

 
diostar:

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

Но я задавался вопросом: "Как это можно доказать в тестере стратегий, если это действительно так? Наверняка должен быть способ". Так я случайно наткнулся на этот метод.

Вы просто берете, в этом случае, те логические MA в состоянии проверки, один за другим, скажем, например, вы начинаете с M240close< MA 240. Вы проверяете обе стороны - покупку и продажу, В ОДНО И ТО ЖЕ ВРЕМЯ. Вот это и есть те самые случаи:


1) Теперь, математически, если эта логика действительно осуществима, результат должен быть в некоторой степени НЕЙТРАЛЬНЫМ, так как он охватывает обе стороны. Согласны? Если он получается прибыльным - тогда вы можете сделать вывод, просматривая результаты покупок и продаж, что эта логика делает срез очень, очень хорошо, даже в то время как она принимает удары от противоположной стороны. Значит, она очень здравая.

2) Теперь, если все обернется катастрофой, вы можете сделать вывод, что ВСЯ логика, т.е. сравнение закрытия на 240 с МА 240, на 100% ошибочна против всех видов движения рынка. Это должно убедить вас в том, что вся логика должна быть отменена, заменена полностью.

Остальное - tp, sl - оставьте для оптимизации. На данном этапе важнее добиться правильной логики, кусочек за кусочком.

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

Почему бы просто не оптимизировать все переменные одновременно? Это может занять некоторое время, чтобы запустить тест оптимизации, но именно поэтому у меня 2 компьютера. Один для тестирования, другой для разработки.

Предположим, у вас есть оболочка советника, которая функционирует должным образом, т.е. SL, TP, Trailing SL, Increment, Stack, Risk, много часов для торговли, электронная почта, отчетность, открытие закрытие ордеров, работает на нескольких парах и т.д. Если предположить, что все это работает правильно, что является немаловажной задачей, то остается только логика, которую вы используете для входа в сделку. В моем случае у меня есть Trade(), которая возвращает 1, 0 или -1. Логика в Trade() может быть любой системой, которую вы хотите подключить.

Сначала я тестирую свою торговую логику\систему в визуальном режиме, чтобы убедиться, что логика работает правильно, например, стопы установлены в правильном месте, вход осуществляется в правильном месте\bar\level и все, что требует система. Как только это сделано, обычно это занимает час или сото теста, если только я полностью не сошел с ума. Затем я запускаю всю оптимизацию для диапазонов TP, SL Stack, торговых часов и любых переменных, которые необходимо протестировать в рамках торговой логики Ma, баров паттернов и т.д.

Если вы проведете все оптимизации в одно и то же время, это даст вам лучшее представление о том, работает ли стратегия. Если вы хотите сократить время тестирования, проведите оптимизацию в течение более короткого периода времени, просто чтобы почувствовать вкус системы, скажем, 1-2 месяца. Это не займет много времени - 4-8 часов или около того, если вы не будете превышать свои диапазоны. Если все выглядит многообещающе, запустите реальный бэктест, который даст вам реальное представление о том, как работает система. Ничто не запрещает вам остановить бэктест после 100 прогонов, потому что он уже выглядит как неудачный.

В своем тестировании я смотрю на просадку как на показатель номер один. Если мой советник просаживает более 12% при риске 2%, то я в любом случае возвращаюсь на исходную позицию. Если все получается, я смотрю на процент выигрышей и проигрышей, а также на соотношение среднего выигрыша к среднему проигрышу. Я не уверен, что вы получите эти цифры быстрее, если будете делать это по-своему. Если большинство, 80-90% моих прогонов не сводят счет к 0, то у вас есть все шансы получить прибыльного советника. Затем я беру прогоны со средней прибылью, усредняю и переоптимизирую с меньшими диапазонами, чтобы получить настройки для дальнейшего тестирования на живых данных. Только на это может уйти месяц. Я бы не стал работать с реальными деньгами, пока это не будет сделано.

Учитывая все вышесказанное, это просто способ, которым я занимаюсь разработкой, по крайней мере, советников.

Я не согласен с 1 или 2 пунктами.

1) Я не думаю, что вы можете доказать или даже узнать, будет ли система прибыльной, пока вы не проведете опцию через бэктестер со всеми возможными переменными. Что, если SL, TP, стек, расстояние между стеками или MoveStop делают стратагему победителем, это не совсем "что, если", это факт. Если вы тестируете свой способ, вам все равно нужен SP, TP или что-то еще, чтобы увидеть выигрыш или проигрыш. Если у вас есть SL в 100 пунктов на 1-минутном графике, у вас, скорее всего, будет отличная система с 85 -> 98% побед. Я могу сказать вам, что она не будет работать так, когда вы запустите ее в оптимизационном режиме. У вас может быть 30% коэффициент выигрыша и очень прибыльный советник. Вы также можете иметь 90% выигрышей, а просадка может составлять 70%, и 3000 из 4000 оптимальных прогонов сливают счет. В конце концов вы все равно сделаете полный прогон. Почему бы не сделать это сначала и параллельно не написать новую систему.

2) Это может обернуться катастрофой, и вы бросите систему без полного тестирования. Это может быть похоже на то, как если бы вы выбросили выигрышный билет в пауэрбол в мусорное ведро, потому что вы только что проверили номер пауэрбола и знаете, что не сорвали джекпот. У вас были другие пять номеров, и вы просто выбросили в мусор 250-тысячный выигрыш, а теперь у какого-то голубя есть очень дорогое гнездо.

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

Просто мои 2 цента.

 
danjp:

Почему бы просто не оптимизировать все переменные одновременно? Это может занять некоторое время, чтобы запустить тест оптимизации, но именно поэтому у меня есть 2 компьютера. Один для тестирования, другой для разработки.

Предположим, у вас есть оболочка советника, которая функционирует должным образом, т.е. SL, TP, Trailing SL, Increment, Stack, Risk, много часов для торговли, электронная почта, отчетность, открытие закрытие ордеров, работает на нескольких парах и т.д. Если предположить, что все это работает правильно, что является немаловажной задачей, то остается только логика, которую вы используете для входа в сделку. В моем случае у меня есть Trade(), которая возвращает 1, 0 или -1. Логика в Trade() может быть любой системой, которую вы хотите подключить.

Сначала я тестирую свою торговую логику\систему в визуальном режиме, чтобы убедиться, что логика работает правильно, например, стопы установлены в правильном месте, вход осуществляется в правильном месте\bar\level и все, что требует система. Как только это сделано, обычно это занимает час или сото теста, если только я полностью не сошел с ума. Затем я запускаю всю оптимизацию для диапазонов TP, SL Stack, торговых часов и любых переменных, которые необходимо протестировать в рамках торговой логики Ma, баров паттернов и т.д.

Если вы проведете все оптимизации в одно и то же время, это даст вам лучшее представление о том, работает ли стратегия. Если вы хотите сократить время тестирования, проведите оптимизацию в течение более короткого периода времени, просто чтобы почувствовать вкус системы, скажем, 1-2 месяца. Это не займет много времени - 4-8 часов или около того, если вы не будете превышать свои диапазоны. Если все выглядит многообещающе, запустите реальный бэктест, который даст вам реальное представление о том, как работает система. Ничто не запрещает вам остановить бэктест после 100 прогонов, потому что он уже выглядит как неудачный.

В своем тестировании я смотрю на просадку как на показатель номер один. Если мой советник просаживает более 12% при риске 2%, то я в любом случае возвращаюсь на исходную позицию. Если это получается, я смотрю на процент выигрышей и проигрышей, а также на соотношение среднего выигрыша к среднему проигрышу. Я не уверен, что вы получите эти цифры быстрее, если будете делать это по-своему. Если большинство, 80-90% моих прогонов не сводят счет к 0, то у вас есть все шансы получить прибыльного советника. Затем я беру прогоны со средней прибылью, усредняю и переоптимизирую с меньшими диапазонами, чтобы получить настройки для дальнейшего тестирования на живых данных. Только на это может уйти месяц. Я бы не стал работать с реальными деньгами, пока это не будет сделано.

Учитывая все вышесказанное, это просто способ, которым я занимаюсь разработкой, по крайней мере, советников.

Я не согласен с 1 или 2 пунктами.

1) Я не думаю, что вы можете доказать или даже узнать, будет ли система прибыльной, пока вы не проведете опцию через бэктестер со всеми возможными переменными. Что если, SL, TP, Stack, расстояние между Stack, или MoveStop делает стратагию победителем, Это не совсем "что если", это факт. Если вы тестируете свой способ, вам все равно нужен SP, TP или что-то еще, чтобы увидеть выигрыш или проигрыш. Если у вас есть SL в 100 пунктов на 1-минутном графике, у вас, скорее всего, будет отличная система с 85 -> 98% побед. Я могу сказать вам, что она не будет работать так, когда вы запустите ее в оптимизационном режиме. У вас может быть 30% коэффициент выигрыша и очень прибыльный советник. Вы также можете иметь 90% выигрышей, а просадка может составлять 70%, и 3000 из 4000 оптимальных прогонов сливают счет. В конце концов вы все равно сделаете полный прогон. Почему бы не сделать это сначала и параллельно не написать новую систему.

2) Это может обернуться катастрофой, и вы бросите систему без полного тестирования. Это может быть похоже на то, как если бы вы выбросили выигрышный билет в пауэрбол в мусорное ведро, потому что вы только что проверили номер пауэрбола и знаете, что не сорвали джекпот. У вас были другие пять номеров, и вы просто выбросили в мусор 250-тысячный выигрыш, а теперь у какого-то голубя есть очень дорогое гнездо.

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

Просто мои 2 цента.

Ну, тогда давайте договоримся о несогласии.... и спасибо, что написали действительно длинный пост. может быть, эта статья подойдет. оптимизация = ловушка, вы можете упасть в нее. https://www.mql5.com/en/articles/1434

 

@c0d3: Вот совет, который мне дали несколько замечательных разработчиков на этом форуме. Никогда не используйте оптимизатор стратегий (за исключением тонкой настройки). Идеальный процесс разработки таков: 1) Вы думаете, что стратегия имеет смысл. 2) Вы кодируете и тестируете стратегию. 4) Стратегия приносит прибыль. 5) Вы используете Optimizer для тонкой настройки. 6) Вы учитесь на тех участках, где стратегия потерпела неудачу.

Оптимизатор - это #-крутилка, благодаря которой 1 пип Sl/Tp становится разницей между победой или поражением. Оптимизация переменных по одной за раз или всех вместе не имеет никакого значения, IMO. Вот моя святая святых, когда я был новичком 1 месяц назад. Если бы это было так просто, я бы не искал лучших методов.

 
ubzen:

@c0d3: Вот совет, который мне дали несколько замечательных разработчиков на этом форуме. Никогда не используйте оптимизатор стратегий (за исключением тонкой настройки). Идеальный процесс разработки таков: 1) Вы думаете, что стратегия имеет смысл. 2) Вы кодируете и тестируете стратегию. 4) Стратегия приносит прибыль. 5) Вы используете Optimizer для тонкой настройки. 6) Вы учитесь на тех участках, где стратегия потерпела неудачу.

Оптимизатор - это #-крутилка, благодаря которой 1 пип Sl/Tp становится разницей между победой или поражением. Оптимизация переменных по одной за раз или всех вместе не имеет никакого значения, IMO. Вот моя святая святых, когда я был новичком 1 месяц назад. Если бы это было так просто, я бы не искал лучших методов.

Эти пункты - именно то, что было в статье об оптимизации. И мое личное мнение тоже тестера. Я удивлен, почему вообще советуют обратное. Противоречия в бизнесе?

В целом, трейдинг - относительно "простая" игра, если принять во внимание этот факт. Никто, даже гении, не торгует целыми днями, как это делают некоторые роботы - у хороших, исключительных роботов уходит всего 15-30 минут, максимум 1 час на вход, вывод 70-100 пунктов и обед. Звучит достаточно сложно для робота? Если вы можете делать это еженедельно или ежедневно, и любить это делать до старости, как та старушка из YTE, это то, что я называю святым Граалем. а не какой-то робот, которого нужно дорабатывать вечно.

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

Если вы хотите знать больше, то я могу поделиться с вами надеждой, что тестирование и оптимизация - это не более чем умная механическая статистика, заставляющая данные работать по логике, которой ВЫ дали ей следовать. Но правда в том, что рынки не работают по статистическим законам или по ВАШЕЙ логике, если вы еще не поняли этого.

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

Мой совет таков: воспринимайте эту возню как хобби и занимайтесь трейдингом ОТДЕЛЬНО. Если вы хотите совместить их оба, то будьте готовы стать жертвой, в долгосрочной перспективе.

 

99% людей, торгующих на Forex, проигрывают. Это трейдеры-не-роботы. Роботы - это не зло, это инструмент. Робот хорош только настолько, насколько хороши деньги и время, которые вы за него платите. ;)

 
diostar:

Ну, тогда давайте договоримся о несогласии.... и спасибо, что написали действительно длинный пост. может быть, эта статья подойдет. оптимизация = ловушка, в которую вы можете попасть. https://www.mql5.com/en/articles/1434


Оптимизация - это ловушка, если вы позволите ей заманить вас в ловушку. Я использую оптимизацию, чтобы заключить как можно больше сделок за определенное количество лет. Пока я занимаюсь чем-то другим. Я бы не вложил ни цента своих денег в робота, который не был протестирован, проверен на обратном пути и не прошел дальнейшее тестирование. Проблема заключается во времени, как долго вы собираетесь ждать, чтобы торговать реальными деньгами. Я торгую уже 5 лет или около того, преимущество робота перед человеком заключается в следующем: он делает то, на что вы его запрограммировали. Он не включает CNBC и не слушает, что думает какой-то идиот, он не ждет нового релиза, он не нервничает и не останавливает сделку раньше времени, потому что у него было предчувствие, что рынок развернется. Это также работает, если вы не являетесь трейдером с полной занятостью.

Если вы запускаете 12 000 симуляций в оптимизаторе и 70% из них проваливаются, а 10% прогонов приносят вам 2000% или любое другое сумасшедшее число, которое ищут люди, то у вас довольно убыточная система, и не стоит тратить время на ее тестирование.

Если вы думаете, что будете тестировать систему вручную в течение нескольких лет и настраивать ее после каждого прогона, меняя по одному параметру, то это еще большее безумие, чем запуск оптимизатора. Однако если вы выполните, скажем, 15 000 проходов в opt и ни один из этих проходов не окажется неудачным, тогда у вас есть система, которая готова, по крайней мере, к тому, чтобы запустить ее на демо-счет для тестирования в течение, скажем, 4 недель. BTW в этот момент вы собираетесь найти реальные ошибки кодирования.

Покажите мне человека, который торгует 15-30 минут в день и зарабатывает 100-150 пунктов, а затем уходит на обед, я покажу вам того, кто не торгует реальными деньгами. Трейдинг - это работа на полную ставку, как и любая другая работа.

Если это хобби, то я не уверен, зачем вам тратить время на этот вид кодирования. Это довольно просто технически, и вы не заработаете столько денег, сколько заработали бы на обычной работе по развитию. Я работаю над системой, которая насчитывает около 2 миллионов строк кода на 4 языках и работает на мэйнфреймах, ПК, всех версиях UNIX и большинстве операционных систем Linux.

По моему скромному мнению, статья была интересной. Это не значит, что я верю каждому слову в ней. Это просто мнение автора. Вероятно, им пришлось провести множество оптимизаций, чтобы прийти к выводу, что оптимизация - это ловушка. Если они это сделали, то как статья может быть правильной, ведь оптимизация не работает.

 
ubzen:

@c0d3: Вот совет, который мне дали несколько замечательных разработчиков на этом форуме. Никогда не используйте оптимизатор стратегий (за исключением тонкой настройки). Идеальный процесс разработки таков: 1) Вы думаете, что стратегия имеет смысл. 2) Вы кодируете и тестируете стратегию. 4) Стратегия приносит прибыль. 5) Вы используете Optimizer для тонкой настройки. 6) Вы учитесь на тех участках, где стратегия потерпела неудачу.

Оптимизатор - это #-крутилка, благодаря которой 1 пип Sl/Tp становится разницей между победой или поражением. Оптимизация переменных по одной за раз или всех вместе не имеет никакого значения, IMO. Вот моя святая святых, когда я был новичком 1 месяц назад. Если бы это было так просто, я бы не искал лучших методов.

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

Если вы думаете, что будете тестировать систему вручную в течение нескольких лет и настраивать ее после каждого прогона, меняя по одному параметру за раз, то это еще большее безумие, чем запуск оптимизатора. Однако если вы выполните, скажем, 15 000 проходов в opt и ни один из этих проходов не окажется неудачным, тогда у вас есть система, которая готова, по крайней мере, к тому, чтобы запустить ее на демо-счет для тестирования в течение, скажем, 4 недель. BTW в этот момент вы собираетесь найти реальные ошибки кодирования.


Это хорошая мысль, насчет обратного тестирования.