Котирование

Котирование
Atom
1/16/2015
Иван З.


Как я понимаю есть 2 варианта запустить котирования

  1. из документации http://stocksharp.com/doc/?topic=html/24250c24-029c-4dbc-bc8b-4afde645e483.htm [code=csharp]var strategy = new MarketQuotingStrategy(order, new Unit()); base.ChildStrategies.Add(strategy);[/code] Работает нормально, по крайней мере позиции набирает.

  2. из одного из обновления http://stocksharp.com/forum/2285/Stock--4-0-Release/ [code=csharp] this.OpenPositionByQuoting(10); [/code] Работает не нормально, либо не правильно использую В стратегии просто набираю позицию [SPOILER][code=csharp] using MoreLinq; using StockSharp.Algo.Strategies.Quoting; using StockSharp.BusinessEntities;

namespace Sample { using StockSharp.Algo; using StockSharp.Algo.Candles; using StockSharp.Algo.Indicators; using StockSharp.Algo.Strategies; using StockSharp.Messages;

class MyStrategy : Strategy
{
    public MyStrategy(){}
    protected override void OnStarted()
    {
        Process();
        base.OnStarted();
    }


    private void Process()
    {
        // если наша стратегия в процессе остановки
        if (ProcessState == ProcessStates.Stopping)
        {
            // отменяем активные заявки
            CancelActiveOrders();
            return;
        }
        if (Position == 0)
        {
           //var strat = new MarketQuotingStrategy(Sides.Buy, 10);
           //base.ChildStrategies.Add(strat);
           this.OpenPositionByQuoting(10);
        }

    }
}

} [/code][/SPOILER] В тестовом КВИКе выдает ошибку [img]http://clickscreen.ru/screens/2/a04e66b2.png [/img] Лог приложу Еще раз повторю, что 1й работает а 2й не работает Вопрос: это я не правильно использую или это баг?

log.txt 72 KB (762)

Tags:


Thanks:


< 1 2 3 4 5  >
Mikhail Sukhov

Avatar
Date: 2/5/2015
Reply


Думаю что вы не правы. Котирование как раз реагирует на изменение стакана.

Thanks:

Иван З.

Avatar
Date: 2/5/2015
Reply


[quote=Михаил Сухов;32547]Думаю что вы не правы. Котирование как раз реагирует на изменение стакана.[/quote] Конечно реагирует, и пишет в лог, что стакан изменился. [SPOILER]2015/02/05 21:37:54.294|Debug |MQS_HALS@QJSIM_83312|Правило 'Изменение стакана инструмента HALS@QJSIM (0x3B3F729)'. Активация.[/SPOILER] Только она не видит, что изменилась лучшая цена, и поэтому ничего не делает.

А должна написать (должна но не пишет и не делает), что лучшая цена изменилась [SPOILER]2015/02/05 21:37:54.294| |MQS_HALS@QJSIM_83312|Цена текущей 1281 и лучшей 1278. 2015/02/05 21:37:54.294| |MQS_HALS@QJSIM_83312|Лучший бид 1281 и лучший аск 1289.[/SPOILER] поэтому начинаю котирование [SPOILER]2015/02/05 21:37:54.294| |MQS_HALS@QJSIM_83312|Котирование заявки 77834723 (0x2641245) на Buy с ценой 1281 объемом 1.[/SPOILER]

RomSunZ все верно сказал, [quote]MQS считает свою заявку лучшей, поэтому не откатывает эту заявку "назад" к краю спреда в стакане. [/quote]

Thanks:

Andrii

Avatar
Date: 2/5/2015
Reply


[quote=Михаил Сухов;32547]Думаю что вы не правы. Котирование как раз реагирует на изменение стакана.[/quote]

[quote=Andrii;32543][quote=Михаил Сухов;32538]Давайте еще раз. Покажите где в логе ошибка. Смотреть тонну логов ради непонятной ошибки (есть она или нет) нет возможности. Поберетиге наше время, потратьте пару дней на анализ лога и выложите его с комментариями.[/quote]

Ошибка в QuotingStrategy.cs свойство BestPrice

[code=csharp]if (Direction == Sides.Buy) { if(CurrentOrder.Price > Price) return CurrentOrder.Price; }[/code]

[/quote]

уже ж написал где ошибка, проверить и исправить ее минутное дело

Thanks:

Иван З.

Avatar
Date: 2/12/2015
Reply


Почти на всех стратегиях котирования наблюдалась выше описанная проблема. Проблему поправил, проверил на учебном Квике, выложил стратегии ВКонтакте http://vk.com/docs?oid=-66650972

Thanks: Mikhail Sukhov kornego

Mikhail Sukhov

Avatar
Date: 2/13/2015
Reply


А что делает метод BestPriceAddPriceStep? У него такое описание, что то ли половина слов пропало, то ли запятые не выставлены:

[quote]Получить цену лучше лучшей цены BestPrice, на минимальный шаг цены PriceStep то будет возвращено null.[/quote]

Thanks:

Иван З.

Avatar
Date: 2/13/2015
Reply


Свойство. Упс.

[quote]Получить цену лучше лучшей цены BestPrice, на минимальный шаг цены PriceStep, если отсутствуют котировки то будет возвращено .[/quote]

Если покупка BestPriceAddPriceStep=BestPrice+PriceStep если продажа BestPriceAddPriceStep=BestPrice-PriceStep

Я C# изучал на курсах у S#. Код рабочий, но он может быть не изящный как у тру програмистов.

Thanks:

Mikhail Sukhov

Avatar
Date: 2/13/2015
Reply


Я можно теперь своими словами сказать зачем нужен этот сдвиг?

Thanks:

Mikhail Sukhov

Avatar
Date: 2/13/2015
Reply


[code=csharp]if (Order != null && acceptablePriceRange.Contains(Order.Price)) return null;[/code]

А это условие зачем? Если у нас заявка попадает в приемлемый диапазон, то ведь это еще не значит, что ее не надо изменить (улучшить цену).

Thanks:

Иван З.

Avatar
Date: 2/13/2015
Reply


В BestByVolumeQuotingStrategy когда у лучшей заявки объем больше, чем суммарный который может стоять перед заявкой VolumeExchange. То заявку следует выставить перед этим объемом, то есть на 1 PriceStep лучше лучшей цены.

[quote]А это условие зачем? Если у нас заявка попадает в приемлемый диапазон, то ведь это еще не значит, что ее не надо изменить (улучшить цену).

StockSharp платформа.[/quote]

если можно улучшить значит не должна попадать в приемлемый диапазон. На практике проверил, если можно улучшить она ее улучшает.

Thanks:

Mikhail Sukhov

Avatar
Date: 2/16/2015
Reply


Перезалил в группе архив со стратегиями. Что сделано:

  1. Применены изменения (не все).
  2. Порефакторено само котирование (убрано множество виртуальных методов).
  3. Поправлены некоторые котирования другие.

Проверите? Чтобы выложить это уже на ГитХаб.

Thanks:
< 1 2 3 4 5  >

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

loading
clippy