esper
|
Date: 10/10/2014
Все верно, последняя свеча на графике от 11:35, а приходят данные для свечи от 10:00, изменить можно только последнюю свечку.
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/16/2014
|
|
|
|
Code
2014/10/16 14:48:24.874|Error |Unhandled Exception|System.InvalidOperationException: Невозможно изменить значение для даты 16.10.2014 10:43:00 последняя добавленное значение для даты 16.10.2014 12:27:50.
в StockSharp.Xaml.Charting.SciChart.SciChartPaneViewModel.SciChartCandles.Draw(IEnumerable`1 values)
в StockSharp.Xaml.Charting.SciChart.SciChartPaneViewModel.Draw(IEnumerable`1 values)
в StockSharp.Xaml.Charting.Chart.ChartAreaCollection.Draw(IEnumerable`1 values)
в StockSharp.Xaml.Charting.Chart.Draw(IEnumerable`1 values)
в StockSharp.Xaml.Charting.ChartPanel.<>c__DisplayClass19.<.ctor>b__a()
в Ecng.Common.ThreadingHelper.<>c__DisplayClass1.<Timer>b__0(Object s)
в System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.TimerQueueTimer.CallCallback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTimers()
в System.Threading.TimerQueue.AppDomainTimerCallback()
2014/10/16 14:49:53.824|Error |Quik |Инструмент для маркет-данных с идентификатором запроса 52318848 не найден.
такого поведения не было в 2.22,в 2.30 тоже есть, как могут появляться ошибки с таким разбросом времени?
|
|
Thanks:
|
|
|
|
|
esper
|
Date: 10/16/2014
Проверяйте какие данные и в каком порядке добавляете на график.
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/16/2014
esper Проверяйте какие данные и в каком порядке добавляете на график. вполне может быть, что ошибка в QuikLua данные добавляются как в примерах Code
Series.WhenCandlesFinished()
.Do(c =>
{
ProcessCandle(c);
})
.Apply(Strategy);
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/16/2014
происходит при восстановлении стратегии со сделками за сегодняшний день, то есть - получаем сделку в середине дня - закрываем робота - запускаем опять - восстанавливаем сделки - запускаем восстановление... идет восстановление свеч, в результате чего ошибка в 2.22 отрабатывало нормально еще было бы хорошо пробрасывать ошибки дальше. Code
try
{
throw new SomethingWrongException("Bla bla");
}
catch(Exception e)
{
throw e;
}
и тогда можно было бы понять, где ошибка возникает
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/17/2014
есть какие-то результаты?
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/17/2014
Andrii есть какие-то результаты? проблема остается, довольно не удобная, нужно добавить возможность добавлять данные задним временем.
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/17/2014
Code
TVWSCS_UNAF@GTS_1084 10/17/2014 5:18:37 PM Info Новая свеча 10/17/2014 17:15:15: 352.8;352.8;352.8;352.8; объем 3
время закрытия сечи и время регистрации отличается на 3 минуты, от чего и появляется ошибка, если в этот промежуток будет сделка или ордер, или еще что-то, что будет отображаться на графике
|
|
Thanks:
|
|
|
|
|
Andrii
|
Date: 10/18/2014
|
|
|
|
В 2.30 версии в диаграмме запрещено добавлять данные, старее чем последнее добавленные. как бы логично, но в случае задержки, когда время добавления свечи отличается от времени закрытия свечи, и образуется некий опасный промежуток. Если в этот промежуток добавить что либо, сделку например в график, то возникнет ошибка. В примере SimpleHistoryTesting предлагается: SmaStrategy.csCode
var trade = _myTrades.FirstOrDefault();
_myTrades.Clear();
var dict = new Dictionary<IChartElement, object>
{
{ _candlesElem, candle },
{ _shortElem, new ChartIndicatorValue(ShortSma, shortValue) },
{ _longElem, new ChartIndicatorValue(LongSma, longValue) },
{ _tradesElem, trade }
};
_chart.ProcessValues(candle.OpenTime, dict);
накапливать сделки, а потом добавить их на график вместе со свечей но при временном большом фрейме свечи, например 1 час, не видеть сделки на графике довольно проблематично. по возможности, хочется иметь возможность добавлять и сделки без ожидания свечи. то есть, нет возможность добавить свечу у которой candle.OpenTime будет меньше, чем время сделки, которая уже была добавлена на диаграмму
|
|
Thanks:
|
|
|
|
|
JaguarFX
|
Date: 10/21/2014
Коллеги, обновился до API 4.2.31.0 и обнаружил появление указанной выше проблемы при простейшем историческом тестировании! Причем без отрисовки сделок, только свечи. Вызов MainWindow.Instance.GuiAsync(() =>HistoryChart.ProcessCandle(candlesElem, candle)) происходит внутри Strategy.ProcessCandle торговой стратегии. При тестировании на 1-минутных данных нормально выводятся примерно 11526 свечей, затем вылезает эта ошибка "Невозможно изменить значение для даты 07.11.2012 18:36:00 последняя добавленное значение для даты 07.11.2012 18:37:00." Судя по указанному в логах времени, в момент когда Strategy.ProcessCandle обрабатывает 11526 свечу, SciChart все еще пытается обработать 11522 свечу (07.11.2012 18:36:00) , но обнаруживает что уже добавлены данные по 11523 (07.11.2012 18:37:00)! Пока ошибка не исправлена, все историческое тестирование придется проводить без графиков.
|
|
Thanks:
|
|
|
|