Котирование
Atom
16.01.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)

Теги:


Спасибо:


< 1 2 3 4 5  >
Mikhail Sukhov

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


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

Спасибо:

Иван З.

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


[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]

Спасибо:

Andrii

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


[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]

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

Спасибо:

Иван З.

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


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

Спасибо: Mikhail Sukhov kornego

Mikhail Sukhov

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


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

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

Спасибо:

Иван З.

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


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

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

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

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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

Mikhail Sukhov

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


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

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

Спасибо:

Иван З.

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


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

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

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

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

Спасибо:

Mikhail Sukhov

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


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

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

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

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

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

loading
clippy