грааль для тестера - продолжаем разговор
|
|
mik52 | Дата: Среда, 07.01.2009, 22:21 | Сообщение # 31 |
Полковник
Группа: Модераторы
Сообщений: 170
Статус: Offline
| .... мужыки ВЫ такие умные ... можно с вами постоять на ветке ...киньте ссылку чтоб врубиться об чём речь ...
|
|
| |
Vinin | Дата: Четверг, 08.01.2009, 04:22 | Сообщение # 32 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| Quote (Vinin) На вход массив из 15 элементов. На выходе номер паттерна Прикрепления: EURUSD60.mq4(69Kb) Рустам. Ошибка была. Надо ArrayMaximum() поменять на ArrayMinimum() Забыл уже. Давно этим делом не занимался
|
|
| |
xrust | Дата: Четверг, 08.01.2009, 07:00 | Сообщение # 33 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| Сделал размер окна изменяемым , и заметил одну неприятную особенность - при увеличении размаха сигнала , или при переходк на более старший тайм пропускаются пикселя, буду работать с масштабатором, потом попытаюсь приделать блок аналитики результатов . наверно прийдется в экселе на барсике... куда будем дальше двигаться?
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 04:46 | Сообщение # 34 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| Что такое масшабатор? Что такое пикселя?
|
|
| |
xrust | Дата: Пятница, 09.01.2009, 05:55 | Сообщение # 35 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| смотри , окно у нас сейчас 15Х15 пикселей когда мы прогоняем на старших ТФ расстояние между мувингами может увеличится больше чем окно, масштабатор подгоняет( усредняет ) размах сигнала так, что бы он помещался в окно и был приблизительно одинаковых размеров, и авто центрует сигнал к середине окна выборки. так вот когда сигнал с очень большим углом наклона ( почти вертикальный) пикселя пропускаются. с этим надо еще работать.... следующий релиз - сделал размер окна регулируемым( но здесь надо тогда переделывать конохена ) так что пока надо ставить 15Х15. советник работат так: ставим в настройках нужное отклонение от цены и гоним на тестере в конце он делает файл такого формата 1 столбик - номер паттерна 2 направление 3 через сколько баров достигнут порог 4 номер паттерна ЗЫ по поводу переделки сети : надо сделать маленькую сетку предположим 7Х7 и потом можем увеличивать окно кратно этой сетке и последовательно замерять номера паттернов в каждом под окне загоняем это еще в массив скармлдиваем конохену, и так далее пока не останется предположим 4 цифры , тогда мы сможем анализироватьих простым персптроном прямо во время оптимизации или работы. ЗЫЗЫ http://forum.mql4.com/ru/18376 аналогичная тема....
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 06:32 | Сообщение # 36 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| ПОсмотрел автомасштабатор и не совсем понял заложенной идеи. Давай заменим слово "автомасштабатор" на нормализацию. Есть разные способы нормализации данных. Самый простой Пусть задан VectorBaza[]; Нам нужен VectorNorm[]; // Названия от балды double NormalizireVector(double Input[], double &Output[]){ int Array_Size=ArraySize(Input); ArrayResize(Output,Array_Size); double Array_Max=Input[ArrayMaximum(Input)]; double Array_Min=Input[ArrayMinimum(Input)]; for (int i=0;i<Array_Size;i++) Output[i]=(Input[i]-Array_Min)/(Array_Max-Array_Min); return(Array_Max-Array_Min); } Обычно функция ничего не возвращает, но добавил результат как фильтр в будущем. По поводу нейронки. Нельзя ее так просто обрезать. Не стоит. Лучше новую сделать. Размерность сети определяется только одним (Количество входов Х Количество выходов) Количество входов известно, количество выходов сколько нам нужно. Это самый простой способ нормализации. Приводит все значения в диапазон от 0 до 1. Что нам и нужно. Второй способ через сумму квадратов. Но пока мы его трогать не будем. Просто в данном случае должно быть, что сумма квадратов значений преобразованного вектора равна 1. Добавлено (09.01.2009, 06:32) --------------------------------------------- Можно переделать конечно под один массив double NormalizireVector(double &Vector[]){ int Array_Size=ArraySize(Vector); double Array_Max=Vector[ArrayMaximum(Vector)]; double Array_Min=Vector[ArrayMinimum(Vector)]; for (int i=0;i<Array_Size;i++) Vector[i]=(Vector[i]-Array_Min)/(Array_Max-Array_Min); return(Array_Max-Array_Min); }
Сообщение отредактировал Vinin - Пятница, 09.01.2009, 06:30 |
|
| |
xrust | Дата: Пятница, 09.01.2009, 06:33 | Сообщение # 37 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| Ок сейчас вставлю что то он очень уж сильно ужимает.....
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 06:39 | Сообщение # 38 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| И не забудь исправить в нейронке на return(ArrayMinimum(outarray));
|
|
| |
xrust | Дата: Пятница, 09.01.2009, 06:42 | Сообщение # 39 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| Quote (Vinin) И не забудь исправить в нейронке на return(ArrayMinimum(outarray)); правил и так и так, сейчас над экселем работаю- графики делаю
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 06:46 | Сообщение # 40 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| Посмотри http://forum.mql4.com/ru/18643 Сам код, интересный подход. Я примерно так же хочу тейки и стопы считать в своем варианте с НМА. Пока делаю модуль сбора статистики Потом надо будет делать аналитический модуль. Оно бы неплохо было бы и реализацию Кохонена сделать в MQL, тогда появилась бы универсальность. Но это уже потом, если смысл будет. А то "Грааль" получится.
|
|
| |
xrust | Дата: Пятница, 09.01.2009, 07:19 | Сообщение # 41 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| еще вопрос как считать статистику? толи за сколько батов цена прошла заданное расстояние, то ли сколько прошла за заданное кол во баров? как думаеш?
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 07:25 | Сообщение # 42 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| Quote (xrust) еще вопрос как считать статистику? толи за сколько батов цена прошла заданное расстояние, то ли сколько прошла за заданное кол во баров? как думаеш? У меня такого вопроса нет. Есть паттерн. Жду формирования следующего паттерна. Записываю результат в файл. Для удобства веду расчеты на несколько паттернов в глубь. Чтобы потом можно было выбрать оптимальный. Точнее, фиксирую номер паттерна, сколько паттернов прошло после формирования. Ширину окна при формировании паттерна, (High-Open), (Low-Open), Close-Open). Добавлено (09.01.2009, 07:25) --------------------------------------------- Следующим этапом будет обработка сформированного файла. Но до этого еще не дошел.
|
|
| |
xrust | Дата: Пятница, 09.01.2009, 07:44 | Сообщение # 43 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| ну ка по подробнее пожалуйста. может я не туда иду???
"Телефон - это проклятье человечества!" масяня.
|
|
| |
xrust | Дата: Пятница, 09.01.2009, 07:47 | Сообщение # 44 |
 Admin
Группа: Администраторы
Сообщений: 489
Статус: Offline
| кстати попредварительным результатам могу сказать что только с десяток паттернов можно рассматривать как перспективные а если уж совсем строго то всего три....
"Телефон - это проклятье человечества!" масяня.
|
|
| |
Vinin | Дата: Пятница, 09.01.2009, 08:24 | Сообщение # 45 |
 Майор
Группа: Проверенные
Сообщений: 89
Статус: Offline
| Попдробнее. Начинать надо с формулировки паттерна. Я об этом писал. Я использую временной паттерн, состоящий из пяти минимаксов индикатора HMA. Правда на вход Кохонена временные значения не подаю, а только сами точки. Потому и рассуждаю о времени жизни
|
|
| |