Перейти к содержанию

Привет. Разрабатываю фреймворк для анализа рынка TechAnalysis


roman01

Рекомендуемые сообщения

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано (изменено)

Привет!
Я разрабатываю фреймворк для анализа рыночных цен и помощи в торговле, который назвал TechAnalysis.

Многое еще не готово, но этим уже можно пользоваться.

Фреймворк пишется на Python (версия не менее 3.6), Цены хранятся в отдельной базе данных (SQLite)

Если эта тема интересна, то прошу читать:

Немного о себе:
торгую сам с 2015 года. Честно говоря, до где-то начала 2018 года, торговал, как говорят, не очень, что бы очень: иногда зарабатывал, но чаще все-таки проигрывал. Период относительного успеха сменялся проигрышами.
В общем, карусель.
Все это было для меня достаточно безболезненно, так как суммы не крупные...

Дело сдвинулось в начале 2018 года, когда я начал серьезно задумываться о причинах моих проигрышей (журнал сделок я вел, хоть и не всегда).
К этому времени я уже обчитался всяческой литературы: от классического теханализа, до VSA и PriceAction - эта информация и журнал, помогли мне определить мои проблемные места в рыночной торговли: забавно, но проблема оказалась во мне самом. Я имею ввиду, что именно проблемы психологического характера (торопливость, сорвался, не выдержал ожидания и.т.д) являлись основной проблемой неудач на рынке.
Проблему создавали, так же неправильная интерпретация сигналов рынка.

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

Сделав, начали обсуждать, что хорошо бы иметь не привязанное к конкретному вендору средство для анализа рынка, более удобное и продвинутое, чем MT4, ну и пошло...

Теперь по самому фреймворку:
индикаторов практически нет (пока есть MA, Стохастик и CCI), да это и не нужно, TechAnalysis рассчитан именно на поиск и анализ различных рыночных ситуаций.
далее: основные таймфреймы - это дневной (основной) и недельный. В базу я так же загружаю часовые и 4-х часовые цены, но это не основные таймфреймы - для пипсовки и скальпинга он не предназначен.

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

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

Напрмер, вот такой паттерн (вложение):

ищется кодом:

from framework.pricelist import LoadPriceList
from framework.bar import FindBar
from framework.utils import Models

loadPriceList = LoadPriceList()
findBar = FindBar()
models = Models()

symbol = "EURUSD"
priceArray = loadPriceList.GetPriceByCountBar(200,symbol,1440)

print(f"Поиск модели bar3.ber.outbar.1 по {symbol}:")

model = {'barA_type': ['bear'], 'barB_type': ['bear'], 'barC_type': ['bull'],
'barA_size': [0.3, 0], 'barB_size': [0.6, 0], 'barC_size': [1.2, 0],
'down_precisionBC': [0, 0.5], 'barC_open': ['C', 'D'], 'barC_close': ['A', 'B'],
}

find_models = findBar.findBars3(priceArray,True,model,["barC_dt"],False)
print("\n",find_models)



Добавлено: 21-03-2019 09:46:03

Чего хочу:

независимое от крутых компаний средство для анализа цен в исходных кодах на крутом языке Python :)

если данная тема кому-то интересна, то прошу присоединяться к тестированию, а так же к написанию документации.

Так же предлагаю создать базу прибыльных моделей (одну из них привел в основной теме)


Добавлено: 21-03-2019 11:26:25

Документация по модулю bar и pricelist

Использую программу cherry tree

bar3.ber.outbar.1.jpg
TechAnalysis.zip

Изменено пользователем roman01
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

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

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано (изменено)

Доброго всем дня!
Хочу ответить allex_all и выложить первую порцию фреймворка.

Отвечаю: в начале я так же начинал писать на MQL, о чем и писал в основной теме. Написал примерно 1000 строк кода и очень сильно разочаровался в MQL.

По окончанию работ сделал следующие выводы:
1. Язык MQL просто дубовый. Если сравнивать Python и MQL, то это как сравнивать крутой джип типа и уаз буханку
2. есть опасность, что однажды некий товарищ из конторы, которая разрабатывает MT4, решит всех перевести в принудительном порядке на MT5, изменит функции (API) - что делать-то будем?
3. конфиденциальность - не задумывались?
4. у меня в планах использовать нейросети и машинное обучение, а это Python

По поводу визуализации - планы есть, но ресурсов пока нет на это. Есть модуль, которые предназначен для тестирования полученных результатов.

Как у меня проходит тестирование:
1. получил даты в виде массива-списка
2. передал в функцию тестирования, где указываю тип паттерна, размер стопа и профита и получаю результат: прибыльный или убыточный и общую статистику

как-то так...

Выкладываю первую порцию


Добавлено: 23-03-2019 05:09:51

Добавил базу

TechAnalysis-1.zip
TechAnalysis-1.zip

Изменено пользователем roman01
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

Добрый день!
Немного доработал модуль bar.
Теперь можно получить более точное расположение цены относительно бара

Так же выкладываю модель для поиска паттерна утренняя звезда.
Данный лучше искать на 4-х часовиках, не старше

Пример поиска (только для новой версии модуля bar):
from framework.pricelist import LoadPriceList
from framework.bar import FindBar
from framework.bar import CalcBar

loadPriceList = LoadPriceList()
findBar = FindBar()
calcBar = CalcBar()

priceArray = loadPriceList.GetPriceByCountBar(200,"EURUSD",240)

# поиск паттерна "Бычья утренняя звезда"
filter = {"barA_type":["bear"],"barB_type":["bear"],"barC_type":["bull"],
"barA_size":[1.1,0],"barB_size":[0,0.7],"barC_size":[1.1,0],
"barB_open":["C3","D","E"],"barC_close":["A"],
}
morning_star = findBar.findBars3(priceArray,True,filter,["barC_dt"],False)
print(morning_star)

Результат выполнения: ['2019.03.08 04:00']

В связи с отсутствием интереса здесь и неудобством форума для подобных целей, буду выкладывать на фреймворк GitHub

bar.zip

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

roman01, в свою очередь прокомментирую

Спойлер

По окончанию работ сделал следующие выводы:
1. Язык MQL просто дубовый. Если сравнивать Python и MQL, то это как сравнивать крутой джип типа и уаз буханку
2. есть опасность, что однажды некий товарищ из конторы, которая разрабатывает MT4, решит всех перевести в принудительном порядке на MT5, изменит функции (API) - что делать-то будем?
3. конфиденциальность - не задумывались?
4. у меня в планах использовать нейросети и машинное обучение, а это Python


1. Это да, хоть я Питон знаю только обзорно про его возможности и сферы применения, но MQL язык точно ущербный. один только тот факт, что отсутствует возможность двойного наследования на мой взгляд убивает как минимум половину возможностей, которые вообще может дать ООП подход. Я честно не понимаю как можно сделать форк ООП языка и не сделать двойное наследование, зачем главное, просто лень было заморачиваться видимо.
Но я решил обходить эти слабые стороны и сделать такой код, который переносим в С++ подобные среды. т.е. функции чисто терминала МТ по идее д.б. отделены от остальной логики, чтобы при переносе надо было в идеале заменить только их (работа с тайм-сериями, графич. операции и др. служебные).
2. Я сразу в MQL5 для МТ5 делаю, хоть сейчас язык MQL4 практически и не отличается от 5-ки. Не думаю кстати что 4-ку перестанут поддерживать в ближайшем будущем, 5-ка не настолько круче чтобы это имело какой-либо смысл.
3. Задумывался, а что именно насчёт конфиденциальности? То что mql легче декомпилируется?
4. Нейросети интересная штука, хоть про эффективность их в приложениях трейдинга пока спорят. Тоже думаю как их применить.
К сожалению не владею Питон чтобы сходу потестить приложенные продукты. Но обязательно заморочусь на днях :)
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

Ну и я вставлю коммент:
Все Ваши разработки наверняка хороши и круты, но это не главное в торговле, к сожалению... Видел код mql в 100 строчек, писанный на коленке - совершенно без ООП, который работает и торгует некоторым на зависть. Или взять в пример Ревера, его совы на ПАММах годами прибыль извлекают с сотнями тысяч инвестиций и тоже совершенно без ООП ( он его не любит ).
То-же касается и нейросетей, здесь есть только один человек, который похваляется успешной совой с нейросетью, но это может быть и его маркетинг ( он ПАММо-вод ).
Я к чему клоню - для написания советника гораздо важнее иметь рабочую торговую идею и опыт реальной торговли, чем двойное наследование или другие фишки в mql, имхо.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

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


Спасибо за высказанное мнение, но должен немного поправить. Вы абсолютно правы, для написания советника да и вообще для написания любой программы можно справиться и без фишек типа ООП.
Но вы наверное не обратили внимание что тут речь идёт не о просто советнике, а если выразиться грубо о написании системы-анализаторе рынка и конструкторе советников. Это уже довольно более масштабный и сложный проект с точки зрения программирования, чем просто реализовать конкретную идею в одном советнике. И для его реализации такие фишки гораздо упрощают задачу, и даже не столько с точки зрения меньшей трудоемкости первичного написания кода (и с ней тоже), сколько например с т.зр. гибкости к изменениям и последующего масштабирования и развития.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано (изменено)

Во-первых, здравствуйте и спасибо за проявленный интерес.

1. allex_all совершенно прав - TechAnalysis НЕ СОВЕТНИК - это система анализа рынка. Его фишка и основное назначение в поиске и анализе РЫНОЧНЫХ МОДЕЛЕЙ.

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

2. Я не против советников, получается - хорошо! Понимаете, на рынке много народу, кому-то обязательно повезет и далеко не факт, что он использует прибыльную стратегию/советник. Ключ в том, что человек может просто поймать тренд/флэт, где его система работает. Вот посмотрите на EURUSD: медвежий тренд длился с 2014.05 по 2015.03 (почти ГОД!)
Весь этот хлам (советники в 100 строк) потом куда сливается? правильно - на рынок, в форумы! Он же торгует прибыльно "на зависть многим" - понимаете?
У меня задача другая - не грааль, а получение статистического преимущества!

3. Нейросеть будет применяться для анализа рыночных моделей и обучения, НЕ ТОРГОВЛИ

4. Я за то, что рыночные решения должен принимать трейдер

5. сам торгую только на дневках и на недельных графиках, новости не смотрю, линии не рисую, каналы не провожу, :)
стараюсь работать только со статистическими моделями.
Например, на EUR наклевывается паттерн Внешний бар, если такой будет, то буду торговать в лонг ;)

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


Вопрос сообществу: планирую сделать видео по применению TechAnalysis, что скажете?

Да, и еще: мне хочется собрать группу, которая будет развивать данное направление, может и торговать сообща. Через интернет это вполне можно делать.

Можно использовать любой мессенджер типа вайбера и ватсапа для общения

Требования: умение программировать, хотя бы на начальном уровне, python (опять-таки можно даже основы), желание - самое главное

Изменено пользователем roman01
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

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

Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

Юзай ситрейдер, там это уже есть в API + куча других предописанных методов

Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано


Юзай ситрейдер, там это уже есть в API + куча других предописанных методов


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

  • 2 weeks later...
Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано (изменено)

Привет, я обновил TechAnalysis. Вы можете скачать и посмотреть изменения.

Итак по порядку:
Установка:
1. что-бы ничего не менять, скачайте и распакуйте на C:\Programming\TechAnalysis
иначе - смотрите файл options.py (там все понятно)
2. SavePriceToFile.mq4 и SaveIncrementPriceToFile.mq4 - это скрипты MT4 для выгрузки цен в файлы

Использование:
Открываете в PyCharm (средство разработки на Python) проект из C:\Programming\TechAnalysis и смотрите.
Например, ImportFromFile - это импорт цен из файлов в базу данных
find_models - поиск моделей bar1,bar2,bar3
editRatingGUI - графическая программа для редактирования рейтинга моделей (для ее использования необходимо поставить PyQt - в cmd пишем: pip install pyqt5)

На данный момент я добавил самые "вкусные" разворотные модели. Сейчас работаю над моделями продолжения.

ВАЖНО!
Очень важно знать- где смотреть модели. Например, разворотная модель ищется на вершине или впадине рынка, но никак не во флэте. У меня есть модули проверки на экстремум, коррекцию и.т.д, но пока не выкладываю, так как не протестировано в достаточной степени.

ВАЖНО!
модели у меня - это не просто свечные модели, но и более сложные рыночные ситуации, например, коррекция с уровнем отката от 35 до 60 процентов от движения - есть и такая модель

Так же больной вопрос - документация, вот бы кто-нибудь помог!?

Так же отвечаю по поводу cTrader: нашли с чем сравнивать! Совершенно разные продукты и цели разные!

Какие есть задумки:
сейчас начал работать над расчетом рыночного баланса. Будет готово - выложу.
Так же в ближайшее время добавлю 2 модуля - работа с коррекциями и экстремумами.

Если кто хочет поучаствовать в работе, пишите на roman-info01@yandex.ru.

PS.
В скрине - листинг и результат работы скрипта, который ищет модели...

С уважением, Роман



Добавлено: 17-04-2019 12:36:16

Паспорт модели - это ее описание и методы использования.

На данном этапе - скорее черновики, так как времени на это не хватает.

Но...будем работать

Добавлено: 17-04-2019 14:41:23

Рейтинги я обнулил...

techanalysis.zip
111.png
models.zip

Изменено пользователем roman01
Ссылка на сообщение
Поделиться на другие сайты

Привет. Разрабатываю фреймворк для анализа рынка TechAn… Опубликовано

Привет! Решил пока приостановить работу над расчетом баланса. Давно уже хочу довести до ума модуль поиска дивергенций.

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...