![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
leonid553 |
![]()
Сообщение
#61
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Вот идея появилась навскидку. Тоже может дать интересный результат. Стохастик привёл только как пример, можно использовать любой другой индикатор. Фишка в выборе "контрольных точек". Идей много, времени мало ![]() Сделал так. Со стохастиком. Максимум того, что удалось выкрутить - +2500 за историю с 2004г. Возможно , можно сделать и больше, если оптимизировать отдельно веса каждого набора контрольных точек? Но не намного, думаю, больше. Да и сил уже не хватило! Код if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)) ... //и только потом торговые операции! На мой взгляд не правильно это. Чес слово - рекламный трюк ![]() Обьясни нам популярно - почему "рекламный трюк"? Давай придумаем иную логику работы - по входу и дальнейшему по сопровожнению! как ты видишь иную логику? Возможно, есть смысл отделить работу советника по длинным и коротким позициям? Т.е. использовать для каждого вида свой эксперт. |
NoName |
![]()
Сообщение
#62
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Цитата Обьясни нам популярно - почему "рекламный трюк"? На мой взгляд, это делается для обеспечения красивой кривой баланса. Это я говорю об этой строке Код if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)) Мы закрываемся только тогда когда у нас есть прибыль. Отсюда и хорошее отношение приб./убыт. сделок. Конечно, такой манёвр подразумевает хоть сколько нибудь прибыльную стратегию, иначе постоянно срабатывающий стоплосс даст совсем иную картину. Вот если прикинуть, чисто теоретически, что мы вошли по сигналу в Бай, и тут же сигнал сменился на противоположный (в данном советнике это совсем не редкость). Правильно ли ждать получения профита (совсем не маленького) для того что бы перевернуться?? Думаю что совсем не правильно! Так же в этой строке кроется ещё один подводный камень, результат дейтвия которого ты ощутил и сам, когда наблюдал за советником на демо. Представим, что я запустил советник и вошёл в рынок как я описал выше, а ты запустил его на один бар позже меня, когда сигнал был такой как нужно, в итоге я буду ждать прибыли наблюдая как цена уходит в противоположном направлении, а ты будешь в это же время её получать, и всё только потому что тебе ПОВЕЗЛО немного больше чем мне. Подобный эффект "везения", на мой взгляд, нужно исключить. Что касается иной логики работы, я сейчас сам в поиске таковой. Я уже немного разобрался с NeuroShell для подключения сетей к МТ и сейчас дело стало именно на организации торговли. Пока мне не удалось получить результатов достойных внимания. |
leonid553 |
![]()
Сообщение
#63
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Меня вот крайне удручают частые ситуации показанные на графике ниже.
Текущая прибыль (зелёная линия) постоянно преобладает над текущим балансом. И каждый раз при этом все прибыльные сделки, тем не менее, закрываются по подтянувшемуся стоплоссу! Как с эти бороться? График - ниже - это версия советника с "разумным тралом". Но и она не оказалась панацеей. С большим трудом оптимизировал по фунту н1. По истории с 2004г --------------------------------------------------------------------------------- Начальный депозит 10000.00 Чистая прибыль 4625.52 Общая прибыль 22424.32 Общий убыток -17798.80 Относительная просадка 10.68% (1078.04) Всего сделок 528 Короткие позиции (% выигравших) 295 (48.47%) Длинные позиции (% выигравших) 233 (47.21%) Прибыльные сделки (% от всех) 253 (47.92%) Убыточные сделки (% от всех) 275 (52.08%) Самая большая прибыльная сделка 561.92 убыточная сделка -66.84 Максимальное количество непрерывных выигрышей (прибыль) 8 (1149.84) непрерывных проигрышей (убыток) 9 (-595.32) -------------------------------------------------------------------------------------------- Может вот здесь что дельное найдется? - http://community.finlist.org/showthread.php?t=744 Эскизы прикрепленных изображений |
leonid553 |
![]()
Сообщение
#64
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Kola:
"А чего тут всего четыре входа у перцептрона? Больше не пробовали? Я делал помощнее перцептрон для анализа цен на много входов трехслойный обучающийся по алгоритму стохастическо-градиентного спуска, только результаты мне не очень надежными показались. Зато тут для анализа используется значение акселератора, может быть так и надо? " Reshetov: "Пробовали. Могу даже сообщить, что чем больше входов, тем точнее описание паттерна (впрочем, слишком детальное тоже не к чему), а следовательно результат будет более приближенным к реальности. А вот при попытках увеличения слоев, все наоборот, вроде бы прибыли по тестам растут, но вне выборки оказываются значительно ниже. Сначала было не совсем понятно, почему так происходит, а потом удалось выяснить. Ведь чем больше слоев, тем меньше паттернов приходится на каждый из них, а следовательно почти тоже самое, что и подгонка под оптимизацию с малым количеством сделок." http://forum.mql4.com/ru/4973/page2 Kola: А Вы в многослойном какую активационную функцию использовали? Reshetov: Для переключения между слоями лучше всего подходит проверка значений основной линии ADX |
leonid553 |
![]()
Сообщение
#65
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
to NoName:
Из любопытства вставил ММ в версию стохастика по образцу, который ты мне недавно любезно предоставил. Выбрал любимую свою пару - EURJPY, т.к. график баланса идет вверх здесь наиболее последовательно с минимальной просадкой. все тесты с сент. 2005г ------------------------------------------------------------------------ Без ММ - Начальный депозит 1000 Чистая прибыль + 4053 Общая прибыль + 8291 Общий убыток -4237 Максимальная просадка 374 Всего сделок 222 ------------------------------------------------------------------------------- ММ - расчет от размера депозита Начальный депозит 1000 Чистая прибыль +37181 Общая прибыль +86091 Общий убыток -48909 Максимальная просадка 7356 (16.15%) -------------------------------------------------------------------------------- ММ - фр/пропорциональный метод Начальный депозит 1000 Чистая прибыль +12874 Общая прибыль +26946 Общий убыток -14072 Максимальная просадка 1327.(19.52%) Относительная просадка 26.15% (749.75) --------------------------------------------------------------------------------- ММ - фр/фиксированный метод Начальный депозит 1000 Чистая прибыль +186823 Общая прибыль +513424 Общий убыток -326600 Максимальная просадка 81909 (30.37%) Относительная просадка 54.41% (3190.26) ------------------------------------------------------------------------------------- Специально взял нач. депо =1000, иначе там уже за 2 млн. прибыль зашкаливает (если депо=10000) В реале не больно-то поторгуешь с такой просадкой! - см. ниже график баланса от фр/фр метода! Скрупулезно просмотрел историю сделок. Обнаружилось оч. любопытная закономерность. По этой паре. ВОТ какая: Оч. часто убыточные сделки группируюются по две подряд! И лишь дважды случилось так, что сразу три подряд сделки оказались убыточными! Что это нам дает? Здесь, в алгоритме работы эксперта, можно предусмотреть (как вариант) включение режима ММ только после двух подряд убыточных сделок! При этом общий итог у нас получается зачастую ничуть не меньше, чем с постоянно включенным ММ! ![]() Где-то видел кусочек кода - с похожим условием - вроде на Ониксе - пойду гляну... ![]() Эскизы прикрепленных изображений |
leonid553 |
![]()
Сообщение
#66
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Цитата Обьясни нам популярно - почему "рекламный трюк"? На мой взгляд, это делается для обеспечения красивой кривой баланса. Это я говорю об этой строке Код if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)) Мы закрываемся только тогда когда у нас есть прибыль. Отсюда и хорошее отношение приб./убыт. сделок. Конечно, такой манёвр подразумевает хоть сколько нибудь прибыльную стратегию, иначе постоянно срабатывающий стоплосс даст совсем иную картину. Вот если прикинуть, чисто теоретически, что мы вошли по сигналу в Бай, и тут же сигнал сменился на противоположный (в данном советнике это совсем не редкость). Правильно ли ждать получения профита (совсем не маленького) для того что бы перевернуться?? Думаю что совсем не правильно! Возможно это не совсем правильно. Но бесконечные перевороты тогда могут присутствовать почти на каждой новой свече! Мы только на одних спредах разоримся! Между тем, "Мы закрываемся, т.е. переворачиваемся - только тогда когда у нас есть прибыль" Те мизерные сделки - профит , которых = спреду, судя по строке кода - в отчете входят в число всех профитных сделок. Но при этом, не следует забывать - что в этих сделках с мизерным профитом, - текущий профит чуть ранее - превышал размер стоплосса! - иначе бы стоплосс не подтянулся! Потом цена развернулась, пошла против нас и этот подтянувшийся стоплосс сработал! ВОТ вопрос - как защитить этот имевшийся ранее профит? Закрывать каждую сделку по достижении OrderStopLoss() + (sl * 2 + spread) * Point)) ? И тут же по новой входить - в соотв. с текущим сигналом перцептрона? Рискуем пропустить тренд. ![]() По большому счету - сигналы-то , прямо скажем, - почти случайные! |
NoName |
![]()
Сообщение
#67
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Ну какой же это мизер?? Советник будет курить пока размер профита не превысит размер стоплоса.
Вот мне недавно попалась одна дипломная работа по теме нейросетей. Не помню откуда скачал. Всем кто интересуется данной темой очень рекомендую ознакомиться! ![]() |
leonid553 |
![]()
Сообщение
#68
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Да, действительно.
И сразу обнаружл то, что не сделано в результирующем перцептроне в нашем случае Эскизы прикрепленных изображений |
leonid553 |
![]()
Сообщение
#69
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Ну какой же это мизер?? Советник будет курить пока размер профита не превысит размер стоплоса. так пусть курят лучше два варианта советника - один из которых работает только в режиме ONLY LONG,а другой - ONLY SHORT Но это в перспективе... В продлжение темы отмечу - что никак не получается добится нужных результатов в многослойном варианте! Привел шкалу индикаторов к "общему знаменателю"! Оптимизировал каждую версию с одинаковым значением стоплосса! По отдельности версии работают оч. удовлетворительно - уже вторую неделю приятно посмотреть на счет , "трудятся" эти эксперты по различным парам! см. закачку!!!!!!!!! ![]() Но суммирующий вариант - не хочет давать приемливый результат! Возможно здесь нужно неким образом синхронизировать работу? Но это уже предусмотрено - работа по ценам открытия! Ещё есть мысль - в суммирующем варианте - вместо общего перцептрона использовать функции "И" - "ИЛИ" - присвоив выходным значениям слагаемых перцептронов индексы =1/=0 , в зависимости от того полож. или отрицательные выходные значения... Прикрепленные файлы ![]() |
NoName |
![]()
Сообщение
#70
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Сделал индикатор, который отображает значения выдаваемые перцептроном, в виде гистограммы. Сделал для перцептрона использующего стохастик, но можно приспособить для любого.
![]() Что бы отображать значения перцептрона с другим индикатором, нужно подставить значения в этом месте: Код double a1 = iStochastic(NULL, 0, iPeriod, 3, 3, MODE_SMA, 0, MODE_MAIN, i) -50; double a2 = iStochastic(NULL, 0, iPeriod, 3, 3, MODE_SMA, 0, MODE_MAIN, i+7) -50; double a3 = iStochastic(NULL, 0, iPeriod, 3, 3, MODE_SMA, 0, MODE_MAIN, i+14) -50; double a4 = iStochastic(NULL, 0, iPeriod, 3, 3, MODE_SMA, 0, MODE_MAIN, i+21) -50; |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 14.3.2025, 13:32 |