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


ttt

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

Теги:


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




506 Ответов
<< < 3 4 5 6 7  > >>
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.03.2011


freelancer Перейти
Здравствуйте. Все цены инструмента (лучшая покупка, продажа и т.д.) у меня равны нулю почему-то (событие SecuritiesChanged). И даже в примере "Sample". Почему так ? Версия - последняя


Надо запустить экспорт стаканов.
Спасибо:

freelancer

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


Trader.Terminal.StartDde(Trader.QuotesTable); (не работает)
или
Trader.StartExport();
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.03.2011


freelancer Перейти
Trader.Terminal.StartDde(Trader.QuotesTable); (не работает)
или
Trader.StartExport();


В документации написано как работать со стаканом.
Спасибо:

freelancer

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


Mikhail Sukhov Перейти
В документации написано как работать со стаканом

Спасибо. Вроде заработало
Спасибо:

a.dobryn

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


как пользоваться IsTradeTime? откуда брать exchange?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.03.2011


D_Alex Перейти
как пользоваться IsTradeTime? откуда брать exchange?


Например, из инструмента.
Спасибо: a.dobryn

a.dobryn

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


Mikhail Sukhov Перейти
D_Alex Перейти
как пользоваться IsTradeTime? откуда брать exchange?


Например, из инструмента.


спасибо, получилось =)
Спасибо:

skuvv

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


По поводу ReRegisterOrder, при использовании такого кода:
Код

Ecng.Trading.BusinessEntities.Order _order = order.Clone();
_order.Volume = newQty;
_order.Price = newPrice;
_trader.ReRegisterOrder(order, _order);

получаю отклоненный ордер с сообщением "Сообщение [FORTS] Ошибка в задании входных параметров.. New Order1 ID: 0, new Order2 ID:0"
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 06.03.2011


skuvv Перейти
По поводу ReRegisterOrder, при использовании такого кода:
Код

Ecng.Trading.BusinessEntities.Order _order = order.Clone();
_order.Volume = newQty;
_order.Price = newPrice;
_trader.ReRegisterOrder(order, _order);

получаю отклоненный ордер с сообщением "Сообщение [FORTS] Ошибка в задании входных параметров.. New Order1 ID: 0, new Order2 ID:0"


Подозреваю, что какие то параметры неправильные. newQty и newPrice проверьте.
Спасибо:

skuvv

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


Mikhail Sukhov Перейти
skuvv Перейти
По поводу ReRegisterOrder, при использовании такого кода:
Код

Ecng.Trading.BusinessEntities.Order _order = order.Clone();
_order.Volume = newQty;
_order.Price = newPrice;
_trader.ReRegisterOrder(order, _order);

получаю отклоненный ордер с сообщением "Сообщение [FORTS] Ошибка в задании входных параметров.. New Order1 ID: 0, new Order2 ID:0"


Подозреваю, что какие то параметры неправильные. newQty и newPrice проверьте.

v3.0.13 ошибка ушла.
замененный ордер не заполняет поле OrderStatus, и всегда ==null

PS для стоп-ордеров статус корректный
Спасибо:

dimakl

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


Здравствуйте.
У меня не работает пример SampleConsole, причем для разных Quik не работает по разному.
Сделал все как написано в примере из мануала.
1) QuikJunior от Quik. Verifer ругается "Таблица инструменты. В таблице "инструменты" по индексу 3 должна быть колонка "Статус" вместо колонки "Статус торговли инструментом""(В настройках я не нашел колонки Статус). Но SampleConsole в свою очередь нормально подключается, находит инструмент и портфель, только все данные по инструменту равны 0. Т.е. цена например всегда равна 0.

2) Quik от КитФинанс. Verifier говорит что все в порядке. Но в данном случае находится инструмент, но не находится портфель. Вообще событие о появление нового портфеля не происходит. Хотя в настройках квика есть два портфеля.

StockSharp 3.0.15
Quik 5.18
Спасибо:

MCTuTeJ|19951995

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


Есть вопрос по MarketQuotingStrategy:
Верно ли что метод OnProcess родительской стратегии не будет вызываться до тех пор, пока котирование не завершится ?
Спасибо:

MCTuTeJ|19951995

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


При использовании MarketQuotingStrategy столкнулся с такой ошибкой:


MQS 11:30:40.6451718 System.ArgumentOutOfRangeException: Десятичное число может округляться только с точностью от 0 до 28 разрядов.
Имя параметра: decimals
в System.Decimal.FCallRound(Decimal& d, Int32 decimals)
в System.Decimal.Round(Decimal d, Int32 decimals)
в Ecng.Trading.Algo.TraderHelper.ShrinkPrice(Security security, Double price, ShrinkRules rule)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=qiRcAHlpbxRjZjyUrS0Iw1A==()
MQS 11:30:40.6500546 Стратегия останавливается.
MQS 11:30:42.4820859 Котирование закончилось.
MQS 11:30:42.4830625 Стратегия остановлена.


Стратегию создаю след, образом:
Код

MarketQuotingStrategy strategy = new MarketQuotingStrategy(MarketOrder, new Unit(), new Unit());
strategy.IsParallel = true;
this.ChildStrategies.Add(strategy);



Пробовал создавать непустые юниты ( с единичками, торгую на инструменте с шагом цены 1 )
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


MCTuTeJ|19951995 Перейти
При использовании MarketQuotingStrategy столкнулся с такой ошибкой:


MQS 11:30:40.6451718 System.ArgumentOutOfRangeException: Десятичное число может округляться только с точностью от 0 до 28 разрядов.
Имя параметра: decimals
в System.Decimal.FCallRound(Decimal& d, Int32 decimals)
в System.Decimal.Round(Decimal d, Int32 decimals)
в Ecng.Trading.Algo.TraderHelper.ShrinkPrice(Security security, Double price, ShrinkRules rule)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=qiRcAHlpbxRjZjyUrS0Iw1A==()


Это не поможет https://stocksharp.ru/fo...ie-na-0-pri-kotirovanii/
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


dimakl Перейти
Здравствуйте.
У меня не работает пример SampleConsole, причем для разных Quik не работает по разному.
Сделал все как написано в примере из мануала.


В примере ошибка - нужно еще экспортировать стакан. Предупреждение о статусе игнорируйте.
Спасибо:

MCTuTeJ|19951995

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


Mikhail Sukhov Перейти
MCTuTeJ|19951995 Перейти
При использовании MarketQuotingStrategy столкнулся с такой ошибкой:


MQS 11:30:40.6451718 System.ArgumentOutOfRangeException: Десятичное число может округляться только с точностью от 0 до 28 разрядов.
Имя параметра: decimals
в System.Decimal.FCallRound(Decimal& d, Int32 decimals)
в System.Decimal.Round(Decimal d, Int32 decimals)
в Ecng.Trading.Algo.TraderHelper.ShrinkPrice(Security security, Double price, ShrinkRules rule)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=qiRcAHlpbxRjZjyUrS0Iw1A==()


Это не поможет https://stocksharp.ru/fo...ie-na-0-pri-kotirovanii/



Я так понял у вопрошаюшего была проблема с таблицей инструментов - лишняя колонка.

Я из этой таблицы дополнительно беру волатильность и дату эксперации, может в этом быть проблема ? Verifierom проверял, не ругается вроде.
Да, версия s# 2.6 .
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


MCTuTeJ|19951995 Перейти
Я так понял у вопрошаюшего была проблема с таблицей инструментов - лишняя колонка.

Я из этой таблицы дополнительно беру волатильность и дату эксперации, может в этом быть проблема ? Verifierom проверял, не ругается вроде.
Да, версия s# 2.6 .


Тогда выведите, чему равны в программе значения Security MinStepSize Decimals + цену передаваемой заявки.
Спасибо:

MCTuTeJ|19951995

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


Decimals 100
MinStepSize 1
Цена 21420
Спасибо:

MCTuTeJ|19951995

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


Видимо проблема в decimals 100 ))
Спасибо:

MCTuTeJ|19951995

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


Scurity:

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


MCTuTeJ|19951995 Перейти
Видимо проблема в decimals 100 ))


Точно Verifier не ругается? Приведите скрин таблицы?
Спасибо:

MCTuTeJ|19951995

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


Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


Какая версия S#?
Спасибо:

MCTuTeJ|19951995

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


S# 2.6.
Только что попробовал у MQS руками поправить Security.Decimals, начала вываливаться ошибка "ССылка на объект не казывает на экземпляр" ...
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.03.2011


MCTuTeJ|19951995 Перейти
S# 2.6.


То, что указано в разделе Модификация стандартных таблиц сделали?
Спасибо:
<< < 3 4 5 6 7  > >>

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

loading
clippy