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


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




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

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

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

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

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

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

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

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


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

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

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

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

Теги:


Спасибо:




59 Ответов
< 1 2 3 
IvanB

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


lebedevsrg Перейти
Николай Перейти
Присоединяюсь к MenDel,

Выдается ошибка (На видео это время 28:50) :

An unhandled exception of type 'System.ArgumentNullException' occurred in StockSharp.Xaml.dll

Ругается на эту строку: [code=csharp]Chart.ProcessCandle(_chartCandleElement, candle)


Присоединяюсь к замечанию Mendel и Николая,
уже месяц прошел с даты публикации ошибки , но ошибка все равно не исправлена.

У меня VS2012 более подробную информацию об ошибке - проблема в том что, не найдены символы для библиотеки Abt.Controls.SciChart.Wpf.2.2 (см. детали на скрин-шоте).

Надо обновить все библиотеки в проекте (либо в каталоге, откуда подключали dll файлы, либо в каталоге Debug, в зависимости от того как подключали) и все будет работать.

Автор топика
Спасибо:

Maxim

Фотография
Курсы
Дата: 16.01.2014
Ответить


Цитата:

Попробуйте так:
Код:

_candleManager.Processing += Draw;

при этом заголовок метода Draw нужно изменить:
Код:

private void Draw(CandleSeries series, Candle candle)


Один и тот же код нормально работает при подключении через QuikTrader, a при подключении через TransaqTrader не отображает текущую (последнюю) свечу .
Возможно, Вы меня не до конца поняли, но график при подключении через Quik изначально нормально выводился, а через Transaq - проблема какая была, такая и осталась...
Я какое-то время планирую пользоваться транзаком, поэтому хотелось бы понять, в чем дело.
Спасибо:

Maxim

Фотография
Курсы
Дата: 17.01.2014
Ответить


IvanB Перейти
Maxim Перейти
В проекте Transaq > Sample тоже не выводится текущая свеча.
А вот в проекте Quik > SampleCandles все Ok!


Попробуйте так:
Код

_candleManager.Processing += Draw;

при этом заголовок метода Draw нужно изменить:
Код

private void Draw(CandleSeries series, Candle candle)


Один и тот же код нормально работает при подключении через QuikTrader, a при подключении через TransaqTrader не отображает текущую (последнюю) свечу.
Видео подключения по ссылке:
http://youtu.be/4OH39uUWuRo
Спасибо:

Maxim

Фотография
Курсы
Дата: 21.01.2014
Ответить


Цитата:
Автор: IvanB Перейти к цитате
Цитата:
Автор: Maxim Перейти к цитате
В проекте Transaq > Sample тоже не выводится текущая свеча.
А вот в проекте Quik > SampleCandles все Ok!



Попробуйте так:
Код:

_candleManager.Processing += Draw;

при этом заголовок метода Draw нужно изменить:
Код:

private void Draw(CandleSeries series, Candle candle)


Один и тот же код нормально работает при подключении через QuikTrader, a при подключении через TransaqTrader не отображает текущую (последнюю) свечу.
Видео подключения по ссылке:



Может, дело в этом:
"Для получения обновлений по выбранному инструменту и тиков необходимо воспользоваться методами RegisterSecurity(Security) и RegisterTrades(Security) соответственно" (п. 6 Примеры работы с Transaq документации по StockSharp)???

Я попробовал добавить методы RegisterSecurity и RegisterTrades в тело метода RunProcessGetCandles() - результат тот же, последней свечи нет!(


Спасибо:

IvanB

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


Maxim Перейти
Цитата:
Автор: IvanB Перейти к цитате
Цитата:
Автор: Maxim Перейти к цитате
В проекте Transaq > Sample тоже не выводится текущая свеча.
А вот в проекте Quik > SampleCandles все Ok!



Попробуйте так:
Код:

_candleManager.Processing += Draw;

при этом заголовок метода Draw нужно изменить:
Код:

private void Draw(CandleSeries series, Candle candle)


Один и тот же код нормально работает при подключении через QuikTrader, a при подключении через TransaqTrader не отображает текущую (последнюю) свечу.
Видео подключения по ссылке:



Может, дело в этом:
"Для получения обновлений по выбранному инструменту и тиков необходимо воспользоваться методами RegisterSecurity(Security) и RegisterTrades(Security) соответственно" (п. 6 Примеры работы с Transaq документации по StockSharp)???

Я попробовал добавить методы RegisterSecurity и RegisterTrades в тело метода RunProcessGetCandles() - результат тот же, последней свечи нет!(




Возможно баг в коннекторе Transaq, будем разбираться...
Автор топика
Спасибо:

Maxim

Фотография
Курсы
Дата: 21.01.2014
Ответить


IvanB Перейти
[
Возможно баг в коннекторе Transaq, будем разбираться...


Понял, спасибо! А как можно будет узнать, когда исправите? или теперь придется ждать релиза новой версии StockSharp API?
Спасибо:

IvanB

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


Maxim Перейти
IvanB Перейти
[
Возможно баг в коннекторе Transaq, будем разбираться...


Понял, спасибо! А как можно будет узнать, когда исправите? или теперь придется ждать релиза новой версии StockSharp API?


Всего скорее ждать новой версии
Автор топика
Спасибо:

Maxim

Фотография
Курсы
Дата: 22.01.2014
Ответить


IvanB Перейти


Возможно баг в коннекторе Transaq, будем разбираться...


Еще по поводу транзака:
у меня не получилось воспользоваться свойством ServerTimeDiff (всегда возвращается null), насколько я понял из документации, это разница времени сервера транзак и времени системы.

Код

 if (Trader1.ConnectionState == ConnectionStates.Connected)
            {
                var servTimeDiff = Trader1.ServerTimeDiff;

                TbServerTimeDiff.Text = servTimeDiff.ToString();
                if (servTimeDiff == null)
                {
                    TbServerTimeDiff.Text = "разница ноль!";
                }

            }
Спасибо:

JaguarFX

Фотография
Курсы
Дата: 10.02.2014
Ответить


IvanB Перейти
[quote=lebedevsrg;29067][quote=Николай;28603]Присоединяюсь к MenDel,
Надо обновить все библиотеки в проекте (либо в каталоге, откуда подключали dll файлы, либо в каталоге Debug, в зависимости от того как подключали) и все будет работать.


Иван, ошибка периодически вылезает снова и снова - постоянно удалять и перезагружать библиотеки это не дело.

Можно вас попросить выложить в общий доступ файл "Abt.Controls.SciChart.Wpf.2.2.pdb" который VisualStudio запрашивает при появлении этой ошибки?

Спасибо:
< 1 2 3 

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

loading
clippy