RealTimeEmulationTrader

RealTimeEmulationTrader
Atom
2/11/2017
Prival


недостаточно денег для регистрации заявки.... Подскажите что может быть не так

  1. Создал трейдера и портфель

var quikMd = new LuaFixMarketDataMessageAdapter(new MillisecondIncrementalIdGenerator())
            {
                Login = "quik",
                Password = "quik".To<SecureString>(),
                Address = QuikTrader.DefaultLuaAddress,
                TargetCompId = "StockSharpMD",
                SenderCompId = "quik",
                RequestAllSecurities = true
            };

            _trader = new RealTimeEmulationTrader<IMessageAdapter>(quikMd);

            _portfolio = new Portfolio { Name = "test account", BeginValue = 1000000, CurrentValue = 1000000};

По кнопке запускаю стратегию

    class Strategy01:Strategy
    {
        protected override void OnStarted()
        {
            this.AddInfoLog("---Start---{0}---{1}---{2}---{3}---{4}---", Connector, Security, Portfolio, Portfolio.BeginValue, Portfolio.CurrentValue);
            var order = this.BuyAtMarket();
            RegisterOrder(order);
            base.OnStarted();

        }

В логе ошибка недостаточно средств ((( RealTimeEmulationTrader1 11.02.2017 18:32:47 Info Создан новый портфель Симулятор. RealTimeEmulationTrader1 11.02.2017 18:33:01 Info Инструмент SBER@QJSIM зарегистрирован на получение рыночных данных для MarketDepth. RealTimeEmulationTrader1 11.02.2017 18:33:01 Info Инструмент SBER@QJSIM зарегистрирован на получение рыночных данных для Level1. RealTimeEmulationTrader1 11.02.2017 18:33:01 Info Инструмент SBER@QJSIM зарегистрирован на получение рыночных данных для Trades. RealTimeEmulationTrader1 11.02.2017 18:33:01 Info RegisterOrder: 0/ Покупка Цена=0 Объем=1 Сост=None Бал=0 RealTimeEmulationTrader1 11.02.2017 18:33:01 Info New order: 66767638/ Покупка Цена=0 Объем=1 Сост=Pending Бал=1 S_SBER@QJSIM_test account 11.02.2017 18:33:01 Info Стратегия Запущена. [0,-1]. Позиция 0. S_SBER@QJSIM_test account 11.02.2017 18:33:01 Info ---Start---RealTimeEmulationTrader`1---SBER@QJSIM---test account---1000000---1000000--- S_SBER@QJSIM_test account 11.02.2017 18:33:01 Info Регистрация новой Market (0x65FB2A) заявки на Buy с ценой 0 и объемом 1. SecurityMarketEmulator 11.02.2017 18:33:01 Info Заявка 66767638 не зарегистрирована. Причина 'На счету test account недостаточно денег для регистрации заявки 66767638. Необходимо 131.92, имеется 0, заблокировано 0.00.'.




Thanks:


1 2 3  > >>
Support

Avatar
Date: 2/13/2017
Reply


Проверим..

Thanks:

Support

Avatar
Date: 2/14/2017
Reply


Вот так попробуйте. _portfolio = new Portfolio { Name = "test", BeginValue = 1000000 }; _connector = new RealTimeEmulationTrader(quikMd, _portfolio);

Thanks:

Prival

Avatar
Date: 2/17/2017
Reply


Спасибо помогло. Но не до конца. Заявка отправляется, но не появляется позиций. Все время висит статус -> Регистрация https://yadi.sk/i/njAg6-vh3EAwKs Пробовал смотреть примеры, но к сожалению из примера SampleRealTimeEmulation убран вариант подключения к квику. Может у когото есть простой пример где все работает ? Типа нажали кнопу....появилась позиция по фьючерсу. Заранее Спасибо.

Thanks:

Support

Avatar
Date: 2/17/2017
Reply


Скорее всего это баг.

Thanks:

Prival

Avatar
Date: 2/18/2017
Reply


Написал на githabe. Приложил полный код. https://github.com/StockSharp/StockSharp/issues/291 Прикладываю его сюда. Мне кажется это я что то не так делаю, т.к. учусь (разбираюсь с библиотекой). Буду исренне удивлен если это действительно баг, т.к. мне кажется эта функция должна быть очень востребована, А пишу про неё только я. Если не трудно подтвердите что у Вас тоже позиция равна 0. Заранее благодарю

TestBag.rar 13 MB (635)
Thanks:

Support

Avatar
Date: 2/20/2017
Reply


На ГИте Михаил писав Вам, чтобы проверили на последней версии... Проверяли?

Thanks:

Support

Avatar
Date: 2/20/2017
Reply


protected override void OnStarted() { Console.WriteLine(@"---Start---{0}---{1}---{2}---{3}---{4}---{5}", Connector, Security, Portfolio, Portfolio.BeginValue, Portfolio.CurrentValue, Position); base.OnStarted(); var order = this.BuyAtLimit((decimal)117400); RegisterOrder(order); } В данному контексте base.OnStarted() нужно на первое место поставить..

Thanks:

Prival

Avatar
Date: 2/21/2017
Reply


  1. base.OnStarted() переставил на первое место. - не помогло
  2. Скачал 4.3.21 перестал находится _ri
  3. Собрал проект по новой, с нуля. событие _trader.NewSecurities += - не срабатывает, инструменты не приходят. Хотя раньше приходили.
TestBag01.rar 13 MB (608)
Thanks:

Support

Avatar
Date: 2/21/2017
Reply


  1. base.OnStarted() - и не должно было помочь... Просто base.OnStarted() должен быть вызван раньше, чем начнет выполняться основная логика стратегии..
  2. В Квике скрипт Lua из сборки 4.3.21 подключаете?
Thanks:

Prival

Avatar
Date: 2/21/2017
Reply


  1. Скрипт lua из сборки 4.3.21 но инструменты не приходят (((
  2. Скажите у вас TestBag01.rar нормально все работает ? или тоже не приходят инструменты ? Я возможно как то неправильно инициализирую, а как правильно не понимаю, в прошлой сборке инструменты приходили без проблем Заранее спасибо.
Thanks:
1 2 3  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy