IvanB
|
Дата: 04.09.2013
Bond  На картинке в начале урока цвета свечей должны быть в точности наоборот. Или поменяйте местамы цены открытия и закрытия свечи. Благодарим за информацию.
|
Автор топика
|
|
|
Prival
|
Дата: 06.09.2013
Урок №4 если назначить CandlesDownloadUsing запускаемым проектом, то выдается ошибка Ошибка 2 Имя "PendingOrders" отсутствует в текущем контексте ...\StockSharp Lessons\StockSharp.Edu\04_lesson (Candles, Charts, Historical data)\CandlesDownloadUsing\BollingerStrategy.cs 29 79 CandlesDownloadUsing если строку return Orders.Count(o => o.State != OrderStates.Done) == 0 && PendingOrders.Count() == 0; записать вот так return Orders.Count(o => o.State != OrderStates.Done) == 0; // && PendingOrders.Count() == 0; то запускается. Причем это единственное что смог запустить в 4-ом уроке. Ни одно решение не запускается. Прикладываю скрин
|
|
|
|
Prival
|
Дата: 07.09.2013
На видео создается проект CandlesChartProject но его нет в исходном коде, там что то другое
|
|
|
|
IvanB
|
Дата: 07.09.2013
Prival  На видео создается проект CandlesChartProject но его нет в исходном коде, там что то другое  Благодарим за замечание, в ближайший день проект появится в доступе.
|
Автор топика
|
|
|
IvanB
|
Дата: 07.09.2013
Prival  Урок №4 если назначить CandlesDownloadUsing запускаемым проектом, то выдается ошибка Ошибка 2 Имя "PendingOrders" отсутствует в текущем контексте ...\StockSharp Lessons\StockSharp.Edu\04_lesson (Candles, Charts, Historical data)\CandlesDownloadUsing\BollingerStrategy.cs 29 79 CandlesDownloadUsing
если строку
return Orders.Count(o => o.State != OrderStates.Done) == 0 && PendingOrders.Count() == 0;
записать вот так return Orders.Count(o => o.State != OrderStates.Done) == 0; // && PendingOrders.Count() == 0;
то запускается.
Причем это единственное что смог запустить в 4-ом уроке. Ни одно решение не запускается. Прикладываю скрин Какую версию библиотеки S# используете?
|
Автор топика
|
|
|
Prival
|
Дата: 08.09.2013
Цитата: Какую версию библиотеки S# используете?
немного не понял вопрос. Там же вроде в проект добавлены все библиотеки. Я ничего не добавлял. Запускал какие есть Скажите какие библиотеки (*.dll) мне посмотреть и как у них определить версию ?
|
|
|
|
IvanB
|
Дата: 08.09.2013
Prival  Цитата: Какую версию библиотеки S# используете?
немного не понял вопрос. Там же вроде в проект добавлены все библиотеки. Я ничего не добавлял. Запускал какие есть Скажите какие библиотеки (*.dll) мне посмотреть и как у них определить версию ? Я имею в виду библиотеки S#, эти библиотеки имеют префикс StockSharp.* , например StockSharp.Algo.dll. Посмотреть версию можно, либо в обозревателе файлов Windows, для этого выбираем пункт Свойства -> Подробно и смотрим поле Версия продукта. Можно посмотреть версию с VS, для этого нужно выбрать интересующую библиотеку в обозревателе проекта (каталог References) и в окне Свойств (Properties) смотрим поле Version.
|
Автор топика
|
|
|
Prival
|
Дата: 09.09.2013
Все равно что то не то... или я делаю что то не так, прилагаю скрин  если выбираю StockShap.Edu.sln то эти проекты в Обозревателе решений не появляются. 1. Урок CandlesChartProject появился 2. Версия StockSharp.Algo 4.1.16.1 версия среды выполнения 4.1.16.1
|
|
|
|
IvanB
|
Дата: 09.09.2013
Prival  Все равно что то не то... или я делаю что то не так, прилагаю скрин  если выбираю StockShap.Edu.sln то эти проекты в Обозревателе решений не появляются. 1. Урок CandlesChartProject появился 2. Версия StockSharp.Algo 4.1.16.1 версия среды выполнения 4.1.16.1 Техническая ошибка, проверьте, теперь проект CandlesChartProject должен быть в уроке 4.
|
Автор топика
|
|
|
Bond
|
Дата: 30.09.2013
UsilaDobry  И таким способом Код
foreach (var candle in GetHistoryCandles())
{
ProcessCandle(null, candle);
}
и таким способом Код
GetHistoryCandles().ForEach(ProcessCandle);
история выводится корректно, и свечи и индикаторы, но склейка получается неправильная... например при выводе реальной свечи на 10 минутном графике после свечи 12:10 рисуется свеча 12:45, потом после Finished становится свечой 12:20. Также в месте склейки искажаются индикаторы...На истории индикаторы переходят из одного дня в другой плавно, а в месте склейки идёт явный разрыв значений... Что можно придумать...? Добрый день UsilaDobry! Обратил внимание на ваш скриншот. Любопытная реализация приложения. Тестер и работа в риалтайме одновременно. Плюс выделение графика в отдельную вкладку. Очень интересно как вы реализовали очистку графика и отображение подсказок и меток на графике! Если это не большой секрет будет здорово, если вы поделитесь опытом реализации и по возможности фрагментами кода. Спасибо!
|
|
|
|
MenDel
|
Дата: 18.11.2013
|
|
|
|
Всем привет! Столкнулся с проблемой, вылетает ошибка. Сделки выводятся на график, но в любой момент вылетает ошибка. Код такой же как и в примере. Если убрать эту строчку this.GuiAsync(() => Chart.ProcessCandle(_chartCandleEkement, candle)); то ошибка пропадает, следовательно она возникает при выводе. И такой нюанс. В примере добавлено using StockSharp.Xaml; А у меня так не работает, пришлось написать using StockSharp.Xaml.Charting; Почему так? Код
<Window x:Class="TestQuik2014.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:stock="clr-namespace:StockSharp.Xaml.Charting;assembly=StockSharp.Xaml"
Title="MainWindow" Height="350" Width="525" Loaded="WindowLoaded">
<Grid>
<Button Content="Candle" Height="23" HorizontalAlignment="Left" Margin="12,213,0,0" Name="button_GetCandles" VerticalAlignment="Top" Width="75" Click="button_GetCandles_Click" Loaded="WindowLoaded" />
<stock:Chart x:Name="Chart" Margin="104,0,0,0" />
</Grid>
</Window>
Код
using System;
using Ecng.Collections;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Media;
using Ecng.Xaml;
using StockSharp.Algo.Candles;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.Xaml.Charting;
namespace TestQuik2014
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private QuikTrader _trader;
private Security MySecurity {get; set;}
private CandleManager _candleManager;
private CandleSeries _candleSeries;
private ChartArea _chartArea;
private ChartCandleElement _chartCandleEkement;
private void button_GetCandles_Click(object sender, RoutedEventArgs e)
{
_chartCandleEkement = new ChartCandleElement();
_chartArea.Elements.Add(_chartCandleEkement);
RunProcessGetCandles();
}
private void RunProcessGetCandles()
{
_candleManager = new CandleManager(_trader);
var timeFrame = TimeSpan.FromMinutes(1);
_candleSeries = new CandleSeries(typeof (TimeFrameCandle), MySecurity, timeFrame);
_candleSeries.ProcessCandle += Draw;
_candleManager.Start(_candleSeries);
}
private void Draw(Candle candle)
{
var candleBounce = ((TimeSpan) candle.Arg).GetCandleBounds(_candleSeries.Security);
if (candle.State == CandleStates.Finished || candle.OpenTime >= candleBounce.Min)
{
this.GuiAsync(() => Chart.ProcessCandle(_chartCandleEkement, candle));
}
}
private void InitChart()
{
Chart.IsAutoScroll = true;
_chartArea = new ChartArea();
Chart.Areas.Add(_chartArea);
}
private void WindowLoaded(object sender, RoutedEventArgs e)
{
InitChart();
}
}
}
И еще вопрос, почему в примере одно окно со свечками, а у меня получилось два, а свечки в нижнем
|
|
|
|
Николай
|
Дата: 05.12.2013
Присоединяюсь к MenDel, Выдается ошибка (На видео это время 28:50) : An unhandled exception of type 'System.ArgumentNullException' occurred in StockSharp.Xaml.dll Ругается на эту строку: Код
Chart.ProcessCandle(_chartCandleElement, candle)
P.S. При попытке запустить скаченный оригинал, также выдается ошибка: An unhandled exception of type 'System.ArgumentNullException' occurred in mscorlib.dll И ругается на код: Код
Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
{
{_chartCandleElement, candle},
{_chartIndicatorSmaElement, chartValueSma},
{_chartIndicatorMyElement, chartValueMy}
})
|
|
|
|
IvanB
|
Дата: 08.12.2013
|
Автор топика
|
|
|
Николай
|
Дата: 09.12.2013
Иван, спасибо за комментарий. Начал разбираться в своей ошибке, и обнаружил следующее: Код
private void GetCandlesClick(object sender, RoutedEventArgs e)
{
_chartCandleElement = new ChartCandleElement();
_chartArea.Elements.Add(_chartCandleElement);
RunProcessGetCandles();
}
Это так как должно быть, однако в видео был пропущен момент написания кода: Код
_chartCandleElement = new ChartCandleElement();
_chartArea.Elements.Add(_chartCandleElement);
Т.е. те кто будет писать по уроку код получит следующее: Код
private void GetCandlesClick(object sender, RoutedEventArgs e)
{
RunProcessGetCandles();
}
Возможно это нужно будет пометить в тексте самого урока для пользователей. Также хотел задать вопрос по коду ConnectionInterFace.Main Можешь скинуть код функции Main, т.к. ты ее применяешь в уроках, для отсоединения, однако в References StockSharp.WpfConnectionInterface не могу найти.
|
|
|
|
IvanB
|
Дата: 10.12.2013
Спасибо за замечание. Свойство Main в ConnectionInterFace нам не нужно более, т.к. мы сделали следующее: Код
/// <summary>
/// Событие завершения загрузки данного контрола
/// </summary>
/// <param name="sender"></param>
/// <param name="routedEventArgs"></param>
void InterFace_Loaded(object sender, RoutedEventArgs routedEventArgs)
{
//Получить родительское окно
var window = Window.GetWindow(Parent);
if (window != null)
window.Closed += delegate
{
if (_safeConnection != null)
_safeConnection.DisConnectSafe();
};
}
Тем самым избавились от необходимости идентификации дополнительного свойства.
|
Автор топика
|
|
|
Maxim
|
Дата: 09.01.2014
|
|
|
|
Здравствуйте. Не отображается последняя свеча текущего дня и ее изменения (подключение через TransaqConnector). Я использую StockSharp API 4.2.1.7. Подскажите, пожалуйста, что делать... Код: Код
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();
}
|
|
|
|
IvanB
|
Дата: 09.01.2014
Попробуйте обновить время через интернет на вашем компьютере
|
Автор топика
|
|
|
Maxim
|
Дата: 10.01.2014
IvanB  Попробуйте обновить время через интернет на вашем компьютере Не помогло. Пробовал также время на пару минут раньше устанавливать. Черная стрелка с ценой последней сделки вообще отсутствует в области графика.
|
|
|
|
IvanB
|
Дата: 11.01.2014
Maxim  IvanB  Попробуйте обновить время через интернет на вашем компьютере Не помогло. Пробовал также время на пару минут раньше устанавливать. Черная стрелка с ценой последней сделки вообще отсутствует в области графика. Тогда попробуйте сделать так: Код
private void Draw(Candle candle)
{
this.GuiAsync(() => Chart.ProcessCandle(_chartCandleElement, candle));
}
код выводит абсолютно все свечи, если заработает, то проблема с расхождением времени приходящих свечей и вашего ПК.
|
Автор топика
|
|
|
Maxim
|
Дата: 13.01.2014
Цитата: Тогда попробуйте сделать так: Код:
private void Draw(Candle candle) { this.GuiAsync(() => Chart.ProcessCandle(_chartCandleElement, candle)); }
код выводит абсолютно все свечи, если заработает, то проблема с расхождением времени приходящих свечей и вашего ПК.
То же самое...Не отображается
|
|
|
|
Maxim
|
Дата: 13.01.2014
В проекте Transaq > Sample тоже не выводится текущая свеча. А вот в проекте Quik > SampleCandles все Ok!
|
|
|
|
Maxim
|
Дата: 13.01.2014
Могу, если надо, видео с экрана куда-нибудь выложить...
|
|
|
|
IvanB
|
Дата: 14.01.2014
Maxim  В проекте Transaq > Sample тоже не выводится текущая свеча. А вот в проекте Quik > SampleCandles все Ok! Попробуйте так: Код
_candleManager.Processing += Draw;
при этом заголовок метода Draw нужно изменить: Код
private void Draw(CandleSeries series, Candle candle)
|
Автор топика
|
|
|
JaguarFX
|
Дата: 14.01.2014
Судя по всему в библиотеке StockSharp.Xaml версии 4.1.2.7 уже нет компонента SciChart, о котором рассказывается в видео-уроке. Прошу подсказать какой компонент теперь его заменил, и внести эту информацию в раздел "Изменения в проектах".
Разобрался: необходимо подключать библиотеку StockSharp.Xaml.Charting и использовать элемент Chart.
|
|
|
|
JaguarFX
|
Дата: 14.01.2014
Николай  Присоединяюсь к 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 (см. детали на скрин-шоте).
|
|
|