Советник который видит... - страница 2

 
Q.fin писал (а):
Нужно концентрироватся на значимом. Как я и писал Выше - для каждой из фигур будет %совпадений. И если этот процент будет больше 90% - будем входить.



Каким образом вы планируете расчитывать этот самый % совпадений? По попаданию в доверительный интервал или ещё каким-то новым способом, разработанным вами? На всякий случай напомню, что доверительный интервал для 90% составляет порядка 1,6*СКО (в каждую сторону и это в идеальном случае когда у вас к примеру сотни баров, при меньшем количестве это значение вырастает до 1.8*СКО для 10 баров), а это уже довольно-таки большие значения для советника по определению точки входа (точка входа будет сильно размазана), а также частота таких совпадений будет единичной (долго прийдётся ждать самого входа).
 
solandr:
Q.fin писал (а):
Нужно концентрироватся на значимом. Как я и писал Выше - для каждой из фигур будет %совпадений. И если этот процент будет больше 90% - будем входить.



Каким образом вы планируете расчитывать этот самый % совпадений? По попаданию в доверительный интервал или ещё каким-то новым способом, разработанным вами? На всякий случай напомню, что доверительный интервал для 90% составляет порядка 1,6*СКО (в каждую сторону и это в идеальном случае когда у вас к примеру сотни баров, при меньшем количестве это значение вырастает до 1.8*СКО для 10 баров), а это уже довольно-таки большие значения для советника по определению точки входа (точка входа будет сильно размазана), а также частота таких совпадений будет единичной (долго прийдётся ждать самого входа).

% совпадений будет расчитыватся от разницы между точками совпадений фигур. Тоесть нужно поставить вопрос: когда определять процент совпадений той  или иной фигуры? Ответ на который будет звучать так: когда эту фигуру можно будет опознать по определенным характеристикам. И вот разница характеристик между идеальной отрисовкой и отрисовкой на графике и будет %совпадения. Тоесть например Если второе плече фигуры голова-плечи ниже первго при развороте от падающего рынка, говорит о слабости разворота и расхождения с эталоном, значит вычитаем процент. Далее если второе плече развивалось дольше чем первое, также расхождение от эталона. Так вот сумма этих расхождений и будет %совпадений.
 
Q.fin писал (а):
% совпадений будет расчитыватся от разницы между точками совпадений фигур. Тоесть нужно поставить вопрос: когда определять процент совпадений той или иной фигуры? Ответ на который будет звучать так: когда эту фигуру можно будет опознать по определенным характеристикам. И вот разница характеристик между идеальной отрисовкой и отрисовкой на графике и будет %совпадения. Тоесть например Если второе плече фигуры голова-плечи ниже первго при развороте от падающего рынка, говорит о слабости разворота и расхождения с эталоном, значит вычитаем процент. Далее если второе плече развивалось дольше чем первое, также расхождение от эталона. Так вот сумма этих расхождений и будет %совпадений.

Это пока что устное объяснение, которое невозможно запрограммировать в советнике. Нужны формулы, по которым вы будете считать совпадения. А для начала естественно нужен алгоритм поиска этой самой "эталонной" фигуры. Как её найти? Просто вот так вот взять и нарисовать на бумаге что ли, базируясь просто на самом понятии голова-плечи? И что дальше? Что значит "если второе плече развивалось дольше чем первое". Один лишний бар по сравнений с эталоном считается, что "второе плече развивалось дольше чем первое", или ещё не считается? То есть нужна более жёсткая алгоритмизация самой идеи, понятная советнику, а не человеку. А вот алгоритмизация скорее всего будет очень объёмной и трудоёмкой, содержащей в себе массу слабоалгоритмизируемых параметров.
 
Я думал над похожей задачей Вот если кому интересно мои мысли

1. нормализация
2. для всех возможных фигур каждого типа вычисляется среднее по каждому значению
3. отбрасываются те фигуры которые содержат максимальные отклонения от среднего
4. по оставшимся считаем снова среднее и дисперсию (отклонение в обе стороны)

Точность совпадения будет зависеть от того как далеко отстоят значения тестируемого примера от среднего, линейной ли должна быть зависимость или нет не в курсе :)
 
В том-то и проблема, что фигура может сформироваться на нескольких барах и сравнение двух-трёх соседних баров ничего не даст. Как, например, классический фрактал два бара-вершина-два бара совсем не означает локальный максимум/минимум - глаз их ловит легко, научить эдвайзера делать тоже самое сложнее.

Мне реализация видится в виде подключаемых библиотек - отдельный файл для распознавания голова/ноги, отдельный файл для подъем/переворот.



Подразумевалось не определение по двум трем барам самой фигуры, а напротив, отбрасывание фигур которые точно не могут сформироваться после чего проверяются следующие 2-3 и опять отбрасываются фигуры которые уже не получились.
 
kpect:
В том-то и проблема, что фигура может сформироваться на нескольких барах
Ну можно наверное и по горизонтали нормировать Но тут я наверное фиг чего умного скажу Я страшно далек от графического анализа
 

Несколько лет назад я собирался сделать подобный проект, основанный на распознавании фигур, но взвесив все, я отказался от этой идеи, считая, что эффективность такой системы будет низкой.

Для качественного распознавания Вам необходимо создать шаблон, который был бы стабилен при всех изменениях рынка, а также при смене инструментов и таймфреймов на которых работаете. Для этого воспользуйтесь нормированием всех входных данных по Bid, (close[i]/Bid) и т.д. Я 30 лет назад придумал подобный вариант нормирования для задач распознавания и прогнозирования временных рядов и эффективно его использовал, в том числе и для рынка Форекс, моделированием которого занимаюсь уже 7 лет. Подобный метод нормирования позволяет привести все данные в единый масштаб, особенно важно, если Вы ведете анализ одновременно по нескольким разным инструментам. Не зависимо от инструмента и динамики рынка все значения в шаблоне будут колебаться около единицы. Но самое главное, что дает этот метод нормирования – Вы сокращаете размерность задачи, избавляясь от координаты времени. Трудность прогнозирования и распознавания временных рядов как раз и связана с сильной обусловленностью временем. По опыту могу сказать, я получал достаточно точные значения прогнозов цен, но когда я пытался прогнозировать время соответствующее тем или иным значениям цен, точность прогнозов была на несколько порядков ниже.

При подобном нормирование получается веер векторов исходящих из одной точки и имеющих разную длину и ориентацию в пространстве (но не во времени). Количество векторов будет определяться глубиной точек истории, которую Вы анализируете.

Следующим шагом необходимо сформировать модель фигуры, которую предстоит распознать. Для этого от текущего момента в глубь истории проведите поиск точек перегиба или смены направления тенденции отвечающее заданному порогу значимости, чтобы отсеять не существенные колебания. Глубину анализа истории определяйте исходя из формирования необходимого количества точек для завершенного строения фигур. Желательно, чтобы для всех фигур, которые строятся, использовалось одинаковое количество точек, тогда легче их будет классифицировать. При этом, не зависимо сколько баров было между отдельными точками при построении – принимайте расстояние между всеми точками на шаблоне равным единице.

Вам необходимо будет составить эталоны моделей всех фигур, которые предполагаете распознавать по тем же принципам, а именно, одинаковое количество точек, расстояние по оси Х между всеми точками равно 1, колебания у разных точек относительно оси У, близкое к 1, оптимальное выберете экспериментально взяв усредненное значение нескольких моделей каждой фигуры на разных исторических данных на разных инструментах. Далее Вы просто сравниваете вновь сформировавшуюся модель со всеми эталонами, каждую точку с каждой, и определяет среднеквадратичную ошибку отклонения. Минимум ошибки и классифицирует принадлежность к конкретной фигуре, но при этом экспериментально подберите минимальный порог ошибки, если он не будет преодолен, значит, сформировавшаяся фигура не соответствует ни одной из эталонных.

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

 
Q.fin писал (а):

<Конечным результатом данного советника будет (в случае если советник носит только рекомендательный характер):
В верху графика текстом следующее:
"Фигура голова-плечи. Формирование 47%. Покупка от уровня 1. 3215"
"Фигура двойное дно. Формирование 83%. Покупка от уровня 1.3180"
И далее списком те фигуры которые видит советник. Можно например настроить ставить ордера при совпадении фигуры более чем 90%. Что касается программирования, я этот вопрос не поднимаю. Программировать буду сам (ну или совместно с форумянами). Хочу в этой ветке обсудить теоретическую часть реализации данного советника. Так как куда двигатся дальше пока не придумал.

Да в принципе можно и такое реализовать. Взять за основу советник AI, но контрольные точки брать не на равных расстояниях, как там реализовано, а по перегибам ZigZag. Ну и вместо используемого в AI индикатора AC, лучше всего использовать RSI, т.к. RSI, во первых, является нормированным осциллятором, а во вторых на нем гораздо четче видны все эти фигуры. А значение на выходе перцептрона и будет тем самым формированием.

Пока остается лишь один нерешенный прикладной вопрос: как в алгоритме советника найти номера последних 4 баров, на которых имели место изгибы индикатора ZigZag? Все остальное тривиально и никаких проблем не вызывает. Ведь встроенный в AI перцептрон предназначен именно для распознавания графических изображений. Ну, а распознать объект по ломанной линии, для него - как два пальца об асфальт.
 
Кстати говоря у некоторых брокеров к примеру InterbankFX имеется утилитка, которая расчитывает вероятности обнаружения классических фигур технанализа типа сходящихся треугольников, каналов и т.д.
У них есть как вариант, подключаемый непосредственно в терминал ex4 файл так и отдельная утилитка, сделанная на стороне http://www.interbankfx.com/trading_tools/ibfx_gps.php . Вот её скриншот.


А вот ссылка http://www.interbankfx.com/rocks/ на встраиваемую в МТ4 утилитку и её обсуждение : http://forum.interbankfx.com/viewtopic.php?t=1284&postdays=0&postorder=asc&start=0
На том форуме нужно зарегистрироваться чтобы увидеть картинки и скачать саму утилитку. Вот её скриншот, взятый на том форуме:

Может быть вы сможете применить что-то полезное из неё в своей разработке "видящего" советника?
 
solandr:
Кстати говоря у некоторых брокеров к примеру InterbankFX имеется утилитка, которая расчитывает вероятности обнаружения классических фигур технанализа типа сходящихся треугольников, каналов и т.д.
У них есть как вариант, подключаемый непосредственно в терминал ex4 файл так и отдельная утилитка, сделанная на стороне http://www.interbankfx.com/trading_tools/ibfx_gps.php
...
Может быть вы сможете применить что-то полезное из неё в своей разработке "видящего" советника?
Прикольно, но во первых слишком долго разбираться с тюнингом, а во вторых вообще не понятно, как можно из этой утилитки вытянуть значение и подсунуть эксперту. Разве что считать это самое значение своими глазами и вбить ручками во входные параметры. Короче говоря, рюшки, хотя и красивые, но абсолютно бесполезные. Только отвлекают внимание. По одной фигуре ничего не проанализируешь, а следить за всеми рюшечками сразу - глаз не хватит, у меня только два глаза пока еще (надо сходить к шарлатанам, которые обещают открыть третий глаз, чтобы пользоваться левыми утилитками).
Причина обращения: