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


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


ttt

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


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

Avatar
Date: 8/15/2011


hobo Go to
Teddy Go to
подскажите как нужно задавать время работы стратегии.

Попробуйте if-ом[rolleyes]

что им это понятно. а что с чем сранивать ?
кусочек кода для понимая можно?
Thanks:

hobo

Avatar
Date: 8/16/2011


Teddy Go to
кусочек кода для понимая можно?

В стратегии не выставлять ордера раньше 14.00
Code
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 Go to
При наступлении события 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 Go to
в 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 Go to
Может стакан не запущен?
=> не может получить рыночную котировку => считает её равной 0 => получаем сумму цен сделок входа.

Так и есть, не запущен
Thanks:

Alexander

Avatar
Date: 8/18/2011


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

Так и есть, не запущен


Запустите :)
Thanks:

Church

Avatar
Date: 8/22/2011


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


Quote:
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 Go to
Результат: примерно 1 из 10 раз позиция не изменяется. В логе явно видно что QuotingStrategy сумела провести 1 бай, но позиция стратегии не изменилась.


Можете прислать минимальный код?
Thanks:
<< < 44 45 46 47 48  > >>

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

loading
clippy