Mikhail Sukhov
|
Date: 7/27/2010
О! А вот это хорошее замечание. Надо про это написать:
base.ChildStrategies.Add(strategy);
strategy.Start();
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/27/2010
Спасибо, поменял местами, по Вашему совету.
Но стал получать другую ошибку
Необработанное исключение: System.InvalidOperationException:
Последовательность не содержит элементов
в System.Linq.Enumerable.Min[TSource](IEnumerable1 source) в System.Linq.Enumerable.Min[TSource,TResult](IEnumerable1 source,
Func2 selector) в Ecng.Trading.Algo.Strategy(SynchronizedCollection1 ☻)
в Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult]
(TCollection collection, Func2 func) в Ecng.Trading.Algo.Strategy.♫() в Ecng.Trading.Algo.StrategyManager.♠.☻(SynchronizedList1 ☻)
в Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult]
(TCollection collection, Func`2 func)
в Ecng.Trading.Algo.StrategyManager.☻(Object ☻)
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart(Object obj)
Спасибо и с уважением!
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/27/2010
Вопрос пока не снимается, это, похоже, я туплю.
а PriceDelta - да, выставляется.
Спасибо и с уважением!
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/28/2010
|
|
|
|
|
Приветствую, Михаил!
После Вашего последнего изменения 2.2 те ошибки что выше в этой теме
ушли. Спасибо огромное!
Дошел до котирования, но оно перестало работать. Заявки даже не
выставляются.
Спасибо и с уважением!
Вот лог:
10:25:33.5763796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:33.5773796 MQS MQS останавливается.
10:25:34.6693796 MQS Котирование закончилось.
10:25:34.6693796 MQS MQS остановлена.
10:25:35.7113796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:35.7113796 MQS MQS останавливается.
10:25:36.7133796 MQS Котирование закончилось.
10:25:36.7133796 MQS MQS остановлена.
10:25:38.5023796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:38.5033796 MQS MQS останавливается.
10:25:39.5773796 MQS Котирование закончилось.
10:25:39.5773796 MQS MQS остановлена.
10:25:40.6703796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:40.6703796 MQS MQS останавливается.
10:25:41.7133796 MQS Котирование закончилось.
10:25:41.7133796 MQS MQS остановлена.
10:25:42.5793796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:42.5793796 MQS MQS останавливается.
10:25:43.6703796 MQS Котирование закончилось.
10:25:43.6703796 MQS MQS остановлена.
10:25:44.7133796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:44.7143796 MQS MQS останавливается.
10:25:46.5033796 MQS Котирование закончилось.
10:25:46.5033796 MQS MQS остановлена.
10:25:47.5773796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:47.5773796 MQS MQS останавливается.
10:25:48.6703796 MQS Котирование закончилось.
10:25:48.6703796 MQS MQS остановлена.
10:25:49.7143796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:49.7143796 MQS MQS останавливается.
10:25:51.5033796 MQS Котирование закончилось.
10:25:51.5043796 MQS MQS остановлена.
10:25:52.5773796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:52.5773796 MQS MQS останавливается.
10:25:52.5823796 MQS Котирование закончилось.
10:25:52.5823796 MQS MQS остановлена.
10:25:53.6713796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:25:53.6713796 MQS MQS останавливается.
10:28:45.6923796 MQS Котирование закончилось.
10:28:45.6923796 MQS MQS остановлена.
10:28:45.6933796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:28:45.6933796 MQS MQS останавливается.
10:28:47.6923796 MQS Котирование закончилось.
10:28:47.6923796 MQS MQS остановлена.
10:28:49.6923796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:28:49.6923796 MQS MQS останавливается.
10:28:51.6923796 MQS Котирование закончилось.
10:28:51.6923796 MQS MQS остановлена.
10:28:53.6923796 MQS Заканчиваем котирование с неисполненным объемом
равный 2 контрактов.
10:28:53.6923796 MQS MQS останавливается.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 7/28/2010
Ага, еще одна ошибка. Перегрузите функцию CanFinish()
protected override bool CanFinish()
{
return base.LeftContracts == 0;
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/28/2010
наверно имелось в виду
return base.LeftPosition == 0; // LeftContracts не нашёл
Создал класс (ниже)
Котирование вроде заработало, но ещё буду смотреть дальше внимательно.
Большое спасибо и с уважением!
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ecng.Collections;
using Ecng.Trading.Algo;
using Ecng.Trading.BusinessEntities;
class MyMarketQuotingStrategy: MarketQuotingStrategy
{
public MyMarketQuotingStrategy(Order order, Unit priceDelta) :
base(order, priceDelta)
protected override bool CanFinish()
{
return base.LeftPosition == 0;
}
}
|
|
|
|
Thanks:
|
|
|
|
|
|
Garry
|
Date: 7/29/2010
|
|
|
|
|
Добрый день, переопределил метод CanFinish() как сказано выше, но у
меня появилась другая проблемма, почему-то MyMarketQuotingStrategy не
забирает управление, т.е. метод OnProcess родительской стратегии
продолжает вызываться, при этом плодятся новые MyMarketQuotingStrategy
и соответсвенно заявки. Делаю все как сказанно выше:
base.ChildStrategies.Add(strategy);
strategy.Start();
вот лог
MQS запущена.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324448 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324449 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324450 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324451 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324452 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324453 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
Цена текущей 84,55 и лучшей 84,55.
Runned
Регистрация новой заявки на Buy с ценой 84,55 и объемом 1.
Runned
Заявка 42324454 на Buy отправлена с ценой 84,55 объемом 1.
Runned
MQS запущена.
Runned
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324448.
Stopping
Котирование отменяет активную заявку 42324448.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324449.
Stopping
Котирование отменяет активную заявку 42324449.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324450.
Stopping
Котирование отменяет активную заявку 42324450.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324451.
Stopping
Котирование отменяет активную заявку 42324451.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324452.
Stopping
Котирование отменяет активную заявку 42324452.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324453.
Stopping
Котирование отменяет активную заявку 42324453.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование заканчивается на заявке 42324454.
Stopping
Котирование отменяет активную заявку 42324454.
Stopping
MQS остановлена.
Stopped
MQS останавливается.
Stopping
Котирование закончилось.
Stopping
MQS остановлена.
Stopped
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/29/2010
Кстати, да, подтверждаю и присоединяюсь к вопросу.
Самому пришлось обходить такое поведение семафорчиками.
Т.е. работает не совсем так как описано тут.
http://stocksharp.com/doc/help/html/8ea639f6-ce74-4a00-9f13-db59c8c23...
Ожидалось, что при вызове родительского OnProcess будет выполняться
вначале дочерний OnProcess.
А сейчас наоборот. При вызове дочернего OnProcess выполняется
родительский OnProcess причём, похоже, первым.
Спсибо и с уважением!
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 7/29/2010
А как Вы узнали, что они именно плодяться? Вы их случаем не
пересоздаете сами из свой основной стратегии?
|
|
|
|
Thanks:
|
|
|
|
|
|
ustas
|
Date: 7/29/2010
И еще вопрос в догонку.
Михаил, отфильтровывается ли стакан (GetFilteredQuotes) от своих
собственных заявок в стратегии MarketQuotingStrategy ?
По поведению кажется что нет. Почему? Или мне только кажется и дело в
скорости (интервале) ?
Спасибо и с уважением!
|
|
|
|
Thanks:
|
|
|
|
|