Избранное трейдера AntiKukl
(информационно-просветительский текст о трейдинге – очень краткое теоретическое обоснованиеи указание на его тайный механизм, о котором многие не догадываются, а те, кто догадываются, часто неправильно понимают его сущность.
Но от степени понимания этого механизма и умения его использовать некоторые трейдеры, инвесторы, фонды зарабатывают очень прилично, другие - просто прилично, большинство — неприлично и основная масса торгующих организмов (кто не в теме) теряют депозит)
Если вам показалось, что вы меня поняли, то это значит, что вы поняли меня неправильно.
А.Гринспен
Честно говоря, не хотел это писать, но ведь все равно найдется «спиноза», который рано или поздно слегка просветит понимающую эту тему общественность.
Поэтому кратко только обозначим проблему
На просторах интернета полно информации об анализе графиков цены и самых экзотических технических индикаторах. Чуть менее распространен анализ объемов торгов, по причине отсутствия такового у форекс-брокеров, активно популяризирующих биржевую торговлю. Не сложно найти неплохой учебник по инвестированию и фундаментальному анализу. Но вот, что касается использования ленты сделок и биржевого стакана, здесь русскоязычные ресурсы ограничиваются разъяснением терминов «бид», «аск» и спред, на чем весь анализ этих инструментов, по сути, и заканчивается. Есть неплохие видеоматериалы, но они преимущественно описывают ситуации на рынке США, где ECN и «дарк-пулы» вносят свои коррективы в механику торгов. Данная статья призвана хоть немного, но ликвидировать этот пробел и рассказать о том, как и зачем эти инструменты могут быть использованы на российском рынке обычным частным инвестором.
Добрый день. В предыдущих частях я описывал, как на C# сделал собственный тестер, применяя объектно-ориентированный подход, рассказывал про интерфейсы, про их реализации, и, рассказывал про работу с БД. На данный момент осталось совсем немного. В этом топике я опишу вариант расчёта результатов работы стратегии.
Чтобы не запутаться, даже не читая предыдущие топики, поясню, что есть и к чему надо придти. Есть стратегии – это некий объект программы, который выставляет заявки на основе получаемой маркет-даты. Заявки (Order) регистрируются системой. Также, регистрируются сделки прошедшие по заявке (каждая заявка имеет список сделок — List<Trades> trades). После прогона стратегии, все заявки и сделки сохраняются в БД, и после, их можно извлечь и посчитать по ним статистику работы стратегии. По сути, эта статистика состоит из двух аспектов: сами закрытые позиции и оценка эффективности на их основе. Начнём с первого. Вот интерфейс, который принимает заявки со сделками, и, выдаёт, собственно, список закрытых позиций:
interface IClosePositionManager { List<ClosePosition> ClosePositions (List<Order> orders); }
Приветствую. В предыдущем посте описывался интерфейс для генерации тиковых данных – ITickGenerator. Его реализации могут быть разными: данные могут генерироваться на лету, или браться из БД. В случае с БД, возникает необходимость в организации ещё одного слоя приложения – слоя доступа к данным. TickGenerator, всё также будет оповещать подписчиков (стратегии, которые выставляют заявки), но по тем данным, которые он получит из БД.
Сейчас не важно, какая будет база данных, и где она будут храниться – на сервере, в файлах или в оперативной памяти. Не важно, также, какие специфические библиотеки и драйвера буду для этого использоваться. Сейчас, я просто приведу пример того, как можно разделить бизнес-логику приложения и слой доступа к данным.
Я создал отдельный модуль, и там и развернул всю архитектуру, связанную с БД, основные компоненты которой: сущности, репозитории и дата-сервис.
Хотя понятие сущности (Entity), само по себе, достаточно общее, здесь, буду применять его в узком смысле – это классы, представляющие таблицы БД, возможно, с какой-то дополнительной логикой. В простейшем случае, одна сущность – одна таблица. Между сущностями может быть связь (например, один ко многим), которая отражается и в связи между таблицами. Сущность описывается полями класса, которые отражают колонки таблиц.