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

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


ttt

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


<< < 40 41 42 43 44  > >>
Alexander

Avatar
Date: 7/26/2011


vader Go to
_priceOfOrder - ввожу вручную, сталю такой, чтобы скорее испольнилось условие.
Как пример. Если лучшая продажа 198645, то ставлю 198630.

Security.BestAsk.Price не использую сейчас. Я выводил это ,чтобы убедится, что стратегия получает данные.


Вроде нашёл багу.
Вообще надо передавать не цену, а сдвиг цены - в % или в пунктах.

Поправлю документацию и код.
Thanks:

vader

Avatar
Date: 7/26/2011


Alexander, прошу вас , дайте пожалуйста работоспособный пример событийной стратегии, в котором поковырятся можно, потому что тяжело разобраться, из-за чего программа не работает так как надо.
Thanks:

Alexander

Avatar
Date: 7/26/2011


vader Go to
Alexander, прошу вас , дайте пожалуйста работоспособный пример событийной стратегии, в котором поковырятся можно, потому что тяжело разобраться, из-за чего программа не работает так как надо.


напишите, к примеру, When(Security.SecurityNewTrades()).Do(blabla)

То что выше - я уже написал - была ошибка, исправляю.
Thanks:

vader

Avatar
Date: 7/26/2011


попробовал вот так - не работает
Code

StrategyRule strR =  this
				.When(StrategyRuleConditionHelper.BestAskPriceLess(this.Security, new Unit(5)))
				.Do(SimpleRegOrd);
			
			base.OnRunning();

И ещё. Мне удалось вызвать метод, в котором должна происходить регистрация заявки ,но заявка в квике не появилась.
Code

private void SimpleRegOrd()
		{
			MessageBox.Show("SimpleRegOrd");
			this.RegisterOrder(_order);
		}


И так тоже не работает
Code

StrategyRule strR =  this
				.When(Security.SecurityNewTrades())
				.Do(SimpleRegOrd);
			
			base.OnRunning();
Thanks:

Alexander

Avatar
Date: 7/26/2011


vader Go to
попробовал вот так - не работает
Code

StrategyRule strR =  this
				.When(StrategyRuleConditionHelper.BestAskPriceLess(this.Security, new Unit(5)))
				.Do(SimpleRegOrd);
			
			base.OnRunning();

И ещё. Мне удалось вызвать метод, в котором должна происходить регистрация заявки ,но заявка в квике не появилась.
Code

private void SimpleRegOrd()
		{
			MessageBox.Show("SimpleRegOrd");
			this.RegisterOrder(_order);
		}


И так тоже не работает
Code

StrategyRule strR =  this
				.When(Security.SecurityNewTrades())
				.Do(SimpleRegOrd);
			
			base.OnRunning();



Первое не работает я уже написал почему - бага найдена, исправил, будет в 3.2.6
Второе - выведите все поля заявки перед регистрацией чтоб было понятно где проблема. Заявки у остальных регистрируется нормально.
Третье - что значит тоже не работает? SimpleRegOrd вызывается? Новые сделки по инструменту приходят?

ProcessDataError что-нибудь выдаёт?
Thanks: vader

vader

Avatar
Date: 7/28/2011


спасибо за советы.
Проблема была в том, что я не инициалезировал Trader, ни у стратегии ни у заявки.
ProcessDataError ничего не выдавал.

Заметил такую проблему, что часто если при работе стратегии произошла проограмная ошибка, то простостртегия останавливается и никак не сигналезирует об ошибке. Что очень не удобно.
Можно ли как-то сделать ,чтобы визуально были видны ошибки?
Thanks:

Alexander

Avatar
Date: 7/28/2011


vader Go to
спасибо за советы.
Проблема была в том, что я не инициалезировал Trader, ни у стратегии ни у заявки.
ProcessDataError ничего не выдавал.

Заметил такую проблему, что часто если при работе стратегии произошла проограмная ошибка, то простостртегия останавливается и никак не сигналезирует об ошибке. Что очень не удобно.
Можно ли как-то сделать ,чтобы визуально были видны ошибки?


Перехватывайте ProcessDataError и исключения.
Thanks:

vader

Avatar
Date: 7/28/2011


ProcessDataError молчит.
В каких местах перехватывать исключения?
Thanks:

Alexander

Avatar
Date: 7/28/2011


vader Go to
ProcessDataError молчит.
В каких местах перехватывать исключения?


При вызове методов Stock#
Thanks:

vader

Avatar
Date: 7/28/2011


При тестировании на учебном счете Quik-Junior, на площадке ММВБ, не выполняется условие на появление новых сделок (StrategyNewMyTrades), когда происходит сделка. При этом если работать на игровой секции FORTS, все условия выполняются. ProcessDataError ничего не выдает.
Как это можно поправить?
S# 3.2.5
Thanks:
<< < 40 41 42 43 44  > >>

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

loading
clippy