проблема с CandleManager - не возвращает весь диапазон свечек

проблема с CandleManager - не возвращает весь диапазон свечек


Добрый день! Выкачал с сайта библиотеку 4.1.1 Сегодня 16 июня. На более ранней версии библиотеки при регистрации менеджера свечек я получал свечки с начала торгового дня. В сборке 4.1.1 при регистрации менеджера: this.candleManager.Start(this.candleSeries); период времени, с которого начинается импорт свечек при каждом запуске программы оказывается разным. То есть если несколько раз запускать одну и туже программу то случайным образом начало периода импорта свечек оказывается либо 13:40 либо 16:40 либо 19:40 (свечки десятиминутные)

Попытка использования перегруженной версии метода: this.candleManager.Start(this.candleSeries, Convert.ToDateTime("15.06.2012 10:00:00"), Convert.ToDateTime("15.06.2012 23:40:00")); никак не повлияла на результат.

Опять я получаю либо набор начинающийся с 19:40 либо 16:40 либо с 13:40.

Для проверки делал такой вызов, что бы убедится что в запрошенном диапазоне данные есть: var range = this.candleManager.GetSupportedRanges(this.candleSeries).GetEnumerator(); range.MoveNext(); this.candleManager1.Start(this.candleSeries, range.Current.Min, range.Current.Max);

Получаю аналогичный вышеописанному результат!


Теги:


Спасибо:


< 1 2 3  >
Alexander

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


Роман Угрюмов: Я готов хоть весь свой проект выслать, там сверхценных алгоритмов нет. на какой адрес выслать? а под логом, что вы имели ввиду?

проект не нужен. нужен минимальный код и дебаг печать, которая покажет что вы описываете

Спасибо:

Роман Угрюмов

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


Это лог с успешно запущеным импортом:

00:15:33.079 | Error | QuikTrader | System.TypeInitializationException: The type initializer for 'StockSharp.Algo.Licensing.LicenseHelper' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Security.CryptoAlgorithm' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Reflection.Emit.AssemblyHolder' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Configuration.ConfigManager' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System' or one of its dependencies. Не удается найти указанный файл. at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError) at System.Configuration.MgmtConfigurationRecord.CreateSectionGroupFactory(FactoryRecord factoryRecord) at System.Configuration.MgmtConfigurationRecord.EnsureSectionGroupFactory(FactoryRecord factoryRecord) at System.Configuration.MgmtConfigurationRecord.GetSectionGroup(String configKey) at System.Configuration.ConfigurationSectionGroupCollection.Get(String name) at System.Configuration.ConfigurationSectionGroupCollection.<GetEnumerator>d__0.MoveNext() at Ecng.Configuration.ConfigManager.<>c__DisplayClass4.<.cctor>b__1(ConfigurationSectionGroupCollection groups) at Ecng.Configuration.ConfigManager..cctor() --- End of inner exception stack trace --- at Ecng.Configuration.ConfigManager.GetSection() at Ecng.Reflection.Emit.AssemblyHolder..cctor() --- End of inner exception stack trace --- at Ecng.Reflection.Emit.AssemblyHolder.get_NeedCache() at Ecng.Reflection.FastInvoker.CreateDelegate(Type delegType, Type instanceType, Type argType, ConstructorInfo ctor, MethodInfo method, MemberInfo member, Nullable1 isGetter) at Ecng.Reflection.FastInvoker.<>c__DisplayClass1.<CreateCore>b__0(MemberInfo ) at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler, Boolean& isNew) at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler) at Ecng.Reflection.FastInvoker.CreateCore(MemberInfo member, Nullable1 isGetter) at Ecng.Reflection.FastInvoker.Create(PropertyInfo property, Boolean isGetter) at Ecng.Reflection.FastInvoker3.Create(PropertyInfo property, Boolean isGetter) at Ecng.Reflection.ReflectionHelper.GetValue[A,V](MemberInfo member, A arg) at Ecng.Reflection.ReflectionHelper.GetValue[A,V](Type type, String memberName, BindingFlags flags, A arg) at Ecng.Reflection.ReflectionHelper.GetValue[A,V](Type type, String memberName, A arg) at Ecng.Security.CryptoAlgorithm..cctor() --- End of inner exception stack trace --- at Ecng.Security.CryptoAlgorithm.Create(AlgorithmTypes type, ProtectedKey[] keys) at StockSharp.Algo.Licensing.LicenseHelper..cctor() --- End of inner exception stack trace --- at StockSharp.Algo.Licensing.LicenseHelper.IsLicenseSupport(Type featureType) at StockSharp.Algo.BaseTrader..ctor(Boolean checkLicense) 00:15:33.813 | Error | QuikTrader | System.InvalidOperationException: Инструмент с кодом GAZP для бумажной позиции не найден. at StockSharp.Quik.QuikTrader.#=qrDHUuxlCxpMFVWZelS7cxBV0UdbwRVjf47rF6sL_Bpk=.#=qNLWkuSgES4bcfsZdVaIg4Q==(IList1 #=q9BNzHBlc06wgg381qfVUEQ==, Func2 #=qivlfx$qlAvIYE1pmmAARMQ==) at #=qK5kWDJ0_XW_Aedhy0g8SeMBpMGoLqpi0ECaFDIHBygK4oEhhC9gQwYGUtzsPXJHy.#=qOp1Kjm53VvY4eYcKjHX_Uw==(DdeTable #=qzoKtk1FXJ$qJNjkYgeeicQ==, IList1 #=qjP6stMDpNWPwX2U9eMudOA==, Action2 #=qmPhanvmWRQtENEbTlUdW$g==, Action1 #=qicxbnTfEt0LFUHmQGTUN5Q==, Boolean #=qPUBc_znQLbZWaXnkyh1ZQQ==) 00:15:33.824 | | QuikTrader | Экспорт запущен. 00:15:56.194 | | QuikTrader | Экспорт остановлен.

Спасибо:

Alexander

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


Администраторские права есть? Какая версия framework установлена?

Спасибо:

Роман Угрюмов

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


.NEW Framework 4 , Windiws 7, администратор, UAC отключен не был

сейчас отключил UAC, ситуация не изменилась

Спасибо:

Alexander

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


Откуда вы взяли этот стэктрэйс что привели выше? У вас примеры работают? Verifier что выдаёт? Лицензию получали?

Спасибо:

Роман Угрюмов

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


Откуда вы взяли этот стэктрэйс что привели выше? создал вот так private readonly LogManager logManager = new LogManager();

var fileLogListener = new FileLogListener("D:\tradeFuckir.log"); this.logManager.Listeners.Add(fileLogListener);

this.quikTrader = new QuikTrader(quikPath).GuiSyncTrader(); // создаем шлюз к Quik-у и синхронизуем его this.logManager.Sources.Add(this.quikTrader.Trader);

this.candleManager1 = new CandleManager(this.quikTrader); // создаем синхронизованный менеджер свечек по this.logManager.Sources.Add(this.candleManager1);

Лицензию получали? Нет. О какой лицензии идет речь? Я прочитал что это бесплатная библиотека и в течении года балуюсь с ней.

Я начинаю подозревать что это проблема не библиотеки а самого квика. Запущу в рабочее время, посмотрю как это все будет работать. А то сейчас воскресенье полтретьего утра после вызова this.quikTrader.Connect(); // производим соединение не появляется событие успешного подключения this.quikTrader.Connected я игнорирую и запускаю DDE this.quikTrader.StartExport(); примерно в половине случаев не начинается генерация события Processing this.candleManager = new CandleManager(this.quikTrader); this.candleManager.Processing += this.CandleProcessing;

Хотя если заглянуть в this.quikTrader.Trades то там все сделки есть

Спасибо:

Роман Угрюмов

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


Проблему импорта кажется победил, внимательнее посмотрел пример SampleSync, Создание шлюза в коде this.quikTrader = new QuikTrader(quikPath).GuiSyncTrader();

надо было вызывать старт импорта так: this.quikTrader.Trader.StartExport() в этом случае импорт стартует аккуратно

а я по невнимательности делал так this.quikTrader.StartExport() в этом случае импорт часто не стартовал (вернее не было появления события this.candleManager.Processing)

Однако стал получать некоторые свечки по два раза, во вложении скриншот с гридом где этот видно

То есть приходит два раза сообщение this.candleManager.Processing со свечкой к примеру за 15:00

Это можно увидеть на примере SampleSync, если сделать такое изменение в коде: Public partial class MainWindow { private CandleSeries series;
....... .......

private void CandleSeriesProcessCandle(Candle candle) { if (candle.State == CandleStates.Finished) { return; // Бреакпоинт 1
} return; }

private void ShowChartClick(object sender, RoutedEventArgs e) { var security = (Security)Security.SelectedValue; series = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(60)); series.ProcessCandle += this.CandleSeriesProcessCandle; var range = this._candleManager.GetSupportedRanges(series).GetEnumerator(); range.MoveNext(); this._candleManager.Start(series, range.Current.Min, range.Current.Max); }

В точке Бреакпоинт 1 можно видеть что приходят сообщения о том что финишировала свечка за к примеру 15:00 два раза

Дубликаты.jpg 282 KB (510)
Спасибо:

Alexander

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


Подтверждаю, есть такое

Спасибо:

Роман Угрюмов

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


Alexander Mukhanchikov: Лицензию получали? А что с лицензией? Ее надо получать? Я вроде на сайте видел что бесплатная библиотеке.

Спасибо:

Alexander

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


Роман Угрюмов:

Alexander Mukhanchikov: Лицензию получали? А что с лицензией? Ее надо получать? Я вроде на сайте видел что бесплатная библиотеке.

Читайте новости и документацию

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

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

loading
clippy