Jump to content
Programmer

Рубрика: Искусственный интеллект

Recommended Posts

Ivandurak

Это не советник . Это пристрелочный код библиотеки для ведения виртуальных сделок , некоторые баги убрал , пока сижу в глубокой отладке .

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

В любом случае мы прогнозируем ситуацию или на основании полученного опыта пытаемся выработать оптимальное поведение (решение задачи) .

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

Я не знаю как рынок прогнозировать . Но вот сделать шаблон поведения наверное можно . Ну к примеру берем аллигатора на тестировании можно найти те участки графика и оптимальные параметры на которых советник будет прибыльным . Рассмотрим рынок сегодня , он к примеру напоминает ситуацию 1896 г. А тогда параметры были такие . Есть опыт , есть шаблон поведения . Если история повторяется - получим прибыль . Теперь нужно найти способ распознавать ситуацию как можно раньше . Или по пути Решетова , напихать в советник кучу советников и пусть сам разбирается по каким сигналам или их комбинациям открываться .

Share this post


Link to post
Share on other sites
SaviTur
Я не знаю как рынок прогнозировать . Но вот сделать шаблон поведения наверное можно . Ну к примеру берем аллигатора на тестировании можно найти те участки графика и оптимальные параметры на которых советник будет прибыльным . Рассмотрим рынок сегодня , он к примеру напоминает ситуацию 1896 г. А тогда параметры были такие . Есть опыт , есть шаблон поведения . Если история повторяется - получим прибыль . Теперь нужно найти способ распознавать ситуацию как можно раньше

Большинству людей бесполезно прогнозировать рынок, поскольку прогноз должен учесть число факторов, стремящееся к бесконечности. Логике это не под силу (естественно имеется в виду современный человек-отсталый, а не древний развитый, нарезавший монолиты весом в тысячи тонн так, словно они сделаны из масла и уложивший их с точностью до миллиметра в пирамиды).

 

Человек мыслит шаблонами. Если он проснулся по будильнику в 7 часов, значит в 9 ему надо быть на работе. Или если он вошел в темную кухню, значит выключатель расположен справа. Сколько таких шаблонов в жизни человека? Опять же число стремящееся к бесконечности. Причем шаблоны постоянно пополняются и обновляются в реальном времени, даже если человек спит. Каким образом впихнуть в советника функцию, которая способна на прошлом промежутке времени найти шаблон, с заданной точностью совпадающий с шаблоном, который создается в настоящий момент, непонятно (про число факторов помним?). Точнее явно не определены предпосылки, кроме ценового хаоса, не имеющего явно выраженной функции. И какой вид шаблона следует использовать? Пока человек-современный знает несколько ограниченных методов представления цены: свечной(барный)/линейный, простой/сглаженный и т.д. (21 век на дворе, а ранок до сих пор для человека темный лес, иначе бы тем, подобных этой, давно уже не существовало). Перед тем как начать решать задачу, следует поставить конкретные исходные данные и определить метод решения.

 

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

Edited by SaviTur

Реальности нет. Есть восприятие и интерпретация.

Share this post


Link to post
Share on other sites
BQQ
А для этого он должен уметь определять, когда наступил новый рынок,

а для этого он должен уметь отличать старый рынок от нового,

а для этого нужен интеллект.

-----------------------------------------

Получаем while(1==1); :biggrin:

Именно для этого - интеллект ещё не нужен.

Поток котировок - случайный процесс (удобнее, правда, пользоваться не процессом котировок, а процессом приращений, close[0]-close[1] - проще описание получается).

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

Есть простейшие ТС, которые всего лишь отслеживают вероятность того, что достижение уровня (текущий плюс А) состоится раньше, чем (текущий минус Б). Такие ТС вполне жизнеспособны на больших интервалах времени и имеют как правило "мелкозубчатую" кривую эквити.

Есть более сложные модели.

Так вот, понять, что рынок изменился, можно просто: текущая оценка параметров модели достаточно (статистически значимо) разошлась с тем, что было раньше.

 

Между прочим, формализация даже только этого понятия (понятия "достаточно разошлась") уже превращает ТС на пересечении скользящих средних в весьма конфетку.

=============

 

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

===============

Прошу извинения, этот пост - не такое уж словоблудие, как кажется. Проблемно ориентированный ИИ именно так и делают.

Share this post


Link to post
Share on other sites
Programmer
Есть простейшие ТС, которые всего лишь отслеживают вероятность того, что достижение уровня (текущий плюс А) состоится раньше, чем (текущий минус Б). Такие ТС вполне жизнеспособны на больших интервалах времени и имеют как правило "мелкозубчатую" кривую эквити.

Есть более сложные модели.

Так вот, понять, что рынок изменился, можно просто: текущая оценка параметров модели достаточно (статистически значимо) разошлась с тем, что было раньше.

 

Между прочим, формализация даже только этого понятия (понятия "достаточно разошлась") уже превращает ТС на пересечении скользящих средних в весьма конфетку.

 

Принято :beer_drink:

Share this post


Link to post
Share on other sites
BQQ
Для лучшего понимания темы, предлагаю всем участникам высказаться по одному вопросу касательно главной темы.

 

Чем, по-вашему, должен отличаться торговый робот, обладающий искусственным интеллектом от простого советника?

Еще одно отличие систем, достойных быть отнесенными к ИИ - представление знаний о предметной области на разных уровнях абстракции и содержательное взаимодействие уровней обработки.

Если наш ИИ ищет точку входа по пересечению скользящих средних, то хорошо было бы, чтобы тренд от флэта он отличал принципиально иным механизмом (не просто через ФНЧ или через старший таймфрейм).

==================

Вопрос к автору ветки и зажигательного поста №154: вы так и не ответили на мой пост №155, а мой вопрос был задан весьма по существу обсуждаемого предмета.

Share this post


Link to post
Share on other sites
Ivandurak

Можно подбить некоторые резюме , пока вообщем , конкретизация и пути реализации потом .

1 Советник должен распознавать фазу рынка по конечному набору признаков (не путать с фазой в розетке , термодинамике и тд) .

2 советник должен находить кусок истории максимально приближенный к текущему рынку , в надежде что это состояние скорее продолжится чем изменится .

3 советник на выбранном историческом участке должен выработать оптимальную стратегию торговли

4 В советнике необходимо заложить механизм останова ( аналог самосохранения )

Share this post


Link to post
Share on other sites
Ivandurak

А если сделать на принципе везучей мартышки . Берем к примеру CCI прогоняем на всей доступной истории , по результатам теста выбираются участки где есть прибыль не все же время он будет сливать . Далее берем моментум , болинджер , мувинги , точно также выбираем прибыльные участки . Торговля ведется виртуально и та система которая дает результаты не хуже полученных на первоначальном отборе допускается к реальой торговли . Если история повторяется должно получиться . Также плюс такого подхода в прикидочной оценке продолжительности благополучной ситуации . Как по вашему по каким критериям должны выбираться прибыльные участки ну там кол-во сделок , средняя сделка , максимальной просадке , длительность благополучного участка , у мну есть небольшая идейка озвучу чуть попозже .

Share this post


Link to post
Share on other sites
Devotional

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

В пакете Origin есть классный метод построения тренда. Оно рисует классный сглаженный тренд, но его фишка в том что точек в тренде столько же сколько в исходном ряду. Тоесть нету такой фигни как в скользящей средней, где количество сглаженых точек всегда меньше количества точек исходного ряда.

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

Сам я когда то этим оч плотно занимался, поэтому шарю. Но полюбому мозг человека намного круче любого искуственного интеллекта. Поэтому я торгую руками ))))

Share this post


Link to post
Share on other sites
Devotional

Да и ещё фишка тренда в Origin в том, что он не запаздывает в отличии от МА и других трендовых индюков. Но при этом сглаживает хорошо. Убирает весь шум. Пока что это лучший трендовый фильтр что я знаю.

Share this post


Link to post
Share on other sites
BQQ
Да и ещё фишка тренда в Origin в том, что он не запаздывает в отличии от МА и других трендовых индюков. Но при этом сглаживает хорошо. Убирает весь шум. Пока что это лучший трендовый фильтр что я знаю.

Чудес в природе не бывает.

1. Уменьшить запаздывание можно при сохранении хорошего качества фильтрации (глубокого подавления высоких частот), но при этом всегда надо чем-то расплатиться.

 

Замечу, что запаздывание при монотонном движении в одну сторону и запаздывание момента разворота - разные характеристики. Для нелинейного фильтра они совсем разные (для линейного - не совсем).

 

2. Оригинальный способ расплатиться - опереться на некие априорные предположения о характере движения фильтруемого процесса (для нас - цена). Тогда всё будет хорошо, пока выполняются эти предположения.

 

3. Что это такое - упомянутый вами пакет Origin?

Это не известный ли пакет визуализации? Тот, который всё время конкурировал с Grapher/Surfer?

Share this post


Link to post
Share on other sites
Rationnel

Каждый день это новый вдох перемен с учетом и с каким то выводом происходящего

Share this post


Link to post
Share on other sites
fion

Кто-нить пытался комитет сетей на нш2 использовать в мт-4? Интересует обращение этих сеток с ns2-32.dll. Может ее размножить с переименованием? Типа каждая сетка обращается к своей длл. Если кто-нибудь делал что то подобное намекните как , хочу поиграться.

Share this post


Link to post
Share on other sites
Evgenyaplari

День добрый!

Хочу написать робота на Delphi. Вопросы:

1. Есть ли API для подключения его в MetaTrader / MQL / etc?

2. где найти таблицу значений котировок - чем больше данных там будет, тем лучше. Желательно с временными интервалами начиная от секунды.

спасибо!

Share this post


Link to post
Share on other sites
Ugar68
День добрый!

Хочу написать робота на Delphi. Вопросы:

1. Есть ли API для подключения его в MetaTrader / MQL / etc?

2. где найти таблицу значений котировок - чем больше данных там будет, тем лучше. Желательно с временными интервалами начиная от секунды.

спасибо!

 

c:\Program Files\MetaTrader - Alpari\history\Alpari-Classic\

Это если счёт классик. Там лежат файлы истории по инструментам и периодам графика. Название файлов соответствует. Самое мелкое это 1 минута. Таблица, в ней Open, Close, High, Low, Volume каждого бара.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
zhuki

А как Вам такой подход.

На истории в 2000 баров эмулируются сделки BUY и SELL c одинаковыми параметрами . Т.е. эмулируем сделку BUY c параметрами SL=50 TP=25 и такую же сделку SELL. В итоге получаем ответ либо + ,либо - . Так эмулируем с разными параметрами на всех 2000 барах. Параллельно с ответом записываем значения индикаторов ,например CCI,Stochastic,WPR,Momentum. В итоге получаем базу эмулированных сделок со значениями индикаторов и временем открытия (часов,дата не важна). У меня получилось 50 000 записей. На текущий момент сверяемся с базой и определяем ,что сейчас больше подходит для открытия (при определённой погрешности 5%) и параметры для открытия. На практике это выглядит так : на сей момент, при совпадении 5% по индикаторам и разбросом по времени 2 часа, на истории было проведено 200 сделок BUY из них 150 были с профитом ,а 50 с убытком. 150 сделок SELL 75 профит ,75 убыток. И подобную картину мы видим по всем видам параметров какие эмулировали. Итог, решаем открывать сделку с определёнными параметрами. Визуально это график в виде баров, не в МТ.

Может немного запутанно,но общий смысл примерно такой.

Share this post


Link to post
Share on other sites
БорисMQL4
А как Вам такой подход.

На истории в 2000 баров эмулируются сделки BUY и SELL c одинаковыми параметрами . Т.е. эмулируем сделку BUY c параметрами SL=50 TP=25 и такую же сделку SELL. В итоге получаем ответ либо + ,либо - . Так эмулируем с разными параметрами на всех 2000 барах. Параллельно с ответом записываем значения индикаторов ,например CCI,Stochastic,WPR,Momentum. В итоге получаем базу эмулированных сделок со значениями индикаторов и временем открытия (часов,дата не важна). У меня получилось 50 000 записей. На текущий момент сверяемся с базой и определяем ,что сейчас больше подходит для открытия (при определённой погрешности 5%) и параметры для открытия. На практике это выглядит так : на сей момент, при совпадении 5% по индикаторам и разбросом по времени 2 часа, на истории было проведено 200 сделок BUY из них 150 были с профитом ,а 50 с убытком. 150 сделок SELL 75 профит ,75 убыток. И подобную картину мы видим по всем видам параметров какие эмулировали. Итог, решаем открывать сделку с определёнными параметрами. Визуально это график в виде баров, не в МТ.

Может немного запутанно,но общий смысл примерно такой.

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

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


Пишу на заказ - советники, индикаторы, скрипты и другое ПО для терминала MetaTrader 4.

Share this post


Link to post
Share on other sites
Пафос Респектыч
А как Вам такой подход.

На истории в 2000 баров эмулируются сделки BUY и SELL c одинаковыми параметрами . Т.е. эмулируем сделку BUY c параметрами SL=50 TP=25 и такую же сделку SELL. В итоге получаем ответ либо + ,либо - . Так эмулируем с разными параметрами на всех 2000 барах. Параллельно с ответом записываем значения индикаторов ,например CCI,Stochastic,WPR,Momentum. В итоге получаем базу эмулированных сделок со значениями индикаторов и временем открытия (часов,дата не важна). У меня получилось 50 000 записей. На текущий момент сверяемся с базой и определяем ,что сейчас больше подходит для открытия (при определённой погрешности 5%) и параметры для открытия. На практике это выглядит так : на сей момент, при совпадении 5% по индикаторам и разбросом по времени 2 часа, на истории было проведено 200 сделок BUY из них 150 были с профитом ,а 50 с убытком. 150 сделок SELL 75 профит ,75 убыток. И подобную картину мы видим по всем видам параметров какие эмулировали. Итог, решаем открывать сделку с определёнными параметрами. Визуально это график в виде баров, не в МТ.

Может немного запутанно,но общий смысл примерно такой.

 

Идея хорошая, годная, но сформулирована не очень корректно. Чтобы оценивать вероятность + или - по такой базе, результаты всех сделок в ней должны быть взаимно независимыми. Говоря иначе, открытые ордера не должны пересекаться по времени. Можно конечно попробовать посчитать все с учетом зависимости вероятности одних плюсов (минусов) от других, но скорее всего задолбаешься расписать все правильно, и считаться оно будет годами.

 

А так, если результаты независимы как последовательные броски монетки, скармливаешь вектора в обучалку классификатора типа дерева принятия решений или SVM, и получаешь набор правил когда ждать + а когда -. Готовых проверенных временем реализаций классификаторов множество например вот известный: C4.5 algorithm. Дерзай.

Share this post


Link to post
Share on other sites
zhuki

Что касается формулировки может и правда не совсем корректно,но главное ,что смысл ясен.

Не совсем ясно ,как это не пересекаться во времени. Каждая запись сама по себе и никакого отношения к другим не имеет.

Почему сложно рассчитать и считать будет долго. 50 000 записей обрабатываются 400 мс и выдаются в виде 5 графиков. Это что так много?

Share this post


Link to post
Share on other sites
Пафос Респектыч
Не совсем ясно ,как это не пересекаться во времени. Каждая запись сама по себе и никакого отношения к другим не имеет.

Если сделки пересекаются во времени - например идет тренд вверх 5 дней, ты открыл сделку в первый день - она закрылась через 3 дня по тейку, открыл новую во второй - она тоже через 3 дня по тейку, и наконец на третий день еще одну открыл и она по тейку закрылась через 3 дня (на пятый). Эти три тейка не будут взаимно независимыми.

Почему сложно рассчитать и считать будет долго. 50 000 записей обрабатываются 400 мс и выдаются в виде 5 графиков. Это что так много?

Ну это смотря что считать, конечно. 400 мс это быстро, спору нет. И как, работает?

Share this post


Link to post
Share on other sites
wirg

пока только видел одного ночного робота, который бил точно 3-4 сделки в месяц и 1 промах(скальпер от EA на минутном интервале), какие перспективные разработки есть и где глянуть(FANN,Combo,AI не интересует)?


Многие готовы умереть, чем подумать, иногда так и случается

Share this post


Link to post
Share on other sites
AndrewXZ

Доброго времени суток. Есть интересная идея "Конкурс советников внутри советника" http://articles.mql4.com/ru/922. Здесь предлагалось нечто подобное но все заглохло. По-моему тема достойна развития и очень интересна. (По крайней мере перспективнее нейронных сетей, на данном уровне развития вычислительных способностей "ЭВМ". Вот когда появятся квантовые компы - можно поговорить про искусственный интеллект ИМХО.)

Share this post


Link to post
Share on other sites
Eugene Last
А как Вам такой подход.

На истории в 2000 баров эмулируются сделки BUY и SELL c одинаковыми параметрами . Т.е. эмулируем сделку BUY c параметрами SL=50 TP=25 и такую же сделку SELL. В итоге получаем ответ либо + ,либо - . Так эмулируем с разными параметрами на всех 2000 барах. Параллельно с ответом записываем значения индикаторов ,например CCI,Stochastic,WPR,Momentum. В итоге получаем базу эмулированных сделок со значениями индикаторов и временем открытия (часов,дата не важна). У меня получилось 50 000 записей. На текущий момент сверяемся с базой и определяем ,что сейчас больше подходит для открытия (при определённой погрешности 5%) и параметры для открытия. На практике это выглядит так : на сей момент, при совпадении 5% по индикаторам и разбросом по времени 2 часа, на истории было проведено 200 сделок BUY из них 150 были с профитом ,а 50 с убытком. 150 сделок SELL 75 профит ,75 убыток. И подобную картину мы видим по всем видам параметров какие эмулировали. Итог, решаем открывать сделку с определёнными параметрами. Визуально это график в виде баров, не в МТ.

Может немного запутанно,но общий смысл примерно такой.

Байда подход. Сама по себе нейронная сеть торговать не может. Она может лишь выступать в качестве индикатора (вторая часть поста). Поэтому нужен советник, желательно проверенный который сначала выступает в качестве учителя, а затем - торгует. И разумеется, все должно быть заверчено на индюках, никакие относительные дельты цен не прокатывают!

 

Доброго времени суток. Есть интересная идея "Конкурс советников внутри советника" http://articles.mql4.com/ru/922. Здесь предлагалось нечто подобное но все заглохло. По-моему тема достойна развития и очень интересна. (По крайней мере перспективнее нейронных сетей, на данном уровне развития вычислительных способностей "ЭВМ". Вот когда появятся квантовые компы - можно поговорить про искусственный интеллект ИМХО.)

Чем вам четыре ядра не искусственный интеллект??!?

 

Еще вопрос вдогонку, это почему нейронные сети в двух толковых абзацах обсуждаются? А еще говорят альпари... ладно пойду пожру что ли, голодный пипец...

Share this post


Link to post
Share on other sites
Пафос Респектыч
А как Вам такой подход.

На истории в 2000 баров эмулируются сделки BUY и SELL c одинаковыми параметрами . Т.е. эмулируем сделку BUY c параметрами SL=50 TP=25 и такую же сделку SELL. В итоге получаем ответ либо + ,либо - . Так эмулируем с разными параметрами на всех 2000 барах. Параллельно с ответом записываем значения индикаторов ,например CCI,Stochastic,WPR,Momentum. В итоге получаем базу эмулированных сделок со значениями индикаторов и временем открытия (часов,дата не важна). У меня получилось 50 000 записей. На текущий момент сверяемся с базой и определяем ,что сейчас больше подходит для открытия (при определённой погрешности 5%) и параметры для открытия. На практике это выглядит так : на сей момент, при совпадении 5% по индикаторам и разбросом по времени 2 часа, на истории было проведено 200 сделок BUY из них 150 были с профитом ,а 50 с убытком. 150 сделок SELL 75 профит ,75 убыток. И подобную картину мы видим по всем видам параметров какие эмулировали. Итог, решаем открывать сделку с определёнными параметрами. Визуально это график в виде баров, не в МТ.

Может немного запутанно,но общий смысл примерно такой.

Байда подход. Сама по себе нейронная сеть торговать не может...

Может быть может, может быть не может, но причем тут нейронная сеть? :crazy: Камрад zhuki про нейронную сеть не упоминал вроде, речь о чистой статистике.

Share this post


Link to post
Share on other sites
rastega
Что касается формулировки может и правда не совсем корректно,но главное ,что смысл ясен.

Не совсем ясно ,как это не пересекаться во времени. Каждая запись сама по себе и никакого отношения к другим не имеет.

Почему сложно рассчитать и считать будет долго. 50 000 записей обрабатываются 400 мс и выдаются в виде 5 графиков. Это что так много?

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


мочить когда сухо, сушить когда мокро ))))

Share this post


Link to post
Share on other sites
БорисMQL4

Приветствую всех любителей технологий в сфере ИИ!
Подписался на канал интересной компании - https://www.youtube.com/channel/UC7vVhkEfw4nOGp8TyDk7RcQ
В контексте данной темы, многим может быть очень полезно наблюдать за достижениями, по истине грандиозных энтузиастов работающих в этой компании.

Edited by БорисMQL4

Пишу на заказ - советники, индикаторы, скрипты и другое ПО для терминала MetaTrader 4.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×