Трейдинг для начинающих. Биржа.
Atom
22.04.2020


Сегодняшняя статья будет не совсем обычная.
Мы часто пишем статьи, полагаясь на то, что большинство пользователей имеют опыт в торговле на бирже. Однако, среди наших читателей, все чаще появляются люди, которые не обладают знаниями о бирже, брокерах, рынке и торгах в целом.
Мы бы хотели изменить это и рассказать немного о структуре торговли, что бы каждый, даже новичок имел представление о том, с чем он может столкнуться.
Это не будет пособие для чайников, это будет статья – помогающая сориентироваться пользователю, впервые пришедшем в торговлю.

stock-exchange-738671_640.jpg
Для начала расскажем, что же такое биржа и как она устроена.

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

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

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

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

download-new-program-version-.gif

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


Возникновению первой биржи в XV веке, мы обязаны бельгийскому городу Брюгге. Именно на его центральной площади проводились первые торги ценными бумагами – векселями.
Неподалеку от места торговли, располагался дом семьи Ван Дер Бурс. В последствии, эти торги поучили название Borsa, что с годами трансформировалось в слово «биржа».
Каким же правилам следуют торги на бирже:
- Гласность и открытость операций,
- Свободное ценообразование
- Государство не вмешивается в ход торгов, однако торги регулируются законодательством.
- На ряду с ручной торговлей есть возможность использовать автоматизированные системы торговли. Например такие известные как S#.Shell, MТ и другие,
- Биржа получает доход от комиссии со сделок.


Торговля открывает большие возможности перед участником для заработка.
Сегодня участником рынка может стать как опытный трейдер так и новичок.
Обилие торговых бирж открывает возможность выбора, чем и где торговать. К крупнейшим биржам можно отнести: Чикагскую, Токийскую и Сиднейскую товарные биржи, Нью-Йоркскую хлопковую, Лондонскую биржу металлов, Немецкую срочную (Франкфурт) и Сингапурскую валютную биржи, Европейско-американскую NYSE–Euronext, Санкт-Петербургскую и Московскую фондовую биржи.

business-257911_640.jpg

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


1 2  >
Дмитрий_

Фотография
Дата: 22.04.2020
Ответить


Здравствуйте.
Спасибо за интересную статью.

Я хотел высказать пожелание по поводу документации.
Есть ли возможность заполнить пробелы в ней?

Всем это пойдёт только на пользу.
И Вас будут меньше отвлекать и у пользователей разработка пойдёт быстрее.

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

Marat

Фотография
Дата: 23.04.2020
Ответить


Дмитрий Антипов Перейти
Здравствуйте.
Спасибо за интересную статью.

Я хотел высказать пожелание по поводу документации.
Есть ли возможность заполнить пробелы в ней?

Всем это пойдёт только на пользу.
И Вас будут меньше отвлекать и у пользователей разработка пойдёт быстрее.

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


Добрый день. Благодарим Вас за прочтение и за ваш комментарий. Не могли бы Вы подробнее описать какие разделы документации Вам интересны и в каком виде были бы интересны топики для прочтения?
Спасибо: Дмитрий_

Дмитрий_

Фотография
Дата: 25.04.2020
Ответить


Добрый день.

Без проблем.

"Какие разделы документации"

1) Всё что связано с ConfigManager.RegisterService

"В каком виде были бы интересны топики для прочтения"

1.1) Список доступных сервисов.
1.2) Описание сервиса (для чего подключаем?)
1.3) Общая информация.
Как отключить, переподключить сервис?
Как создать свой сервис? (чтобы влиял на графически контролы)
1.4) И другая информация связанная с сервисами, которую я не упомянул, но её важно знать.

Для рядового пользователя, как выглядят следующие строки:

ConfigManager.RegisterService<IConnector>(Connector);
ConfigManager.RegisterService<ISecurityProvider>(Connector);
ConfigManager.RegisterService<IPortfolioProvider>(Connector);
- ещё можно догадаться за что отвечают и зачем нужны,
но
ConfigManager.RegisterService(new PortfolioDataSource(Connector));
ConfigManager.RegisterService<IStudioCommandService>(new StudioCommandService());
ConfigManager.RegisterService<IExchangeInfoProvider>(new StorageExchangeInfoProvider(entityRegistry));
- уже тяжеловато для понимания

"Какие разделы документации"

2) Более детально опишите свойства и параметры Connector в виде пошаговой структуры.

Для примера свойства
public IBasketSecurityProcessorProvider BasketSecurityProcessorProvider { get; set; } - Как с ним работать, что ему передавать?
public bool CreateAssociatedSecurity { get; set; } // Create a combined security for securities from different boards. - Всё равно не понимаю (combined security)? Зачем ему different boards?

Следующие строки:
entityRegistry.Init - зачем init делает, когда без init всё создаётся?
EntityFactory зачем нужна и чем отличается от того же EntityRegistry?
EntityRegistry.DelayAction.DefaultGroup.WaitFlush(true); - вообще не понятно

Или метод
public void AddSecurity(SecurityId secerityId)
{
var securityMes = new SecurityMessage { SecurityId = secerityId };
Connector.SendOutMessage(securityMes);

var security = securityMes.ToSecurity(ConfigManager.GetService<IExchangeInfoProvider>());
EntityRegistry.Securities.Add(security);
}
Не понимаешь, вроде EntityRegistry часть Connector, но почему-то мы с ним работаем отдельно?

Некоторые моменты по отдельности вроде понятны, но по отношению к Connector - тьма.

"В каком виде были бы интересны топики для прочтения"

2.1) Чтобы получить следующее поведение Connector, мы делаем следующие промежуточные шаги (с описанием каждого шага). Из-за того, что нет структуры (кто, зачем, почему, когда) - получается каша.

"Какие разделы документации"

3) Более подробно опишите графический рендерер Вашего индикатора.
В продолжение темы https://stocksharp.ru/forum/10485/kakoi-iz-(stocksharpxamlcharting)-chartelement-luchshe-ispolzovat-(ili-nasledovat)-dlya-otrisovki-sdelok/#m47284
Так и не могу понять, как на графике отображать сделки всех участников в виде кругов разного диаметра, которые соединены друг с другом линией?

"В каком виде были бы интересны топики для прочтения"
3.1) Покажите реализацию Вашего IIndicatorValue на каком-либо примере.

Примерно первый транш такой)
Спасибо:

Sprite

Фотография
Дата: 25.04.2020
Ответить


Дмитрий Антипов Перейти

В продолжение темы https://stocksharp.ru/forum/10485/kakoi-iz-(stocksharpxamlcharting)-chartelement-luchshe-ispolzovat-(ili-nasledovat)-dlya-otrisovki-sdelok/#m47284
Так и не могу понять, как на графике отображать сделки всех участников в виде кругов разного диаметра, которые соединены друг с другом линией?

Насколько я понимаю, вы можете рисовать на графике только те элементы, которые доступны в фреймворке. Т.е. для решения вашей задачи вы можете:
1. Вместо кругов рисовать вертикальную гистограмму напротив каждой сделки, с высотой равной объему (если в одной свече может быть несколько сделок, то это надо делать на отдельной оси Х)
2. Рисовать аннотации рядом с каждой сделкой
3. Рисовать боксовые свечки рядом с каждой сделкой, размером в один пипс и с одним элементом в коллекции Candle.PriceLevels, в котором установить TotalVolume равное объему сделки. Получатся не кружочки а квадратики с циферками. Если в одной свече может быть несколько сделок, тоже нужна отдельная ось Х.
Всё это вероятно извращения, но другого пути я не знаю и конечно хотелось бы более современные возможности по рендерингу данных.
PS Хотя есть ChartIndicatorDrawStyles.Bubble, возможно это похоже на "круги рядом со сделками", но я этим не пользовался и не знаю как оно выглядит. Разного размера точки (ChartIndicatorDrawStyles.Dot) точно не получится. Т.е. или на каждую сделку создавать отдельный ChartIndicatorElement элемент со своим размером точки, ну или можно сделать заранее штук 5-10 разного размера и использовать только их в зависимости от объема.
Спасибо:

Marat

Фотография
Дата: 27.04.2020
Ответить


Дмитрий Антипов Перейти
Добрый день.

Без проблем.

"Какие разделы документации"

1) Всё что связано с ConfigManager.RegisterService

"В каком виде были бы интересны топики для прочтения"

1.1) Список доступных сервисов.
1.2) Описание сервиса (для чего подключаем?)
1.3) Общая информация.
Как отключить, переподключить сервис?
Как создать свой сервис? (чтобы влиял на графически контролы)
1.4) И другая информация связанная с сервисами, которую я не упомянул, но её важно знать.

Для рядового пользователя, как выглядят следующие строки:

ConfigManager.RegisterService<IConnector>(Connector);
ConfigManager.RegisterService<ISecurityProvider>(Connector);
ConfigManager.RegisterService<IPortfolioProvider>(Connector);
- ещё можно догадаться за что отвечают и зачем нужны,
но
ConfigManager.RegisterService(new PortfolioDataSource(Connector));
ConfigManager.RegisterService<IStudioCommandService>(new StudioCommandService());
ConfigManager.RegisterService<IExchangeInfoProvider>(new StorageExchangeInfoProvider(entityRegistry));
- уже тяжеловато для понимания

"Какие разделы документации"

2) Более детально опишите свойства и параметры Connector в виде пошаговой структуры.

Для примера свойства
public IBasketSecurityProcessorProvider BasketSecurityProcessorProvider { get; set; } - Как с ним работать, что ему передавать?
public bool CreateAssociatedSecurity { get; set; } // Create a combined security for securities from different boards. - Всё равно не понимаю (combined security)? Зачем ему different boards?

Следующие строки:
entityRegistry.Init - зачем init делает, когда без init всё создаётся?
EntityFactory зачем нужна и чем отличается от того же EntityRegistry?
EntityRegistry.DelayAction.DefaultGroup.WaitFlush(true); - вообще не понятно

Или метод
public void AddSecurity(SecurityId secerityId)
{
var securityMes = new SecurityMessage { SecurityId = secerityId };
Connector.SendOutMessage(securityMes);

var security = securityMes.ToSecurity(ConfigManager.GetService<IExchangeInfoProvider>());
EntityRegistry.Securities.Add(security);
}
Не понимаешь, вроде EntityRegistry часть Connector, но почему-то мы с ним работаем отдельно?

Некоторые моменты по отдельности вроде понятны, но по отношению к Connector - тьма.

"В каком виде были бы интересны топики для прочтения"

2.1) Чтобы получить следующее поведение Connector, мы делаем следующие промежуточные шаги (с описанием каждого шага). Из-за того, что нет структуры (кто, зачем, почему, когда) - получается каша.

"Какие разделы документации"

3) Более подробно опишите графический рендерер Вашего индикатора.
В продолжение темы https://stocksharp.ru/forum/10485/kakoi-iz-(stocksharpxamlcharting)-chartelement-luchshe-ispolzovat-(ili-nasledovat)-dlya-otrisovki-sdelok/#m47284
Так и не могу понять, как на графике отображать сделки всех участников в виде кругов разного диаметра, которые соединены друг с другом линией?

"В каком виде были бы интересны топики для прочтения"
3.1) Покажите реализацию Вашего IIndicatorValue на каком-либо примере.

Примерно первый транш такой)


Спасибо за развернутый ответ. Мы подумаем над вашим предложением.
Спасибо: Дмитрий_

Дмитрий_

Фотография
Дата: 28.04.2020
Ответить


sprite Перейти
Дмитрий Антипов Перейти

В продолжение темы https://stocksharp.ru/forum/10485/kakoi-iz-(stocksharpxamlcharting)-chartelement-luchshe-ispolzovat-(ili-nasledovat)-dlya-otrisovki-sdelok/#m47284
Так и не могу понять, как на графике отображать сделки всех участников в виде кругов разного диаметра, которые соединены друг с другом линией?

Насколько я понимаю, вы можете рисовать на графике только те элементы, которые доступны в фреймворке. Т.е. для решения вашей задачи вы можете:
1. Вместо кругов рисовать вертикальную гистограмму напротив каждой сделки, с высотой равной объему (если в одной свече может быть несколько сделок, то это надо делать на отдельной оси Х)
2. Рисовать аннотации рядом с каждой сделкой
3. Рисовать боксовые свечки рядом с каждой сделкой, размером в один пипс и с одним элементом в коллекции Candle.PriceLevels, в котором установить TotalVolume равное объему сделки. Получатся не кружочки а квадратики с циферками. Если в одной свече может быть несколько сделок, тоже нужна отдельная ось Х.
Всё это вероятно извращения, но другого пути я не знаю и конечно хотелось бы более современные возможности по рендерингу данных.
PS Хотя есть ChartIndicatorDrawStyles.Bubble, возможно это похоже на "круги рядом со сделками", но я этим не пользовался и не знаю как оно выглядит. Разного размера точки (ChartIndicatorDrawStyles.Dot) точно не получится. Т.е. или на каждую сделку создавать отдельный ChartIndicatorElement элемент со своим размером точки, ну или можно сделать заранее штук 5-10 разного размера и использовать только их в зависимости от объема.


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

"Т.е. или на каждую сделку создавать отдельный ChartIndicatorElement элемент со своим размером точки, ну или можно сделать заранее штук 5-10 разного размера и использовать только их в зависимости от объема." Думаю всё проще - создать свой класс и правильно интегрировать, нужен пример.
Спасибо:

Sprite

Фотография
Дата: 28.04.2020
Ответить


Marat Перейти
Спасибо за развернутый ответ. Мы подумаем над вашим предложением.

Раз пошла такая пьянка, добавлю свои 5 копеек:
1. Согласен с Дмитрием, по коннекторам и сервисам не понятно что за что отвечает, документации нет, исходников нет, объектов полно. В соседней ветке только что обсуждалось для чего нужны и как работают разные режимы работы StorageSettings - в итоге одни догадки, авторы молчат. Вообще говоря в документации полно свойств объектов, которые совершенно не понятно для чего использовать. Может быть это то, что люди ищут, может быть если бы были подробные описания приходили бы новые идеи. Вот, например, https://doc.stocksharp.r...ing_ChartAxis_Group.htm лаконично конечно но как понять для чего это свойство?
2. Хотелось бы реализацию и последующие примеры и документацию одновременного синхронного тестирования на истории нескольких таймфреймов. Сейчас HistoryEmulationConnector этого не умеет и по сути представляет собой пример а ля Hello World - я умею рисовать свечки, на одном графике, одну за другой.
3. Хотелось бы расширить возможности отображения данных
3.1. Рисовать несколько свечей с разными временами начала и окончания на одной оси Х. Допустим я хочу нарисовать одну часовую свечку посреди дня на минутном графике или две или 10.
3.2. Рисовать объекты без жесткой привязки к таймфрейму на оси Х. Сейчас чтобы нарисовать в индикаторе линию, которая начинается с середины дня надо заполнить все предыдущие значения до середины дня
3.3. Использовать на оси Х не только даты но и числовые значения
3.4. Использовать в кастомных рендерерах индикаторов свечи, аннотации, а не только ChartIndicatorElement. Например я хочу в процессе работы приложения рисовать/удалять сотни аннотаций внутри своей реализации BaseIndicatorPainter и иметь возможность показывать/скрывать их на графике одной кнопкой в легенде
3.5. Расширить профильные и боксовые рендереры свечей, чтобы была возможность отображать в одной свече по каждому ценовому уровню и Bid и Ask и Delta и Volume. Сейчас можно только одно значение CandlePriceLevel.TotalVolume. Причем только положительное (вызывается исключение если подставить отрицательное), хоть и тип данных decimal. А текущая история с фьючерсами на нефть показывает что этого не достаточно.

Вот для примера картинки того, чего нельзя сделать в StockSharp, при том что, например, платформа ATAS построена на том же самом компоненте графиков от DevExpress и там все это есть:


image1614.png 54 KB (392) image4332.png 73 KB (397) image5607.png 93 KB (407)
Спасибо:

Sprite

Фотография
Дата: 28.04.2020
Ответить


Дмитрий Антипов Перейти
...да много чего можно, но печально то, что не понимаешь как реализовать.

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

Иван З.

Фотография
Дата: 28.04.2020
Ответить


sprite Перейти
Marat Перейти
Спасибо за развернутый ответ. Мы подумаем над вашим предложением.

Раз пошла такая пьянка, добавлю свои 5 копеек:
1. Согласен с Дмитрием, по коннекторам и сервисам не понятно что за что отвечает, документации нет, исходников нет, объектов полно. В соседней ветке только что обсуждалось для чего нужны и как работают разные режимы работы StorageSettings - в итоге одни догадки, авторы молчат. Вообще говоря в документации полно свойств объектов, которые совершенно не понятно для чего использовать. Может быть это то, что люди ищут, может быть если бы были подробные описания приходили бы новые идеи. Вот, например, https://doc.stocksharp.r...ing_ChartAxis_Group.htm лаконично конечно но как понять для чего это свойство?
2. Хотелось бы реализацию и последующие примеры и документацию одновременного синхронного тестирования на истории нескольких таймфреймов. Сейчас HistoryEmulationConnector этого не умеет и по сути представляет собой пример а ля Hello World - я умею рисовать свечки, на одном графике, одну за другой.
3. Хотелось бы расширить возможности отображения данных
3.1. Рисовать несколько свечей с разными временами начала и окончания на одной оси Х. Допустим я хочу нарисовать одну часовую свечку посреди дня на минутном графике или две или 10.
3.2. Рисовать объекты без жесткой привязки к таймфрейму на оси Х. Сейчас чтобы нарисовать в индикаторе линию, которая начинается с середины дня надо заполнить все предыдущие значения до середины дня
3.3. Использовать на оси Х не только даты но и числовые значения
3.4. Использовать в кастомных рендерерах индикаторов свечи, аннотации, а не только ChartIndicatorElement. Например я хочу в процессе работы приложения рисовать/удалять сотни аннотаций внутри своей реализации BaseIndicatorPainter и иметь возможность показывать/скрывать их на графике одной кнопкой в легенде
3.5. Расширить профильные и боксовые рендереры свечей, чтобы была возможность отображать в одной свече по каждому ценовому уровню и Bid и Ask и Delta и Volume. Сейчас можно только одно значение CandlePriceLevel.TotalVolume. Причем только положительное (вызывается исключение если подставить отрицательное), хоть и тип данных decimal. А текущая история с фьючерсами на нефть показывает что этого не достаточно.

Вот для примера картинки того, чего нельзя сделать в StockSharp, при том что, например, платформа ATAS построена на том же самом компоненте графиков от DevExpress и там все это есть:




Справедливости ради, боксы и кластеры есть[happy]
https://doc.stocksharp.r...d-af29-cf80b633db3c.htm
На сколько я знаю у Devexpress нет нормального графика свечей. У ATAS какой-то сторонний, выглядит красиво конечно.
Спасибо:

Sprite

Фотография
Дата: 28.04.2020
Ответить


Иван З. Перейти
Справедливости ради, боксы и кластеры есть[happy]
https://doc.stocksharp.r...d-af29-cf80b633db3c.htm
На сколько я знаю у Devexpress нет нормального графика свечей. У ATAS какой-то сторонний, выглядит красиво конечно.

Справедливости ради, я не говорил что боксов и кластеров нет ) Я говорил что те, что есть не позволяют отрисовывать графики, которые есть во всех современных платформах Cluster Bid Ask, Cluster Delta, Profile Bid Ask, Profile Delta, Cluster Bid Ask Volume и так далее.
Вот папка с установкой ATAS, используется тот же самый DevExpress.Xpf.Charts:

image2082.png 77 KB (383)
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy