Всем привет.
Я переработал часть той информации, что есть у Ганна и тут на форуме и составил порядка 15 вычислительных методов с последовательными алгоритмами вычисления чисел, балансов, углов (уровней). Каждый из этих методов дает большое количество чисел и уровней (что по цене что по времени). И это только те алгоритмы, которые я на данный момент вычленил, а дальше появятся еще и массив получаемых чисел и трудоемкость расчетов вырастут. Расчет всего этого вручную представляется ОГРОМНОЙ работой. Поэтому для этих расчетов я начал писать программу. Программа не строит графики - она рассчитывает числа и углы (уровни) по разным алгоритмам. После расчета с этими данными можно делать что угодно - найти совпадения уровней рассчитанных по разным алгоритмам, выгрузить в Excel и обработать, просто любоваться ... ))) Кто-то скажет что вычислять все числа и уровни не нужно, а все гораздо проще - наверное так и есть. Но как это сделать просто и легко - у меня лично ответа сейчас нет. Как писали тут на форуме - сначала надо пройти через сложное, чтобы понять как все устроено и после этого понимания уже можно пытаться упростить. Поэтому для исследовательских целей я применяю все численные методы расчета.
Подготовительная часть для расчетов:
Есть база данных с тикерами (eurusd,gbpusd, gldusd и т.д.) и таймфреймами. Мы вручную размечаем график интересуемого нас инструмента. Далее вручную переносим данные о времени вершины и цене в базу данных, по графику размеченного тикера и таймфрейму. Это мы делаем, если хотим в дальнейшем на постоянной основе брать уже готовые данные и по ним производить расчеты. Если мы делаем расчеты, например по курсам Ганна, то можем просто занести данные для расчетов в программу, предварительно не занося их в базу.
На этом основная ручная работа заканчивается и начинается машинный расчет и исследовательская работа.
Определение данных для расчета:
Если мы предварительно занесли данные в базу по интересующему нас тикеру и таймфрейму - то мы выбираем интересуемый нас период, тикер и таймфрейм и нажимаем кнопку Загрузить. Заполняется список занесенных ранее вершин и оснований в указанном временном интервале на таймфрейме.
Если мы делаем какие-то временные расчеты или не хотим сохранять данные о вершинах на будущее - то просто вручную в таблицу заносим данные - дата/время вершины, цена и максимум это или минимум.
(скриншот 1)
Далее собственно расчеты. Расчет можем делать трех разных типов
- расчет чисел
- расчет углов времени (уровней по времени)
- расчет ценовых уровней
Принцип работы одинаковый, на примере расчета чисел. Есть набор алгоритмов, заложенных для расчета. Выбираем алгоритмы, которые нас интересуют (или все что есть, или один - сколько хотим) и нажимаем Рассчитать. Получаем таблицу чисел и по каждому числу комментарий о том, каким алгоритмом и по каким критериям данное число было получено. Это все. Далее эту таблицу можно прямо в программе обработать следующим образом:
- привести все числа к одному числу знаков
- объединить все одинаковые числа (с заданной точностью). Это как раз комбинаторика.
Полученные результаты на любом этапе можно экспортировать в эксель.
(скриншот 2)
Тоже самое для цены и для времени. Выбираем алгоритмы расчетов. Делаем расчеты. Обрабатываем результаты(если требуется). Сидим анализируем полученные данные и сравниваем их с реальным графиком.
(скриншот 3 и 4)
Как понятно из описания расчеты можно проводить на исторических данных и проверять, какие алгоритмы сработали и дали уровни, которые цена учла. А можно считать в будущее - ограничений нет.
Список алгоритмов можно постоянно дополнять, в существующие вносить уточнения.
Про календарное время и рабочее. Тут есть два варианта - считать рабочее время усреднено(например в неделе 5 рабочих дней) и считать по факту - как есть. По расчету усредненных данных думаю все понятно. А для расчета по факту - нужно в базу данных заносить графики работы биржи, на которой торгуется тикер. Тоже ничего сложного - но нужно делать.
Это не коммерческий проект - это для себя. Программа в облаке, работает через браузер по логину и паролю. Если есть желающие присоединиться к ее созданию - буду рад, программистом для этого быть не нужно. Что нужно:
1. Разработка новых численных методов вычисления.
2. Тестирование существующих и созданных алгоритмов на данных. Выявление ошибок и неточностей.
3. Программирование новых алгоритмов расчета.