RealTimeEmulationTrader постоянно выдает Error
Atom Ответить
14.05.2013


Помогите разобраться в чем проблема.В логах постоянно выдает такую ошыбку:

2013/05/14 10:03:12.061|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 10:03:12.062|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 10:03:12.272|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 10:03:12.274|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 10:03:13.269|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 10:03:13.269|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)

Спасибо.



Спасибо:




33 Ответов
1 2  >
esper

Фотография
Программист
Дата: 14.05.2013
Ответить


Как воспроизвести?
Спасибо:

longtrades

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


Пока не знаю из-за чего ошибка :(
Может какойто уровень лога повыше поможет разобраться ?

может из-за этой ошибки у меня не отменяються ордера и висят активными в Трейдере ?

но ошибка появляется еще до начала выставления и снятия заявок :(
Автор топика
Спасибо:

longtrades

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


Ошибка появляется сразу после :

_trader.RegisterMarketDepth(Sec);

вот:

2013/05/14 11:19:07.401| |QuikTrader|Экспорт запущен.
2013/05/14 11:19:16.509|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 11:19:16.509|Error |QuikTrader|System.InvalidOperationException: Priority queue is empty
at Ecng.Collections.PriorityQueue`2.Peek()
at Ecng.Collections.PriorityQueue`2.PeekValue()
at StockSharp.Algo.Testing.MarketEmulator.#=qs79PTBWoBFuRx8Q2yrv5adgu4HB4C8yklBG_NoWJcqY=.#=q5OvkGwWOHSKoy$qfYt6cNg==()
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 11:19:16.509|Error |QuikTrader|System.ArgumentException: Новое событие MarketDepth, T=12:19:16.471Бид 1970 2/Оффер 1990 20(1) имеет дату более раннюю, чем текущее время эмулятора 14.05.2013 12:19:16.
Parameter name: message
at StockSharp.Algo.Testing.MarketEmulator.#=qzpj$x3Te7dhB7R4FsKcXgw==(Message #=qtJKTkjNOI_BSH$I1woquYw==)
at StockSharp.Algo.Testing.MarketEmulator.EnqueueMessage(Message message)
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
2013/05/14 11:19:25.334| |QuikTrader|Экспорт остановлен.


Такие ошибки тоже выскакивают постоянно:
: Новое событие MarketDepth, T=12:19:16.471Бид 1970 2/Оффер 1990 20(1) имеет дату более раннюю, чем текущее время эмулятора 14.05.2013 12:19:16.
Автор топика
Спасибо:

longtrades

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


Почему время ємулятора постоянно отстает ? Постоянно такое пишет:


2013/05/14 12:24:07.990|Error |QuikTrader|System.ArgumentException: Новое событие Changed,T=14:24:07.812,47855496/1270 Продажа Цена=8070 Объем=1 Сост=Done Бал=1
имеет дату более раннюю, чем текущее время эмулятора 14.05.2013 13:24:07.
Parameter name: message
at StockSharp.Algo.Testing.MarketEmulator.#=qzpj$x3Te7dhB7R4FsKcXgw==(Message #=qtJKTkjNOI_BSH$I1woquYw==)
at StockSharp.Algo.Testing.MarketEmulator.#=qnWK1AT0RAi$1GUZuQlgTOQihLsAS3JKusmAdSX5HniA=(Message #=q8zwQ2rFCa4DFOfcAfCBgmg==)
at StockSharp.Algo.Testing.MarketEmulator.#=qzbQwtxUJhdiGR3wnszAnFrDpBbrnHhHbSyDrN6bGBiM=()
at StockSharp.Algo.Testing.MarketEmulator.#=qlA1EdkS6ZZmWy5hZ0x$pEITVZr2jLC7e9PLeF3dVQ88=()
at StockSharp.Algo.Testing.MarketEmulator.set_CurrentTime(DateTime value)
at StockSharp.Algo.Testing.MarketEmulator.Emulate(Message msg)
at StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(MarketDepth marketDepth, MarketDepth delta)
at StockSharp.Algo.Testing.RealTimeEmulationTrader`1.#=qzDfzsZDU5Gz7JvAOX_Z4QRgGyGyywkTFxgtASVcbd0M=(IEnumerable`1 #=qut1NpOdjYCX2CJaEhX1aVg==)
at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
at Ecng.ComponentModel.EventsContainer`1.Raise(IEnumerable`1 items)
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


Давайте минимальный код, который воспроизводит проблему. Код ниже у меня работает нормально:
Спасибо:

longtrades

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


Вот:

Код

 try
            {


                // для теста выбираем бумагу Лукойл
                const string secCode = "LKOH";

                var quikPath = QuikTerminal.GetDefaultPath();

                /*if (quikPath.IsEmpty())
                {
                    Console.WriteLine("Не найден ни один запущенный Quik");
                    return;
                }*/

                Console.WriteLine("Запущенный Quik найден по пути " + quikPath);

                var account = "59072";

                using (var waitHandle = new AutoResetEvent(false))
                {
                    Portfolio _portfolio = null;

                    ITrader _trader;

                    QuikTrader trader;
                    DdeCustomTable _table;


                    // создаем шлюз к Quik-у

                    trader = new QuikTrader(quikPath);

                    using (_trader = new RealTimeEmulationTrader(trader))
                    {
                        _trader.LogLevel = LogLevels.Info;

                        var lm = new LogManager();
                        lm.Sources.Add(_trader);
                        lm.Sources.Add(trader);
                        lm.Listeners.Add(new FileLogListener("log.txt"));

                        // подписываемся на событие успешного подключения
                        // все действия необходимо производить только после подключения
                        _trader.Connected += () =>
                        {
                            Console.WriteLine("Подключение было произведено успешно.");

                            // извещаем об успешном соединени
                            waitHandle.Set();
                        };

                        Console.WriteLine("Производим подключение...");

                        _trader.Connect();

                        // дожидаемся события об успешном соединении
                        waitHandle.WaitOne();

                        _trader.NewPortfolios += portfolios =>
                        {


                        };

                        // подписываемся на событие появление инструментов
                        _trader.NewSecurities += securities =>
                        {
                            foreach (var sec in securities)
                            {
                                trader.RegisterMarketDepth(sec);
                            }
                        };

                        // подписываемся на событие обновления стакана
                        _trader.MarketDepthsChanged += depths =>
                        {

                        };



                        // запускаем экспорт по DDE
                        _trader.StartExport();

                        // дожидаемся появления портфеля и инструмента
                        waitHandle.WaitOne();

                        Console.ReadLine();

                        // останавливаем экспорт по DDE
                        _trader.StopExport();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }

Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


Код
_trader.RegisterMarketDepth(sec);


P.s. для исходников есть специальные теги [ code=csharp ][ /code ]
Спасибо:

longtrades

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


Ошибка начинает сыпаться в логи после:

Код

                   ITrader _trader;
 
                   QuikTrader trader;
                   DdeCustomTable _table;
 
 
                   // создаем шлюз к Quik-у
 
                   trader = new QuikTrader(quikPath);
 
                   using (_trader = new RealTimeEmulationTrader(trader)



почему так делаю , потому что мне нужны дополнительные поля которые я могу прописать только к Квик трейдеру :( , а к
мулятору нет

Код

 trader = new QuikTrader(quik_path);

                       
                        trader.CancelOrderInstantly = true;
                        trader.SupportManualOrders = false;

                        // изменяем метаданные так, чтобы начали обрабатывать дополнительные колонки опционов
                        var columns = trader.SecuritiesTable.Columns;
                        columns.Add(DdeSecurityColumns.Strike);
                        columns.Add(DdeSecurityColumns.ImpliedVolatility);
                        columns.Add(DdeSecurityColumns.UnderlyingSecurity);
                        columns.Add(DdeSecurityColumns.TheorPrice);
                        columns.Add(DdeSecurityColumns.OptionType);
                        columns.Add(DdeSecurityColumns.ExpiryDate);
                        columns.Add(DdeSecurityColumns.OpenPositions);
                        columns.Add(DdeSecurityColumns.MinStepPrice);
                        // new 
                        var columns1 = trader.DerivativePortfoliosTable.Columns;
                        columns1.Add(DdeDerivativePortfolioColumns.PlannedPositionsPrice);
                        columns1.Add(DdeDerivativePortfolioColumns.ACI);
                        columns1.Add(DdeDerivativePortfolioColumns.MarketCommission);
                       
                        trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);


                        _trader = new RealTimeEmulationTrader<QuikTrader>(trader);

Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


Регистрируйте стаканы в эмуляторе, а на напрямую в квике.
Спасибо:

longtrades

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


Я так и делал :
Код

trader.RegisterMarketDepth(sec);  // (QuikTrader )

попробовал
Код

_trader.RegisterMarketDepth(sec); // RealTimeEmulationTrader

ничего не изменилось , та же ошибка.

Насколько я понял ошибку выдает не RealTimeEmulationTrader , а QuikTrader

потому как убираю строку :
Код

lm.Sources.Add(trader);

и в логах уже нет этой ошибки.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


А какую версию используете? У меня код из вашего сообщения никаких ошибок не выдает.
Спасибо:

longtrades

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


4.1.12
321.png 27 KB (0)
Автор топика
Спасибо:

longtrades

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


Вот еще провел експеремент с _trader.CancelOrder , заявки не снимаються а остаются висеть активными :
Код:

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;




using Ecng.Common;
using StockSharp.Quik;
using StockSharp.BusinessEntities;
using StockSharp.Logging;
using StockSharp.Algo.Testing;





namespace ConsoleApplication1
{
    class Program
    {

        Portfolio _account = new Portfolio();


        static void Main(string[] args)
        {



            try
            {


                // для теста выбираем бумагу Лукойл
                const string secCode = "LKOH";

                var quikPath = QuikTerminal.GetDefaultPath();

                /*if (quikPath.IsEmpty())
                {
                    Console.WriteLine("Не найден ни один запущенный Quik");
                    return;
                }*/

                Console.WriteLine("Запущенный Quik найден по пути " + quikPath);

                var account = "59072";

                using (var waitHandle = new AutoResetEvent(false))
                {
                    Portfolio _portfolio = new Portfolio();;

                    //ITrader _trader;

                    QuikTrader trader;
                    DdeCustomTable _table;


                    // создаем шлюз к Quik-у

                    trader = new QuikTrader(quikPath);

                    using (var _trader = new RealTimeEmulationTrader(trader))
                    {
                        _trader.LogLevel = LogLevels.Info;

                        var lm = new LogManager();
                        lm.Sources.Add(_trader);
                        lm.Sources.Add(trader);
                        lm.Listeners.Add(new FileLogListener("log.txt"));

                        // подписываемся на событие успешного подключения
                        // все действия необходимо производить только после подключения
                        _trader.Connected += () =>
                        {
                            Console.WriteLine("Подключение было произведено успешно.");

                            // извещаем об успешном соединени
                            waitHandle.Set();
                        };

                        Console.WriteLine("Производим подключение...");

                        _trader.Connect();

                        // дожидаемся события об успешном соединении
                        waitHandle.WaitOne();

                        _trader.NewPortfolios += portfolios =>
                        {


                        };

                        // подписываемся на событие появление инструментов
                        _trader.NewSecurities += securities =>
                        {
                            foreach (var sec in securities)
                            {
                                _trader.RegisterMarketDepth(sec);
                            }

                            var Sec = securities.Where(x => x.Code == "RIM3").FirstOrDefault();



                            for (int i = 0; i < 10; i++)
                            {

                                var ord = new Order();
                                ord.Security = Sec;
                                ord.Portfolio = _portfolio;
                                ord.Trader = _trader;
                                ord.Direction = OrderDirections.Buy;
                                ord.Price = Sec.LastTrade.Price - 1000;
                                ord.Volume = 1;

                                _trader.RegisterOrder(ord);


                                System.Threading.Thread.Sleep(5 * 1000);

                                _trader.CancelOrder(ord);

                            }

                            System.Threading.Thread.Sleep(10 * 1000);

                            var b = 0;
                        };

                        // подписываемся на событие обновления стакана
                        _trader.MarketDepthsChanged += depths =>
                        {

                        };



                        // запускаем экспорт по DDE
                        _trader.StartExport();

                        // дожидаемся появления портфеля и инструмента
                        waitHandle.WaitOne();

                        Console.ReadLine();

                        // останавливаем экспорт по DDE
                        _trader.StopExport();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }


        }

    }
}


и Активные ордеда в трейдере : + лог - файл
123.jpg 183 KB (1) log.txt 87 KB (0)
Автор топика
Спасибо:

longtrades

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


Включил :

Код

                        _trader.LogLevel = LogLevels.Debug;
                        trader.LogLevel = LogLevels.Debug;


вот лог.

Плюс во время исполнения вsскочило вот такое сообщение:
log.txt 1 MB (0) 456.png 37 KB (0)
Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 14.05.2013
Ответить


Если не секрет,у вас с Москвой во времени сколько разница?
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


longtrades Перейти
Вот еще провел експеремент с _trader.CancelOrder , заявки не снимаються а остаются висеть активными

По заявкам будет фикс.
Спасибо:

longtrades

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


Иван З. Перейти
Если не секрет,у вас с Москвой во времени сколько разница?


Разница в -1 час , но я что-то сомневають что проблема в разнице во времени.

Хотя время сервера квик -1 час ко времени в таблице всех сделок.

я пробовал сделать:
Код

LoggingHelper.SyncMarketTime(10000);
LoggingHelper.NowOffset = new TimeSpan(-1, 0, 0);


мои трейды приходят в тоже время что и транслируються все тейды с биржы , но те же ошыбки и далее прут.
Автор топика
Спасибо:

Иван З.

Фотография
Курсы Автор статей Благотворитель
Дата: 14.05.2013
Ответить


Я к тому, что в логе интересное время
Цитата:
2013/05/14 12:24:07.990|Error |QuikTrader|System.ArgumentException: Новое событие Changed,T=14:24:07.812,47855496/1270 Продажа Цена=8070 Объем=1 Сост=Done Бал=1
имеет дату более раннюю, чем текущее время эмулятора 14.05.2013 13:24:07.

А на картинке вроде нормальное время, только миллисекунды отличаются
Спасибо:

longtrades

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


Ну да тут дело в милисекундах , на час отличается только время записи в лог.
Автор топика
Спасибо:

longtrades

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


esper Перейти
А какую версию используете? У меня код из вашего сообщения никаких ошибок не выдает.


А может вы не включили логирование КвикТрейдера ?
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.05.2013
Ответить


longtrades Перейти
А может вы не включили логирование КвикТрейдера ?

Код 1 в 1 как в сообщении.
Спасибо:

longtrades

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


Как такое может быть что один и тотже код по разному работает ?
В чем может быть причина у меня ? Где мне копать дальше ?
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 14.05.2013
Ответить


Цитата:
почему так делаю , потому что мне нужны дополнительные поля которые я могу прописать только к Квик трейдеру :( , а к
мулятору нет

Можно так сделать:
Код

var trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader());
trader.UnderlyingTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinStepPrice);


По ошибке. Попробуйте установить на компе московский часовой пояс + время.
Это надо чтобы проверить во времени проблема или нет.
Спасибо:

longtrades

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


Moadip Перейти

По ошибке. Попробуйте установить на компе московский часовой пояс + время.
Это надо чтобы проверить во времени проблема или нет.


Установил московский часовой пояс - не помогло все те же ошибки :(

Автор топика
Спасибо:

longtrades

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


Moadip Перейти

Можно так сделать:
Код

var trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader());
trader.UnderlyingTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinStepPrice);



Переделал так , тоже не помогло :(

Автор топика
Спасибо:
1 2  >

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

loading
clippy