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

Урок 4. Свечи, графики, история
Atom
5/1/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


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

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

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

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



Thanks:


<< < 3 4 5 6  >
Maxim

Avatar
Date: 1/9/2014
Reply


Здравствуйте.
Не отображается последняя свеча текущего дня и ее изменения (подключение через TransaqConnector). Я использую StockSharp API 4.2.1.7. Подскажите, пожалуйста, что делать...

Код:
Code
 
private void RunProcessGetCandles()
        {
            _candleManager = new CandleManager(interFace.SafeConnection.Trader);
            var security = interFace.SelectedSecurity;
            var timeFrame = TimeSpan.FromMinutes(5);
            _candleSeries = new CandleSeries(typeof (TimeFrameCandle), security, timeFrame);
            _candleSeries.ProcessCandle += Draw;
            _candleManager.Start(_candleSeries);
        }

        private void Draw(Candle candle)
        {
            var candleBounds = ((TimeSpan) candle.Arg).GetCandleBounds(_candleSeries.Security);
            if (candle.State == CandleStates.Finished || candle.OpenTime >= candleBounds.Min)
            {
                this.GuiAsync(() => Chart.ProcessCandle(_chartCandleElement, candle));
            }
            
        }

        private void InitChart()
        {
            Chart.IsAutoScroll = true; 
            _chartArea = new ChartArea();
            Chart.Areas.Add(_chartArea);
            _chartCandleElement = new ChartCandleElement();
            _chartArea.Elements.Add(_chartCandleElement);
        }

        private void WindowLoaded(object sender, RoutedEventArgs e)
        {
            InitChart();
        }
MainWindow.xaml.cs 2 KB (270)
Thanks:

IvanB

Avatar
Date: 1/9/2014
Reply


Попробуйте обновить время через интернет на вашем компьютере
Thanks:

Maxim

Avatar
Date: 1/10/2014
Reply


IvanB
Попробуйте обновить время через интернет на вашем компьютере



Не помогло. Пробовал также время на пару минут раньше устанавливать. Черная стрелка с ценой последней сделки вообще отсутствует в области графика.
Thanks:

IvanB

Avatar
Date: 1/11/2014
Reply


Maxim
IvanB
Попробуйте обновить время через интернет на вашем компьютере



Не помогло. Пробовал также время на пару минут раньше устанавливать. Черная стрелка с ценой последней сделки вообще отсутствует в области графика.


Тогда попробуйте сделать так:
Code

        private void Draw(Candle candle)
        {
            this.GuiAsync(() => Chart.ProcessCandle(_chartCandleElement, candle)); 
        }


код выводит абсолютно все свечи, если заработает, то проблема с расхождением времени приходящих свечей и вашего ПК.
Thanks:

Maxim

Avatar
Date: 1/13/2014
Reply


Quote:

Тогда попробуйте сделать так:
Код:

private void Draw(Candle candle)
{
this.GuiAsync(() => Chart.ProcessCandle(_chartCandleElement, candle));
}


код выводит абсолютно все свечи, если заработает, то проблема с расхождением времени приходящих свечей и вашего ПК.


То же самое...Не отображается
Thanks:

Maxim

Avatar
Date: 1/13/2014
Reply


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

Maxim

Avatar
Date: 1/13/2014
Reply


Могу, если надо, видео с экрана куда-нибудь выложить...
Thanks:

IvanB

Avatar
Date: 1/14/2014
Reply


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


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

_candleManager.Processing += Draw;

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

private void Draw(CandleSeries series, Candle candle)
Thanks:

JaguarFX

Avatar
Date: 1/14/2014
Reply


Судя по всему в библиотеке StockSharp.Xaml версии 4.1.2.7 уже нет компонента SciChart, о котором рассказывается в видео-уроке.
Прошу подсказать какой компонент теперь его заменил, и внести эту информацию в раздел "Изменения в проектах".

Разобрался: необходимо подключать библиотеку StockSharp.Xaml.Charting и использовать элемент Chart.
Thanks:

JaguarFX

Avatar
Date: 1/14/2014
Reply


Николай
Присоединяюсь к 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 (см. детали на скрин-шоте).
S#ChartError-1.jpg 318 KB (291)
Thanks:
<< < 3 4 5 6  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy