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


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


Добрый день!
Выкачал с сайта библиотеку 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[T]()
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, Nullable`1 isGetter)
at Ecng.Reflection.FastInvoker.<>c__DisplayClass1.<CreateCore>b__0(MemberInfo )
at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler, Boolean& isNew)
at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler)
at Ecng.Reflection.FastInvoker.CreateCore(MemberInfo member, Nullable`1 isGetter)
at Ecng.Reflection.FastInvoker.Create(PropertyInfo property, Boolean isGetter)
at Ecng.Reflection.FastInvoker`3.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==(IList`1 #=q9BNzHBlc06wgg381qfVUEQ==, Func`2 #=qivlfx$qlAvIYE1pmmAARMQ==)
at #=qK5kWDJ0_XW_Aedhy0g8SeMBpMGoLqpi0ECaFDIHBygK4oEhhC9gQwYGUtzsPXJHy.#=qOp1Kjm53VvY4eYcKjHX_Uw==(DdeTable #=qzoKtk1FXJ$qJNjkYgeeicQ==, IList`1 #=qjP6stMDpNWPwX2U9eMudOA==, Action`2 #=qmPhanvmWRQtENEbTlUdW$g==, Action`1 #=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 (294)
Спасибо:

Alexander

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


Подтверждаю, есть такое
Спасибо:

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

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


Alexander Mukhanchikov Перейти

Лицензию получали?

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

Alexander

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


Роман Угрюмов Перейти
Alexander Mukhanchikov Перейти

Лицензию получали?

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


Читайте новости и документацию
Спасибо:
< 1 2 3  >

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

loading
clippy