75000 вариантов - 4GB оперативки и 4GB дискового кэша мало??? - страница 6

 
Mak:
Renat писал (а):

.... Правда вот почему всего 1000 переборов при столь большом пространстве? Очень уж грубо получается. Я прогнал этого эксперта в МТ4 по области в 1.5 млрд значений и получилось 4400 чистых переборов за 4 минуты на истории в 18000 баров EURUSD H1. ....
А в генетике скорость поиска независит от размера пространства параметров.
Она зависит от качества целевой функции (фитнеса).
А какую целевую функцию Вы использовали?
  • max NetProfit
  • max NetProfit and min DD
  • max NetProfit and max PF
  • что-то еще?
В Вашем коде я в явном виде не увидел такой целевой функции. Вот что у нас есть в качестве оптимизирующих параметров:



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

Сильно сомневаюсь в 100-200 прогонах. Какая же популяция используется? 16? :) На старте при большой области поиска запросто можно на первичной оценке в первом же поколении на популяции в 256 получить 256 переборов. Это самый грязный вариант. Вы про это (произвести прогон первой популяции и остановиться) говорите? Сами верите в результаты 100-200 прогонов на огромном поле вариантов? Кому нужны такие грязные результаты?

Вот что получилось у меня при запуске MACD Sample в 198 билде на Ваших первичных условиях с первой страницы этой ветки:





Из области поиска в 35 млрд переборов было произведено 12800 прогонов за 8 минут 46 секунд на истории 18691 баров в режиме "по ценам открытия". Отчет о лучшем варианте приложен.
 
К сожалению, Ваши отчеты не так просты и показательны как в МетаТрейдере. Вы выложили XLS файл отчета от Омеги с прогоном популяции номер 880, хотя нигде (ни в самом XLS отчете, ни в отчете TSGO, ни в скриншотах этой ветки) нет описаний найденных параметров этого 880 прохода.





Кроме того, есть очень много вопросов по несходимым данным (все это из Ваших отчетов в ZIP файле). Профиты, количество сделок и тд вообще даже близко не сходятся с теми данными, что есть в отчете TSGO (XLS файл сделан для прогона 880, что указано на последней странице отчета).



А также, почему TakeProfit на уровне 80 пипсов, а трейлингстоп на 6700?

Чем это все объясняется? Похоже, что Ваш тест настолько ошибочен, что его никак нельзя принимать в расчет.

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

Поясняю приведенные результаты.

1. Критерий оптимизации у нас может быть произвольным.
(про целевую функцию)
Его вычисляет сам пользователь и передает в TSGO.
Т.е. можно использовать и те что есть у вас, и любые другие, на которые у пользователя фантазии хватит.
Например в качестве критерия можно использовать значимость матожидание сделки.
(т.е. вероятность того, что сделки имеют положительное матожидание, или другими словами - система работает в плюс)
Или некоторые критерии описывающие линейность эквити (это решает задачи аналогичные Walk Forward Optimization) ...
Критерий оптимизации играет важнейшую роль при оптимизации.
(для получения правильного результата, а не CurveFitting)

2. Оптимизация может вестись одновременно по многим критериям.
(про целевую функцию)
Дома у меня есть только прототип следующей версии TSGO, результаты с него я и приводил.
В нем можно задать одновременно несколько критериев оптимизации (см. функцию TS.GO.Criterion(...)).
В примере в таблице вьювера использованные критерии выделены желтым фоном - это NetProfit, MaxDD, ProfitFactor.
Т.е. TSGO искал системы в районе максимума этих трех критериев (MaxDD в Омеге со знаком минус).
Т.е. он искал системы с большой прибылью, с большим ProfitFactor и минимальным DrawDown.
Интересные результаты можно получить максимизируя одновременно NetProfit за каждый год (или месяц),
т.е. ища системы, дающие хорошие результаты за каждый год или даже месяц на истории.
(в TSGO критериев оптимизации можно задать до 1000, реально я пробовал пока около 150-200 - это NetProfit по месяцам на MSFT)

3. Размер популяции у нас до 1000 экземпляров (могли бы сделать больше, но вроде и так очень много).
(Сильно сомневаюсь в 100-200 прогонах. Какая же популяция используется? 16? :))
Конкретно в том примере было кажется 100 (см. значение параметра в функции TS.GO.Popul(...))
Обычно я использую популяцию в 50-100 экземпляров, иногда 1000.
В общем то это мало на что влияет, можно всегда ставить 1000, это почти не влияет на скорость поиска.
Результаты получаются очень точные, даже при 500 прогонов с популяцией 1000 ... :))
А же писал, что использую свой оригинальный алгоритм, про который пока в инете ничего не видел.
Он намного быстрее всех прочих известных мне (и видимо использованных вами) алгоритмов.
Размер популяции в нем большой роли не играет (лишь бы был не слишком маленький) ...

Вы про это (произвести прогон первой популяции и остановиться) говорите?
Это вы говорите, у меня работает по другому.

Сами верите в результаты 100-200 прогонов на огромном поле вариантов?
Верю. Более того, я абсолютно уверен, что результаты ГО не зависят от числа вариантов в пространстве параметров.

Кому нужны такие грязные результаты?
Они не грязные, они разумно достаточные.
Точный результат в ГО вы гарантированно никогда не получите.
Точный результат дает только полный перебор.
Т.е. вы всегда имеете оценку - приближенный результат.
Мой алгоритм может получить хорошую оценку в большинстве случаев уже при 100-200 прогонах.

Из области поиска в 35 млрд переборов было произведено 12800 прогонов

В моем алгоритме было более чем достаточно 2000 прогонов.

К сожалению, Ваши отчеты не так просты и показательны как в МетаТрейдере. Вы выложили XLS файл отчета от Омеги с прогоном популяции номер 880, хотя нигде (ни в самом XLS отчете, ни в отчете TSGO, ни в скриншотах этой ветки) нет описаний найденных параметров этого 880 прохода.
Ну что делать ..
Если бы Omega Research купила наш TSGO и встроила его в свой пакет, тогда тоже была бы просто галочка как у вас.
Ну а пока это просто Add-On к TradeStation.

С результатами все правильно.
Прогон 880 лучший по мнению Омеги (по критерию NetProfit),
но не лучший по мнению TSGO (одновременно по критериям NetProfit, MaxDD, ProfitFactor)

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

Кроме того, есть очень много вопросов по несходимым данным (все это из Ваших отчетов в ZIP файле). Профиты, количество сделок и тд вообще даже близко не сходятся с теми данными, что есть в отчете TSGO (XLS файл сделан для прогона 880, что указано на последней странице отчета).
Да, может возникнуть такое ощущение, вы проделали действительно большую работу разбирая мой пример .. :))
Тут нужно немного пояснений.

Дело в том, что TSGO использует одну особенность Омеги для выдачи отчета по лучшей найденной систем.
Лучшая система - это первая строка из вьювера, подставте ее параметры и вы увидите полное совпадение результатов с отчетом.

Омега ищет систему по своим критериям (нам без разницы каким),
TSGO ищет систему по своим критериям, заданным в сигнале пользователем.

В процессе оптимизации Омега меняет параметр Gen от 1 до К (это параметр оптимизации задаваемый в Омеге).
Значение Gen передается в TSGO.

Если Gen увеличивается, тогда TSGO выдает параметры нового кандидата для тестирования результатов прогона.
Если Gen не увеличился, тогда TSGO считает что оптимизация закончилась (Омега пересчитывает лучший по ее мнению результат),
в этом случае TSGO выдает параметры лучшего найденного экземпляра (из первой строки вьювера).

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

Все это следствия того, что TSGO это Add-On к Омеге, а не ее часть.
По другому сделать не получается.
============================================================================

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

Сами верите в результаты 100-200 прогонов на огромном поле вариантов?
Верю. Более того, я абсолютно уверен, что результаты ГО не зависят от числа вариантов в пространстве параметров.

Не надо веры. Будьте добры, докажите свои слова на этом пересчете:



С результатами все правильно.
Прогон 880 лучший по мнению Омеги (по критерию NetProfit),
но не лучший по мнению TSGO (одновременно по критериям NetProfit, MaxDD, ProfitFactor)

Итак:
  • Вы не привели списка найденных наилучших параметров прогона 880
  • Вы рассказываете что "черное - это белое", обосновывая это особенностями своего аддона
  • Вы прислали заведомо неверный отчет Омеги
  • Вы не указали, какую точно целевую функцию использовали для получения результатов за 1000 прогонов, а вместо этого пошли заявления в режиме "можно то или то" (программист сам может задать в коде критерий - покажите в своем EL коде этот критерий)
Не надо меня _уверять_. Лучше _докажите_ на цифрах и отчетах. Вы сами вынудили нас перейти в область решения задач на уровне "коней в сферическом вакууме" (за это Вам спасибо), мы перешли и порешили задачу. А Вы сами никак ее не решили, да еще и ввели в заблуждение неверными отчетами.

Все, что Вы привели ранее в виде доказательств с самого начала этой ветки - полная чушь с игрой на словах. Нет никаких доказательств, а лишь игра запредельными числами. Будьте добры, возьмите IBM Daily с 1970 по 1999 (именно с начала 1970 по начало 1999) годы и прогоните вышеуказанные (именно их) пределы и опубликуйте такой отчет, чтобы к нему небыло претензий. А я опубликую свой.
 
Ренат, почему вы все время наезжаете?
И почему я тут всегда должен оправдываться?
Если вы хотите, чтобы я ушел с форума, пожалуста.
Забанте меня и здесь, буду больше делом заниматься и меньше отвлекаться на ерунду.

Если вы чего то не поняли, это не значит что вас обманули.
Это значит что вы просто не поняли, и в приличном обществе
люди просто просят объяснить непонятные им вещи.

Люди обычно о других по себе судят.
Я например ни разу не усомнился в честности участников форума.
(в отличии от вас ...)

Отвечаю по порядку.

1. В одном из постов я написал:
Кроме того мы используем оригинальный алгоритм, который на порядок быстрее других известных нам алгоритмов.
1000 прогонов это уже немного перебор, для оценки решения я обычно использую 100-200 прогонов (при любом числе параметров).

Вы мне ответили:

Сами верите в результаты 100-200 прогонов на огромном поле вариантов?
Верю. Более того, я абсолютно уверен, что результаты ГО не зависят от числа вариантов в пространстве параметров.

Не надо веры. Будьте добры, докажите свои слова на этом пересчете:
---
Что я должен вам доказать?
То что "я обычно использую 100-200 прогонов (при любом числе параметров)" ?
И считаю такие результаты достаточно достоверными?

Это мое мнение, и с какой стати мне его доказывать?
Вы так не считаете? - это ваше право.
Можете просто сказать - "Я так не считаю"
Будет два мнения на одну тему.

2. Вы не привели списка найденных наилучших параметров прогона 880
Прогон 880 не является лучшим с точки зрения TSGO,
и возможно его в популяции уже нет.
Лучшим является прогон 919, который показан в первой строке вьювера TSGO.
Именно его результаты вы видите в отчете Омеги.

Сравните.

Во вьювере строка 1
Gen = 919 (это номер прогона)
Trades = 52
NetProfit = 29312.07
MaxDD = -4939.19
PF = 7.42

В отчете Омеги
Total Net Profit = $29 312,07
Total # of trades = 52
Max intraday drawdown = ($4 939,19)
Profit Factor = 7,42

Почему Омега выдала прогон номер 880, я написал в предыдущем сообщении.

3. Вы прислали заведомо неверный отчет Омеги
Я прислал заведомо верный отчет Омеги, посмотрите повнимательнее.

4. Вы не указали, какую точно целевую функцию использовали для получения результатов за 1000 прогонов
Я это уже написал в предыдущем сообщении, оптимизация велась одновременно по трем критериям - NetProfit, MaxDD, ProfitFactor. Во вьювере они выделены желтым фоном.

В коде сигнала на Изи они заданы функцией TS.GO.Criterion

Вот фрагмент кода:
R = TS.GO.Method(1); -- включение многокритериальной оптимизации.
R = TS.GO.Criterion("NetProfit",1); -- первый критерий
R = TS.GO.Criterion("MaxDD",1); -- второй критерий
R = TS.GO.Criterion("PF",1); -- третий критерий

Значения критериям присваиваются в конце кода на последнем баре:
R = TS.GO.Set("NetProfit",NetProfit);
R = TS.GO.Set("MaxDD",MaxIDDrawDown);
R = TS.GO.Set("PF",GrossProfit/(0.001-GrossLoss));

У меня нет желания выслушивать ваши наезды.
Уж если разговаривать, то на равных.
Вы согласны?

Тогда пожалуста потрудитесь доказать ваши УТВЕРЖДЕНИЯ.

1. Вы прислали заведомо неверный отчет Омеги
2. Вы не указали, какую точно целевую функцию использовали для получения результатов
3. А Вы сами никак ее не решили, да еще и ввели в заблуждение неверными отчетами.
4. Все, что Вы привели ранее в виде доказательств с самого начала этой ветки - полная чушь с игрой на словах. (это не просто утверждение - это уже оскорбление)
5. Нет никаких доказательств, а лишь игра запредельными числами.
 
Как Вы сами видите, Вам приходится в нескольких постах объяснять, почему одно - это другое, а другое - это все-таки третье. Особенно это интересно, когда речь идет об отчетах и доказательствах. Как я обычно прошу - простых и понятных. Нужны компьютерные отчеты, к которым идет максимум по одной строчке авторских комменариев.

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

После этого задания можем плавно перейти к заявлению о достаточности 100-200 прогонов на огромных полях вариантов.
 
Я вам привел компьютерные отчеты.
В них была только одна непонятка с номером прогона в Омеге.
В следующем посте я вам детально объяснил с чем это связано.

О достаточности 100-200 прогонов на огромных полях вариантов.

Я не делал заявлений и утверждений.
Буквально я написал следующее:
... для оценки решения я обычно использую 100-200 прогонов (при любом числе параметров)

Разницу между "оценкой" и "достаточностью" вы понимаете?

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

После этого задания ...
А вы приняли меня на работу чтобы выдавать мне задания ?

Я продолжаю ждать от вас доказательств ваших УТВЕРЖДЕНИЙ.
 
Предоставьте чистый отчет, мы его заново проверим и я принесу извинения там, где был неправ. С отчетами полная неразбериха, да еще и найденные параметры очень слабо походят на лучшие варианты. Посмотрим на чистый отчет, а затем оценим корректность генетического оптимизатора (Вашего и нашего).

Если Вы делаете запредельные технические заявления, то будьте добры их доказать.
Со 100-200 прогонами мы уже разобрались и оказалось, что это абсолютно грязные (пусть "оценочные") результаты (я об этом сразу же сказал, но Вы не согласились). И это Вам пришлось признать только под нажимом.
 
Если Вы делаете запредельные технические заявления, то будьте добры их доказать.

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

Со 100-200 прогонами мы уже разобрались и оказалось, что это абсолютно грязные (пусть "оценочные") результаты (я об этом сразу же сказал, но Вы не согласились). И это Вам пришлось признать только под нажимом.

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


Специально для вас,
прогнал еще раз оптимизацию в Омеге.
Чтобы вам было проще, оставил только один критерий оптимизации - NetProfit.
В Омеге использовался тот же критерий.
Всего было 1000 прогонов.

IBM, 7800 баров, до 1999/12/31
(у Омеги нет даты начала периода, есть дата конца и число баров)

Тестирование на дневках по Close бара (по Open Омега не делает)
Стопы, тейки и трейлинги в коде сделаны отложенными ордерами,
поскольку Омега внутри бара иначе не работает, а данные есть только дневки.

Во вложении:
@Renat.txt - код сигнала на EL, от предыдущего отличается тем, что оставлен только один критерий.
1000.XLS - отчет Омеги по системе (лучший прогон по версии Омеги)
SOR.xls - отчет Омеги по тестированию (все прогоны)
TSGO-1000.CSV - состав последней популяции в TSGO (размер популяции 100).

В коде сигнала изменен блок определения критериев:

R = TS.GO.Method(1);
R = TS.GO.Criterion("NetProfit",1); -- второй параметр = 1 - ищем максимум критерия
R = TS.GO.Criterion("MaxDD",0); -- второй параметр = 0 - оптимизация по критерию отключена
R = TS.GO.Criterion("PF",0); -- второй параметр = 0 - оптимизация по критерию отключена

Обратите внимание

1.
первая строка во вьювере соответствует первой строке в популяции и соответствует результатам в Омеге.
2. номер лучшего прогона во вьювере 401, в Омеге 948, если вы посмотрите в SOR.xls, то увидите, что результаты у этих прогонов совпадают. TSGO повторные совпадающие результаты отбрасывает.
3. если вы посмотрите состав последней популяции, то увидите, что лучший найденный результат имеет NetProfit 1891.86 (на 401 прогоне), результат 213 прогона равен 1814.16, результат 93 прогона равен 1796.40. Т.е. на 93 прогоне был найден результат отличающийся от лучшего найденного за 1000 прогонов на 5.3% что на мой взгляд уже неплохо, и может быть принято за хорошую оценку NetProfit.


Ниже скриншот

Файлы:
1000.zip  35 kb
 
Спасибо, сегодня вечером постараюсь все перепроверить и отвечу.