Суббота, 20.04.2024, 09:26
Игрушки от Vinin
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Лаборатория » Немного о нейронке » Советник на HMA (В продолжении темы создания "Грааля" на форуме Рустама)
Советник на HMA
vininДата: Пятница, 09.01.2009, 12:03 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Нейронку не трогал больше года. С подготовки к прошлогоднему чемпионату. Что-то забылось. Так что прошу не пинать.
Сама идея. Ну просто нравится мне этот индикатор (HMA). За основу взял почти оригинальный (убрал просто цвета, мне они не нужны).
И захотелось определить что нужно делать при формировании новой вершины индикатора.
Поэтому просто взял и с помощью советника (VininE_HMA_Data) создал файл данных. На основе которых обучил сеть Кохонена.
Во вложении индикатор, советники и полученные файлы
Советником VininE_HMA_Stat сформировал что происходило после формирования вершина.
Следующая задача - скрипт для обработки результата.
Цель работы - получить советник и проверить его работу на других инструментах. Пока используется EURUSD, данные на часовиках за период 2000.01.01-2007.12.31. Для контроля оставил 2008 год в покое.
Прикрепления: 8405750.rar (191.0 Kb)
 
vininДата: Пятница, 09.01.2009, 15:25 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
VININ ‎(13:13):
Делаю временные паттерны, распознаю их. Если будут работать на других инструментах, то идея подтвердилась. Система может жить. И все

Индикатор HMA хороший. Не хватает только вероятностей для входа. Я их и хочу сделать

Если хоть небольшой преимущество можно получить, то можно усложнять, дорабатывать. Это уже другие вопросы. Первое - состоятельность идеи

NoName‎ (13:20):
идеи не вижу ... сеть есть сеть появился похожий паттерн и крышка

статистический метод

VININ ‎(13:21):
Не совсем так. Переубеждать не буду. Пока собственно говоря не в чем убеждать или разубеждать.

NoName‎(13:22):
нужно переубеждать ... это для тебя больше нужно чем мне ...

VININ ‎(13:22):
Это никому не надо. Смысла нет. Сделаю скрипт для анализа вначале. Надо цифирки увидеть еще.
На основе цифирок сделать тестовый вариант советника, вот тогда и можно будет о чем то говорить

NoName‎(13:24):
а я не прото ... не ... ты в темноту то не смотри ... что это за подход? ... сделаю а там посмотрим ... Вить ты бы уходил от такого подхода ... ну не приносит он тебе плодов

VININ ‎(13:25):
Итак. Спорить не будешь что существуют временные паттерны? Так.

NoName‎(13:25):
если свое определение дашь

 
vininДата: Пятница, 09.01.2009, 15:25 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
VININ ‎(13:25):
Если они существуют, то значит их можно найти. Так
В данном случае - временной паттерн это относительное положение вершин индикатора в заданном окне

VININ ‎(13:27):
Я сознательно стараюсь не привязываться к конкретному инструменту. Потому как на Евро будет почти Грааль. Меня интересует каков будет результат на других инструментах. Если он боле-менее подтвердится, то задача решена. Если нет, то в топку

NoName‎(13:42):
пытаюсь в образы все перевести ... помогай ... то есть:
1. окно - фрейм
2. относительное положение ... есть поле, координаты - цена и время ... мы запоминаем на этом поле положение вершин ...

а дальше?

VININ ‎(13:44):
Время я пока не учитываю. Запомнили относительные координаты. Распознаем образ. Смотрим как этот образ себя обычно ведет. Принимаем решение.

VININ ‎(13:45):
Естественно все построено на повторении ситуации. Хотя это совсем не обязательно. Для проверки и оставил 2008 год
То что я делаю еще не доросло до 2008 года.

NoName‎(14:09):
вот загрузил ты меня ... воображение резвитсяя не нашутку

VININ ‎(14:09):
Рано еще резвиться. Надо хотя бы элементарную проверку сделать. ей и занимаюсь

NoName‎ (14:09):
неа ... я саму концепцию обдумываю ...

VININ ‎(14:10):
А потом все надо будет повторить. Но с учетом уже 2008 года. Для 2009

NoName ‎(14:10):
ну это детали ... я мысль саму кручу в голове

VININ ‎(14:10):
Просто по 2008 буду смотреть сколько система может работать без переобучения. А там можно будет и самообучение добавить. Но об этом пока рано

NoName ‎(14:12):
точность выставления ордеров ... мнэеее ... просадки не смотрел на визуализации? ... хотя я еще подумаю ...

VININ ‎(14:13):
Это ты о чем?

NoName ‎(14:17):
я о том что может дать схема вершин
карта вершин

VININ ‎(14:18):
Почему вершины. В данном случае если она сформировалась, то сформировалась. С ЗЗ такого нету. Хоть какая-то определенность. Но есть и минус. Движение могло и продолжиться. Потому для анализа использую время жизни в пределах от 1 до 3 паттернов.
Естественно и анализ буду делать соответсвующий.
При этом анализ будет разбит на разные варианты. без учета высоты окна, с учетом высоты окна (тогда придется ранжировать окна и для каждого типа результаты будут свои. Для этого сделал сетку небольшую. На 30 паттернов. На каждый паттерн приходится около 250 случаев выпадения (примерно). При разбивке на три типа окна информации для анализа все равно достаточно
Размер окна постараюсь сделать равновероятным для каждого случая. Но окно как раз карты и путает. Из-за него система теряет универсальность

NoName ‎(14:24):
еще раз уточни, что есть окно ... смысл не улегся в голове

VININ ‎(14:26):
Окно определяется необходимым числом вершин индикатора. То есть 5 вершин формируют окно. В таком случае ширина и высота окна являются плавающими

NoName ‎(14:26):
ес
дошло

VININ ‎(14:27):
Высота окна это от минимального до максимального значения.
Ширина соответственно определяется определяется временем крайних вершин

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

NoName ‎(14:33):
именно пять вершин это твой выбор?

волновой теорией "попахивает"

VININ ‎(14:35):
Так захотелось. Просто пять вершин определяют многие фигуры технического анализа. Хотя может быть совсем не корректно поступаю. КОличество вершин можно и увеличить. Но это вызовет увеличение количества возможных паттернов, а значит и увеличение трудоемкости и снижения точности. Сделал бы по трем. Но там практически монетка будет

NoName ‎(14:36):
да, кажется начинаю понимать

VININ ‎(14:39):
Самое оптимальное это три паттерна, что-то типа "Купи", "Продай" и "Жди". Но мы же не в сказке

NoName ‎(14:40):
да ... понятно

VININ ‎(14:40):
Да. Увеличение количества паттернов - это путь к "Граалю", но граали бывают только на истории. А оно надо?

 
akadexДата: Понедельник, 12.01.2009, 02:39 | Сообщение # 4
Рядовой
Группа: Группа 1
Сообщений: 19
Репутация: 0
Статус: Offline
Со всеми прошедшими праздниками Вас!
HMA мне и самому нравиться. Есть идея одна....и связана как раз с НМА!!! smile wink
Вы бываете в ICQ сейчас?


Сообщение отредактировал akadex - Понедельник, 12.01.2009, 02:53
 
akadexДата: Воскресенье, 18.01.2009, 14:23 | Сообщение # 5
Рядовой
Группа: Группа 1
Сообщений: 19
Репутация: 0
Статус: Offline
Виктор, здравствуйте!
Вот первая версия условий для робота о котором мы разговаривали с вами вчера.
Не берусь ручаться, что условия окончательный, потому как нюансов, как вы понимаете масса.

Переменные для экстерна советника:

HMA_Period – период индикатора HMA (по умолчанию равен 15)

SKO_Period – период индикатора StdDev (по умолчанию равен 10)

Start_Hour – время, раньше которого открытие позиций запрещено. (по умолчанию равен 7)

End_Hour – время, позже которого открытие позиций запрещено. (по умолчанию равен 21)

Min_Trend – минимальное количество периодов в трендовом участке. (по умолчанию равен 6)

Max_Otkat – максимальный откат в % отношении от трендового хода. (по умолчанию равен 70)

K_Otkat – макс. допустимое отклонение от эталонного временного отношения тренд/откат (эталон по времени в периодах 1 к 1) Например, если K_Otkat равен 0.2, то это означает, что мин отношение тренд/откат равно 0.8, а макс. 1.2. (по умолчанию равен 0.3)

Enter_TF – таймфрейм, используемый для открытия позиций (по умолчанию равен 60)
Exit_TF – таймфрейм, используемый для закрытия позиций (по умолчанию равен 5)

Trend_K - множитель для определения значимости трендового хода (по умолчанию равен 2)

Торговые условия для открытия позиций Buy:

Если трендовый участок (непрерывающийся отрезок HMA зеленого цвета) больше, или равен Min_Trend,
и цена на экстремуме, достигнутом за трендовый участок, выше чем за Min_Trend*Trend_K периодов,
и откат не больше чем Max_Otkat, (непрерывающийся отрезок HMA красного цвета, следующий непосредственно за трендовым участком)
и откат соответствует временной размерности трендовому с отклонением не более чем K_Otkat
и время больше Start_Hour, но меньше End_Hour,
то на смене цвета HMA c красного на зеленый (то есть по завершению отката) открываем ордер Buy

Открытие ордера производиться на текущем таймфрейм Enter_TF

Торговые условия для открытия позиций Sell:

Если трендовый участок (непрерывающийся отрезок HMA красного цвета) больше, или равен Min_Trend,
и цена на экстремуме, достигнутом за трендовый участок, ниже чем за Min_Trend*Trend_K периодов,
и откат не больше чем Max_Otkat, (непрерывающийся отрезок HMA зеленого цвета, следующий непосредственно за трендовым участком)
и откат соответствует временной размерности трендовому с отклонением не более чем K_Otkat
и время больше Start_Hour, но меньше End_Hour,
то на смене цвета HMA c зеленого на красный (то есть по завершению отката) открываем ордер Sell

Открытие ордера производиться на текущем таймфрейм Enter_TF

Stop-loss устанавливается за экстремумом цены до начала трендового хода (думаю учитывая задержку HMA хватит 2-3 периодов для поиска мин./макс. цены)

Торговые условия для закрытия позиций

Для выхода из позиций Buy и Sell используется таймфрейм Exit_TF
Как только индикатор StdDev с периодом равным SKO_Period совершает разворот вниз (при условии что был рост значений до этого времени), и ордер имеет прибыль, ордер закрывается.

Добавлено (18.01.2009, 14:23)
---------------------------------------------
Ссылка на индюк НМА:
http://vinin.ucoz.ru/load/

Прикрепления: 9963223.gif (12.2 Kb)


Сообщение отредактировал akadex - Пятница, 16.01.2009, 17:20
 
vininДата: Воскресенье, 18.01.2009, 16:49 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 299
Репутация: 12
Статус: Offline
Сделал мультитаймфреймный индикатор
На графике используется три индикатора с одинаковыми параметрами с разных таймфреймов

Только МТФ-индикатор еще не доработан. Заготовка, не более.

Прикрепления: 4542077.gif (14.8 Kb) · _HMA.mq4 (2.8 Kb) · _MTF_HMA.mq4 (2.9 Kb)
 
riderДата: Пятница, 17.07.2009, 19:28 | Сообщение # 7
Сержант
Группа: Группа 1
Сообщений: 34
Репутация: 1
Статус: Offline
Прошу прощения у админа, совсем не в тему, но это к посту №5.
Посмотрел на условия (очень похоже на систему "1-2-3" - где то на кроуфр описана), потом на HMA - раскрашенную и однотонную.... подумалось что это дело немного модернизировать можно.... заодно и количество экстернов в разы уменьшить smile
Добавил ZZ_NK, немного под эксперта модернизированный, и получилось:
- в экстернах:

Code
   // Внешние параметры индикаторов
    extern int HMA_Period=15;
    extern int method=3;
    extern int price=0;
    extern int sdvig=0;
    //extern int SKO_Period=10;
    // для ZZ
    extern int ExtDepth=12;
    extern int ExtDeviation=5;
    extern int ExtBackstep=3;
    // Другие параметры
    //extern int Enter_TF=60;
    //extern int Exit_TF=5;
    //extern double Trend_K =2;
    //extern int Min_Trend=6;
    //extern double Max_Otkat=0.8;
    //extern double K_Otkat=0.3;

По сути, оптимизируемый параметр только один - период HMA.


"А правильно я вчера переделал, то что сделал позавчера?"
 
riderДата: Пятница, 17.07.2009, 19:30 | Сообщение # 8
Сержант
Группа: Группа 1
Сообщений: 34
Репутация: 1
Статус: Offline
- условия на вход-выход следующие:

Code
   OpenSell=0; OpenBuy=0; CloseBuy=0; CloseSell=0;
    double e1 = iCustom(NULL, 0, "_ZZ_NK_Pattern",ExtDepth,ExtDeviation,ExtBackstep,5,1);
    double e2 = iCustom(NULL, 0, "_ZZ_NK_Pattern",ExtDepth,ExtDeviation,ExtBackstep,6,1);
    double e3 = iCustom(NULL, 0, "_ZZ_NK_Pattern",ExtDepth,ExtDeviation,ExtBackstep,7,1);
    double h1 = iCustom(NULL, 0, "_HMAPattern",HMA_Period,method,price,0,1);
    double h2 = iCustom(NULL, 0, "_HMAPattern",HMA_Period,method,price,0,2);
    double h3 = iCustom(NULL, 0, "_HMAPattern",HMA_Period,method,price,0,3);
    double otkat=MathAbs((e1-e2)/(e2-e3));
    //Анализ паттернов
    if (e1>e2 && h3<h2 && h1<h2)
       {
       CloseBuy=1; // вместо этого можно попробовать протралиться
       //if (otkat<Max_Otkat)
       //   {
       //   CloseBuy=1;
       OpenSell=1;
       SL=NormalizeDouble(e1 + 3*MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits);
       //   }
       }
    if (e1<e2 && h3>h2 && h1>h2)
       {
       CloseSell=1; // вместо этого можно попробовать протралиться
       //if (otkat<Max_Otkat)
       //   {
       // CloseSell=1;
          OpenBuy=1;
          SL=NormalizeDouble(e1 - 2*MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits);
       //   }
       }

Где е1,2,3 - три последних узла зигзага, последний (е1) - прогнозируемый, но появляется он не сразу, а через какое-то время - таким образом, что надобность в закомментированных параметрах, как бы и отпадает. Излом на графике HMA ищется уже после его появления.
Возможно спорное решение - удаление из параметров Max_Otkat, но прокрутил эксперта с ним и без него, получилось, что без него получше все это дело выглядит.
В общем-то получился "переворотник".... пока.
Условие на открытие позиций по времени осталось.

Осталась проблема с выходами - если внимательно на совершаемые сделки посмотреть, то все они, пусть в небольшой, но в плюс выходят - вопрос, как его взять?
Выход по StdDev, как-то не впечатлил. Не очень-то понимаю, как можно формализовать:
"Как только индикатор StdDev с периодом равным SKO_Period совершает разворот вниз (при условии что был рост значений до этого времени)"..... с периодом 10, да на М5 - там очень много изломов преждевременных наблюдается, а если его сглаживать, то опоздание будет.

Скрин, как это в динамике выглядит (красные вертикали - приблизительные моменты появления последнего луча зигзага, индикаторs..... да и эксперта прикладываю. За EA прошу не пинать - рабочий вариант, не оптимизирован "ни разу", да еще и с кусками кода старого.

Блин, не знаю как картинку сюда вставить angry

Прикрепления: HMAPattern_v1.mq4 (28.8 Kb) · _HMAPattern.mq4 (2.9 Kb) · _ZZ_NK_Pattern.mq4 (10.7 Kb) · 5701333.gif (24.0 Kb)


"А правильно я вчера переделал, то что сделал позавчера?"
 
riderДата: Суббота, 18.07.2009, 00:54 | Сообщение # 9
Сержант
Группа: Группа 1
Сообщений: 34
Репутация: 1
Статус: Offline
Добавил трал. При появлении нового луча стоп передвигается на расстояние, равное 1/2(bid(ask)-orderopen).
Уменьшилась просадка, выросла прибыль....
Прикрепления: 4125106.mq4 (27.6 Kb)


"А правильно я вчера переделал, то что сделал позавчера?"
 
riderДата: Суббота, 18.07.2009, 13:15 | Сообщение # 10
Сержант
Группа: Группа 1
Сообщений: 34
Репутация: 1
Статус: Offline
Немножко "причесал"..... но проблема с выходами все равно стоит во весь рост sad
Прикрепления: HMAPattern_v1.1.mq4 (24.0 Kb)


"А правильно я вчера переделал, то что сделал позавчера?"
 
Форум » Лаборатория » Немного о нейронке » Советник на HMA (В продолжении темы создания "Грааля" на форуме Рустама)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024Бесплатный конструктор сайтов - uCoz