Урок 4. Свечи, графики, история
Atom
01.05.2013
IvanB


Видео-уроки (основное):
Свечи, индикаторы, стратегия, метки, вывод на график



[vk]http://vk.com/video_ext.php?oid=-66650972&id=167470235&hash=5354329b0f44e11a&hd=3[/vk]

Исторические свечи, стратегия, вывод на график

[vk]http://vk.com/video_ext.php?oid=-66650972&id=167470340&hash=d4a2baaf8c533bc8&hd=3[/vk]

Видео-уроки (экстра):
Создание и работа с кластерными свечками

[vk]http://vk.com/video_ext.php?oid=-66650972&id=167470847&hash=05646cb903828f2e&hd=3[/vk]

Темы занятия:

Свечи (S# документация)
  1. Получение свечей из торгового терминала
  2. Вывод свечного графика

Индикаторы (S# документация)
  1. Создание простого собственного индикатора
  2. Вывод графика индикатора

Стратегия (S# документация)
  1. Получение заявок и сделок
  2. Вывод меток заявок и сделок на график

Работа с графиком (SciChart)
  1. Работа с областями графика
  2. Создание и использование графических элементов

Создание модуля для получения исторических данных
Создание сборки с получением исторических свечей, отрисовкой графиков и запуском стратегии
Выводим свечной график в S#.Studio


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

Полезные ссылки:
Свечи, документация

Вложения:
Скачать проекты

Изменения в проектах:

Теги:


Спасибо:


< 1 2 3 4  > >>
IvanB

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


pft_man
А как нарисовать на графике свой трейлинг-стоп так, чтобы он ещё и на истории показывался? В Wealth-Lab для этого существует метод PlotStops(), который просто рисует стопы, а я рассчитываю сами значения стопов.

Единственный вариант - сделать свой индикатор, рассчитывающий трейлинг-стоп, так? Такой индикатор будет иметь значение IsFormed, когда есть позиция. То есть он привязан к стратегии. Как лучше это в коде организовать?

И есть ли свойство у ChartIndicatorElement, позволяющее рисовать не линии, а точки, например. Если нет, то как можно это сделать?


Можно использовать метки заявок и сделок.
Для отрисовки индикатора можно выбирать стиль, свойство ChartIndicatorElement.DrawStyle, можно попробовать использовать тип ChartIndicatorDrawStyles.Dot для Вашей цели.
Можно создать свой графический элемент (метка, аналог метке-заявке или метке-сделке)
Спасибо:

pft_man

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


Ещё один вопрос. Cледующий код по событию изменения свечки:

Код
if ((candle.State == CandleStates.Finished) && (_series.GetCandle<Candle>(0).HighPrice > _series.GetCandle<Candle>(1).HighPrice))

Когда придёт новая цена, которая закроет текущую свечку (возвратит ей статуc finished), какая свечка будет считаться текущей: которая получила статус finished или следующая с первой ценой. Ведь по сути эта цена должна уже начать формировать следующую свечку. То есть обращаться к завершившейся свечке нужно будет через индекс 0 (как у меня в коде) или уже через 1?
В общем, мне нужно, чтобы как только свечка завершится, её High сравнивался с High предыдущей свечки. Мой код будет правильно работать?
Спасибо:

IvanB

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


pft_man
Ещё один вопрос. Cледующий код по событию изменения свечки:

Код
if ((candle.State == CandleStates.Finished) && (_series.GetCandle<Candle>(0).HighPrice > _series.GetCandle<Candle>(1).HighPrice))

Когда придёт новая цена, которая закроет текущую свечку (возвратит ей статуc finished), какая свечка будет считаться текущей: которая получила статус finished или следующая с первой ценой. Ведь по сути эта цена должна уже начать формировать следующую свечку. То есть обращаться к завершившейся свечке нужно будет через индекс 0 (как у меня в коде) или уже через 1?
В общем, мне нужно, чтобы как только свечка завершится, её High сравнивался с High предыдущей свечки. Мой код будет правильно работать?


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

UsilaDobry

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


Доброго вечера Иван.
Столкнулся с такой ошибкой при закачке истории с Финама "Элемент с таким ключом уже был запущен".
Такая ошибка у меня появляется, когда я запускаю два графика с историей с разными таймфреймами. Первый график выводит историю и реал корректно, а второй график выдает такую ошибку и выводит только реал... Почему, ведь происходит обращение к сайту Финама для получения свечек с разным таймфреймом...?
Спасибо:

UsilaDobry

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


Еще вопрос по обработке исторических свечей.
Для того, чтобы обработать свечи с начала торговой сессии и до времени запуска стратегии я использую вот такое условие:
Код
if (candle.CloseTime <= StartedTime && _parabolic.IsFormed &&
                        candle.State == CandleStates.Finished)

Необходимо получить исторические свечи + свечи с начала торговой сессии и до времени старта стратегии для обработки и определения торговых моделей.
А как передать исторические свечи в стратегию?
Спасибо:

IvanB

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


UsilaDobry
Еще вопрос по обработке исторических свечей.
Для того, чтобы обработать свечи с начала торговой сессии и до времени запуска стратегии я использую вот такое условие:
Код
if (candle.CloseTime <= StartedTime && _parabolic.IsFormed &&
                        candle.State == CandleStates.Finished)

Необходимо получить исторические свечи + свечи с начала торговой сессии и до времени старта стратегии для обработки и определения торговых моделей.
А как передать исторические свечи в стратегию?


Вообще, зависит от того, как Вы реализовали стратегию.
Думаю, лучшим вариантом будет - создать специальный метод в стратегии, который будет принимать свечи, и этот метод будет реализовывать то, что нужно делать с переданными свечами в Вашей стратегии.
Спасибо: UsilaDobry

IvanB

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


UsilaDobry
Доброго вечера Иван.
Столкнулся с такой ошибкой при закачке истории с Финама "Элемент с таким ключом уже был запущен".
Такая ошибка у меня появляется, когда я запускаю два графика с историей с разными таймфреймами. Первый график выводит историю и реал корректно, а второй график выдает такую ошибку и выводит только реал... Почему, ведь происходит обращение к сайту Финама для получения свечек с разным таймфреймом...?


Измените класс History на это:
Спасибо: VassilSanych UsilaDobry

UsilaDobry

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


Доброго дня!

Пробую добавить вывод реальных свечей от Альфа-коннектора, появляется ошибка "Параметр свечки 00-10-00 неправильный" в строке _candleManager.Start(series); Причем здесь параметр свечки, если в менеджер свечей передается серия свечей, и почему параметр серии 10 минут неправильный?..

Спасибо:

IvanB

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


UsilaDobry
Доброго дня!

Пробую добавить вывод реальных свечей от Альфа-коннектора, появляется ошибка "Параметр свечки 00-10-00 неправильный" в строке _candleManager.Start(series); Причем здесь параметр свечки, если в менеджер свечей передается серия свечей, и почему параметр серии 10 минут неправильный?..



Если Вы используете свечи типа TimeFrameCandle, то подобное сообщение говорит о том, что параметр Arg свечи (для типа TimeFrameCandle) имеет тип отличный от TimeSpan.
Спасибо: UsilaDobry

UsilaDobry

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


Действительно, поменял тип серии свечей, вместо TimeFrameCandle указал AlfaTimeFrames в строке
Код
_series = new CandleSeries(typeof(AlfaTimeFrames), security, timeFrame);


ошибка пропала, но выводятся только исторические свечи, реальные не хотят...
Спасибо:
< 1 2 3 4  > >>

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

loading
clippy