Добрый день. В предыдущих частях я описывал, как на C# сделал собственный тестер, применяя объектно-ориентированный подход, рассказывал про интерфейсы, про их реализации, и, рассказывал про работу с БД. На данный момент осталось совсем немного. В этом топике я опишу вариант расчёта результатов работы стратегии.
Чтобы не запутаться, даже не читая предыдущие топики, поясню, что есть и к чему надо придти. Есть стратегии – это некий объект программы, который выставляет заявки на основе получаемой маркет-даты. Заявки (Order) регистрируются системой. Также, регистрируются сделки прошедшие по заявке (каждая заявка имеет список сделок — List<Trades> trades). После прогона стратегии, все заявки и сделки сохраняются в БД, и после, их можно извлечь и посчитать по ним статистику работы стратегии. По сути, эта статистика состоит из двух аспектов: сами закрытые позиции и оценка эффективности на их основе. Начнём с первого. Вот интерфейс, который принимает заявки со сделками, и, выдаёт, собственно, список закрытых позиций:
interface IClosePositionManager { List<ClosePosition> ClosePositions (List<Order> orders); }
Да! Именно так! Разработка собственного тестера или покупка готового не приведёт к успеху, если нет самого главного – идеи. Можно прятаться за кучей графиков или оправдывать себя горой ненужного “профессионально написанного кода”, коллекционировать и применять кстати и не кстати различные термины, знать на зубок тервер и математику. Но нет идеи – нет и денег!
Откуда появляются идеи? Может, это совокупность опыта, природной чувствительности, удачи? Так, или иначе, необходимо отбросить на самом раннем этапе всё несущественное, и выявить или почувствовать перспективные направления, чтобы не тратить время на просто перебор. Энтузиазм, как один из важнейших факторов успеха, может быть сведён на нет постоянными неудачами переборов. Тестер – это помощник, позволяющий отшлифовать алгоритм, а не создать его. Но, к слову сказать, найти хорошую идею можно и с помощью него – перебор тоже, совершенно случайно, может дать результат, но он, всё-таки, никогда не будет давать стабильные результаты. Грааль спрятан внутри!
Анализ графика проведен с помощью аналитической программы по автоматическому анализу биржевых графиков PATTERN ANALYZER.
Программа Pattern Analyzer обнаружила на графике Газпром ао, H1 новый торговый сигнал (графический паттерн):
Название фигуры: Двойная вершина
Тип сделки: продажа
Стоп-лосс выше: 124,30
Тейк-профит: 117,70
Трейдер из нашей тусовки покончил с жизнью и задушил дочку. Мнение и совет всем трейдерам. Источник lenta.ru/news/2017/09/30/igral/
00:00 Введение про проигравшегося трейдера, убившего свою дочь и покончившего свою жизнь сам
00:40 Как и когда у меня были мысли о суициде
03:00 Личный пример почему думать об суициде глупо
05:08 Торговля на бирже сама по себе не приводит к суициду
06:55 Всегда думайте о рисках, даже если не торгуете на бирже
07:40 Всегда задавайте себе вопрос «А ЧТО СЛУЧИТСЯ, ЕСЛИ… ?»
09:40 Что делать, если профукал денежки инвестора
11:55 БУДЬТЕ ПАРАНОИКОМ!
– Привет! В предыдущий раз, ты рассказывал про дата-сервис, про отдельный слой доступа к данным. Расскажи теперь про сами сущности и репозитории. При помощь чего ты вытягиваешь данные из таблиц?
– Ок. Если необходимо сохранять сделки и статистику, или откуда-то брать исторические котировки для тестов, то неплохо использовать БД. Но, как с ней общаться? Есть несколько способов. В C#, есть например традиционный ADO.NET, но речь пойдёт не о нём. В прошлый раз мы отделили работу с БД от бизнес-логики, это уже очень здорово, но можно пойти дальше! Есть способ общаться с самой БД на достаточно абстрактном уровне, инкапсулируя детали формирования самих запросов. Такой способ лучше вписывается в концепцию объектно-ориентированного проектирования, и называется он ORM (object relation mapping).
– Хм, я что-то слышал про ORM. У меня сложилось неоднозначное ощущение, вроде, есть целое сообщество, кто против них (OrmHate), и считает это антипаттерном. Все эти дополнительные уровни абстракции, и вообще, они наверно дико тормозные?
0:00 Куда я пропал со smart-lab.ru
01:09 Почему мне больше не интересна политика
01:58 Почему мне вообще были интересны политические темы
03:00 Как изменился Саратов за последний год
04:20 Почему меня потянуло на «высокое»
06:20 Для чего нужно учить стихи. Какая связь с трейдингом
07:50 Пушкин и золотой запас
09:00 О чем буду говорить дальше
В последнее время в моей ленте в фэйсбук, да и на смарт-лабе, все чаще и чаще появляются сообщения о том, что инвесторы все чаще интересуются торговыми роботами и совершают большую ошибку, так как это «путь к сливу счета» («мошенничество», «заблуждение», «профанация») (нужное подчеркнуть). Цифр и исследований в доказательство этого «утверждения» обычно никаких не приводится, а идет отсылка либо к Баффету, либо к «кухонной статистике»: «95% трейдеров сливают», либо, как у А. Мовчана, общие рассуждения на тему, кто может выиграть на финансовом рынке.
Что ж, отчасти приятно, что все больше потенциальных инвесторов интересуются торговыми роботами, потому что в растущие нулевые с «высот» buy&holdовских ПИФов, «канувших в лету» в кризис 2008-го, робототорговцев никто из пропагандистов долгосрочных инвестиций в России «в упор не видел». А робкие попытки самих робототорговцев напомнить о себе, встречали снисходительное: «ну-ну, наберите хотя бы пару десятков миллионов долларов инвесторских, тогда мы может с вами и поговорим, а пока играйте в своей песочнице».