Вопросы новичка в S# (Закрыта)
Atom
01.12.2010
ttt


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

Теги:


Спасибо: Николай_Флёров


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

Фотография
Дата: 26.07.2011


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

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


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

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

vader

Фотография
Дата: 26.07.2011


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

Alexander

Фотография
Дата: 26.07.2011


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


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

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

vader

Фотография
Дата: 26.07.2011


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

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

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

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


И так тоже не работает
Код

StrategyRule strR =  this
				.When(Security.SecurityNewTrades())
				.Do(SimpleRegOrd);
			
			base.OnRunning();
Спасибо:

Alexander

Фотография
Дата: 26.07.2011


vader
попробовал вот так - не работает
Код

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

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

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


И так тоже не работает
Код

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



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

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

vader

Фотография
Дата: 28.07.2011


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

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

Alexander

Фотография
Дата: 28.07.2011


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

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


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

vader

Фотография
Дата: 28.07.2011


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

Alexander

Фотография
Дата: 28.07.2011


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


При вызове методов Stock#
Спасибо:

vader

Фотография
Дата: 28.07.2011


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

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

loading
clippy