Вопросы новичка в S#

Вопросы новичка в S# (Locked)
Atom
12/1/2010
ttt


Добрый день. Очень понравилась идея использования Вашей библиотеки для реализации роботов. Подскажите, пожалуйста:

  1. Как идентифицировать заявку? //например, выставляю заявку buy RIZ0 4 контракта по цене 160500. Каким образом далее смогу ее отслеживать? Вариант с использованием таблицы сделок не подходит - необходимо реализовать контроль исполнения заявок пользуясь исключительно информацией из таблицы заявок. С языком C# только начал разбираться, возможно поэтому не нашел в представленных в дистрибутиве S# проектах примеров контроля состояния заявки по ее уникальному признаку.
  2. Верно ли я понимаю суть работы с Квиком: для реализации автономного робота необходимо организовать два потока на C#:
  • первый: выполняет функции получения данных из Квика через DDE сервер (используя библиотеку S#);
  • второй: непосредственно реализует алгоритм выставления и снятия заявок. Можно ли обойтись одним потоком?


<< < 44 45 46 47 48  > >>
Teddy

Avatar
Date: 8/15/2011


hobo:

Teddy: подскажите как нужно задавать время работы стратегии. Попробуйте if-ом[rolleyes] что им это понятно. а что с чем сранивать ? кусочек кода для понимая можно?

Thanks:

hobo

Avatar
Date: 8/16/2011


Teddy: кусочек кода для понимая можно? В стратегии не выставлять ордера раньше 14.00

if (base.Trader.MarketTime.Hour > 13)
{
  var order = CreateOrder(...);
  ...
}

Если нужно время в немосковском часовом поясе, то гляньте тут

  • TraderHelper.IsTradeTime(Security.Exchange.WorkingTime, Trader.MarketTime) для проверки является ли текущее время торгуемым (началась ли сессия, не закончилась ли, нет ти клиринга).
Thanks: Teddy

Mikhail Sukhov

Avatar
Date: 8/16/2011


freelancer: При наступлении события NewCandles выражение _candleManager.GetTimeFrameCandle(Security, _timeFrame, _сandleBounds.Max - _timeFrame) должно получать сформированную свечку (прошлую то есть), но иногда (!) получает текущую незакрытую. То есть иногда _candleManager.GetTimeFrameCandle(Security, _timeFrame, _сandleBounds.Max - _timeFrame).Time ≈ Trader.MarketTime

Свечки строятся по сделкам, которые текут с запозданием. Так что может и не закрывшую выдать. Смотрите на событие CandlesFinished.

Thanks:

freelancer

Avatar
Date: 8/18/2011


в 3.2.7 _strategy.PnLManager.PnL внезапно стало равно сумме цен сделок входа в позицию. Раньше было нормально

Thanks:

Alexander

Avatar
Date: 8/18/2011


freelancer: в 3.2.7 _strategy.PnLManager.PnL внезапно стало равно сумме цен сделок входа в позицию. Раньше было нормально

А в 3.2.9?

Thanks:

Alexander

Avatar
Date: 8/18/2011


Может стакан не запущен? => не может получить рыночную котировку => считает её равной 0 => получаем сумму цен сделок входа.

Thanks:

freelancer

Avatar
Date: 8/18/2011


Alexander: Может стакан не запущен? => не может получить рыночную котировку => считает её равной 0 => получаем сумму цен сделок входа. Так и есть, не запущен

Thanks:

Alexander

Avatar
Date: 8/18/2011


freelancer:

Alexander: Может стакан не запущен? => не может получить рыночную котировку => считает её равной 0 => получаем сумму цен сделок входа. Так и есть, не запущен

Запустите :)

Thanks:

Church

Avatar
Date: 8/22/2011


Проблемка с PositionManager. Прочел все темы на этот счет, но вопрос остался.

A$ 22.08.2011 16:27:38.447 Стратегия запущена. A$ 22.08.2011 16:27:38.457 Processing history... (this might take some time). A$ 22.08.2011 16:27:50.163 History is processed. A$ 22.08.2011 16:27:50.165 Beginning core cycle. A$ 22.08.2011 16:30:59.424 [>>>TRADE<<<] ENTER LONG... A$ 22.08.2011 16:30:59.437 [MQS] Стратегия запущена. A$ 22.08.2011 16:31:00.884 [MQS] Регистрация новой заявки на Buy с ценой 157250 и объемом 1. A$ 22.08.2011 16:31:01.506 [MQS] Заявка 59245330 на Buy отправлена с ценой 157250 объемом 1. A$ 22.08.2011 16:31:01.509 [MQS] Новая Limit заявка 59245330 на Buy с номером 4762410563. A$ 22.08.2011 16:31:01.512 Новая Limit заявка 59245330 на Buy с номером 4762410563. A$ 22.08.2011 16:31:01.979 [MQS] Позиция изменилась на 1. A$ 22.08.2011 16:31:01.980 [MQS] Заканчиваем котирование с неисполненным объемом равный 0. A$ 22.08.2011 16:31:01.983 [MQS] Заканчиваем котирование с неисполненным объемом равный 0. A$ 22.08.2011 16:31:01.986 [MQS] Стратегия останавливается. A$ 22.08.2011 16:31:01.987 [MQS] Заканчиваем котирование с неисполненным объемом равный 0. A$ 22.08.2011 16:31:01.988 [MQS] Заканчиваем котирование с неисполненным объемом равный 0. A$ 22.08.2011 16:31:01.990 [MQS] Стратегия остановлена. A$ 22.08.2011 16:31:02.003 Новая Buy сделка 379805505 на 1 заявки 59245330. A$ 22.08.2011 16:33:54.420 –––––––– [Status report] ––––––––– A$ 22.08.2011 16:33:54.433 | Current P/L = -210 A$ 22.08.2011 16:33:54.434 | Position = 0 // 0 A$ 22.08.2011 16:33:54.438 –––––––––– [End report] –––––––––– A$ 22.08.2011 16:34:14.382 Стратегия останавливается. A$ 22.08.2011 16:34:14.383 Стратегия остановлена.

В строку Position командой с консоли (через 3 секунды после остановки котировщика!) выводится позиция через this.PositionManager.Position // base.PositionManager.Position.

Результат: примерно 1 из 10 раз позиция не изменяется. В логе явно видно что QuotingStrategy сумела провести 1 бай, но позиция стратегии не изменилась.

Thanks:

Mikhail Sukhov

Avatar
Date: 8/22/2011


Church: Результат: примерно 1 из 10 раз позиция не изменяется. В логе явно видно что QuotingStrategy сумела провести 1 бай, но позиция стратегии не изменилась.

Можете прислать минимальный код?

Thanks:
<< < 44 45 46 47 48  > >>

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

loading
clippy