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


ttt

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

Теги:


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




506 Ответов
<< < 18 19 20 21  >
RomSunZ

Фотография
Программист
Дата: 25.08.2011


Здраствуйте.
Помогите разобраться с AmCharts.
Я в примере SampleCandles поменял xaml код графика, взяв его из примера SampleAlfaCandles.
Далее добавил функцию в окне графика:
Код

        public void DrawCandles(IEnumerable<Candle> candles)
        {
            _candles.AddRange(candles);
            stockChart1.DataSets[0].ItemsSource = _candles;
        }

В обработчике событий NewCandles и CandlesChanged в главном окне прописал
Код

		private void DrawCandles1(CandleToken token, IEnumerable<Candle> candles)
		{
			this.GuiAsync(() =>
			{
				var wnd = _chartWindows.TryGetValue(token);
                                if (wnd != null)
                                wnd.DrawCandles(candles);
			});
		}



Все остальное оставил как было. После запуска экспорта и открытия графика у меня сразу отрисовывется несколько свечек (видимо которые приходят по DDE от момента вызова _chartWindows.Show() до первого вызова DrawCandles), а потом добавление новых на график не идет.
События обрабатываются нормально, количество элементов в _candles увеличивается, но новые свечки на графике не появляются. Подскажите, что нужно добавить, чтобы график обновлялся с приходом новых данных?

Нашел ответ на форуме amCharts:
You can manually call DataSet.ProcessDataBoundItems() method to force processing of bound data items.
Спасибо:

Maxim K.

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


Можно ли как-нибудь средствами библиотеки получать информацию об отправленной транзакции ? Какой-нибудь аналог TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK ?
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Можно ли как-нибудь средствами библиотеки получать информацию об отправленной транзакции ? Какой-нибудь аналог TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK ?


Вы думаете в терминал Квика, где сделано процедурно. А нужно думать в терминал ООП. ITrader.OrdersChaged ITrader.OrdersFailed.
Спасибо:

Maxim K.

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


Mikhail Sukhov Перейти
Maxim K. Перейти
Можно ли как-нибудь средствами библиотеки получать информацию об отправленной транзакции ? Какой-нибудь аналог TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK ?


Вы думаете в терминал Квика, где сделано процедурно. А нужно думать в терминал ООП. ITrader.OrdersChaged ITrader.OrdersFailed.

Просто s#, на сколько я понимаю, на данный момент не предоставляет функционала для работы с РПС. Сейчас, чтобы поставить заявку РПС, я отправляю их как обычные, в FormatTransaction отслеживаю их и меняю Action на нужное. Но дело в том, что я не знаю как получить результат транзакции - была она принята, исполнена, отвергнута или что-нибудь еще с ней случилось, а мне нужно получать эту информацию.

upd: правильно ли я понимаю, что OrdersChanged следит за таблицей "Заявки", а OrdersFailed делает как раз то что мне нужно -
анализирует результат транзакции ?
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Просто s#, на сколько я понимаю, на данный момент не предоставляет функционала для работы с РПС. Сейчас, чтобы поставить заявку РПС, я отправляю их как обычные, в FormatTransaction отслеживаю их и меняю Action на нужное. Но дело в том, что я не знаю как получить результат транзакции - была она принята, исполнена, отвергнута или что-нибудь еще с ней случилось, а мне нужно получать эту информацию.


Все как с обычными заявками.
Спасибо: Maxim K.

Maxim K.

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


Mikhail Sukhov Перейти


Все как с обычными заявками.


Да, и правда, почти все как с обычными. Спасибо.
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Mikhail Sukhov Перейти


Все как с обычными заявками.


Да, и правда, почти все как с обычными. Спасибо.


Если расширите самостоятельно оставшиеся команды, можно вставить в S# в следующей версии.
Спасибо:

Maxim K.

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


Mikhail Sukhov Перейти


Если расширите самостоятельно оставшиеся команды, можно вставить в S# в следующей версии.


Михаил, а не могли бы вы по подробнее объяснить, что вы подразумеваете под "расширить команды" ? Просто сейчас по сути ничего не расширено - всё работает посредством корявых костылей в FormatTransaction. Плюс еще приходится менять класс инструментов там же - с SPBFUT и SPBOPT на PSFUT и PSOPT, так как я не до конца понял как s# работает с инструментами с одинаковым кодом, но с разным классом.
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Михаил, а не могли бы вы по подробнее объяснить, что вы подразумеваете под "расширить команды" ? Просто сейчас по сути ничего не расширено - всё работает посредством корявых костылей в FormatTransaction.


Конечно нет, вы же код еще не прислали. Не будем же мы ради одного вас делать поддержку экзотики. Мы вам код TransactionBuilder, вы нам его дополненного всеми оставшимися командами, которые могут быть в Квик. После этого с места и сдвинется. Ок?

Maxim K. Перейти
Плюс еще приходится менять класс инструментов там же - с SPBFUT и SPBOPT на PSFUT и PSOPT, так как я не до конца понял как s# работает с инструментами с одинаковым кодом, но с разным классом.


Я про это в первый раз слышу. Приведите ссылку, где вы про это писали.

Правило простое. Есть проблема - есть сообщение на форуме. Если сообщения нет, значит нет и проблемы.
Спасибо:

Maxim K.

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


Просто я до конца еще не разобрался и сформулировать проблему пока не могу четко. Как разберусь так сразу отпишусь.
Насчет TransactionBuilder - я за, присылайте, постараюсь сделать.
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Просто я до конца еще не разобрался и сформулировать проблему пока не могу четко. Как разберусь так сразу отпишусь.
Насчет TransactionBuilder - я за, присылайте, постараюсь сделать.


Как будете готовы и уверены, отошлю файл.
Спасибо:

bgood

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


Подскажите, есть ли возможность выставлять РЕПО заявки?
Пока что вижу для себя два решения:
1) Мучить QuikTrader.FormatTransaction()
2) Отправлять через TRANS2QUIK.DLL минуя S#, ибо позволяет отправлять как раз в таком виде, который в *.tri файле, но это какой-то геморрой как мне кажется


Пример из *.tri файла:
Цитата:
ACTION=NEW_EXT_REPO_NEG_DEAL; TRANS_ID=5911; CLASSCODE=RPDD; SECCODE=SU25065RMFS2; ACCOUNT=; CLIENT_CODE=MMkb; PARTNER=; OPERATION=S; QUANTITY=200000; SETTLE_CODE=T0; REPORATE=3.9; REPOTERM=1; START_DISCOUNT=2; MATCHREF=БУНФА1;
Спасибо:

Mikhail Sukhov

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


avidad Перейти
Подскажите, есть ли возможность выставлять РЕПО заявки?


Буквально пару сообщений выше писал что да можно и как именно. Спросите у Maxim.K, надеюсь, он поделится опытом. Хотя там дело на пару часов.
Спасибо:

Maxim K.

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


Я мучаю FormatTransaction.
Еще такой вопрос:
Часто возникает ситуация, когда при переходе с дневной сессии на вечернюю и обратно остается висеть активная заявка. Биржа меняет там код с, например, SPBFUT на FUTEVN, снимая старую заявку и ставя новую. При этом, у этих двух заявок получается одинаковый номер. При DDE экспорте в таком случае возникает ошибка - Дублированный пакет, имя параметра - item, экспортируются только те заявки, которые расположены выше этих двух с одинаковым номером.
Сейчас лечу это поиском заявок с одинаковым номером и удалением снятой в PreProcessDdeData. У кого-нибудь еще возникает подобная проблема ? Или надо с брокером говорить ?

P.S. Михаил, с инструментами разобрался, проблем вроде нет. За TransactionBuilder готов приняться.
Спасибо:

bgood

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


Maxim K., отписал вам в личку
Спасибо:

Alexander

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


avidad Перейти
Maxim K., отписал вам в личку


а сюда отписать? :)
Спасибо:

Church

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


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

Maxim K.

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


Повторю вопрос:
Часто возникает ситуация, когда при переходе с дневной сессии на вечернюю и обратно остается висеть активная заявка. Биржа меняет там код с, например, SPBFUT на FUTEVN, снимая старую заявку и ставя новую. При этом, у этих двух заявок получается одинаковый номер. При DDE экспорте в таком случае возникает ошибка - Дублированный пакет, имя параметра - item, экспортируются только те заявки, которые расположены выше этих двух с одинаковым номером.
Сейчас лечу это поиском заявок с одинаковым номером и удалением снятой в PreProcessDdeData. У кого-нибудь еще возникает подобная проблема ? Или надо с брокером говорить ?

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

Alexander

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


Maxim K. Перейти
Повторю вопрос:
Часто возникает ситуация, когда при переходе с дневной сессии на вечернюю и обратно остается висеть активная заявка. Биржа меняет там код с, например, SPBFUT на FUTEVN, снимая старую заявку и ставя новую. При этом, у этих двух заявок получается одинаковый номер. При DDE экспорте в таком случае возникает ошибка - Дублированный пакет, имя параметра - item, экспортируются только те заявки, которые расположены выше этих двух с одинаковым номером.
Сейчас лечу это поиском заявок с одинаковым номером и удалением снятой в PreProcessDdeData. У кого-нибудь еще возникает подобная проблема ? Или надо с брокером говорить ?

Собственно интересует один ли я такой или нет, бывает у кого-то такое или нет.


Что за брокер?
Что настроено в Связь -> Списки?

P.S. У меня в Открытии с таким ни разу не сталкивался, в Связь -> Списки установлены только "Forts" (а не фьючерсы фортс: дополнительная сессия).

P.P.S. и avidad вам не по этому поводу отписался? :)
Спасибо:

Mikhail Sukhov

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


Church Перейти
Есть ли какой-нибудь встроенный метод для определения, закончили ли свечки регистрироваться, или синхронный режим их регистрации, т.е. чтобы программа останавливалась до тех пор, пока регистрация не окончится?


https://stocksharp.ru/do...nager_IsSyncRegister.htm
Спасибо: Church

freelancer

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


А можно ли с помощью правил реализовать вход в сделку за 5-10 секунд до окончания свечи ?
И второй вопрос: после переподключения правила в стратегии не выполняются. Странно
Спасибо:

Maxim K.

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


Alexander Перейти
Maxim K. Перейти
Повторю вопрос:
Часто возникает ситуация, когда при переходе с дневной сессии на вечернюю и обратно остается висеть активная заявка. Биржа меняет там код с, например, SPBFUT на FUTEVN, снимая старую заявку и ставя новую. При этом, у этих двух заявок получается одинаковый номер. При DDE экспорте в таком случае возникает ошибка - Дублированный пакет, имя параметра - item, экспортируются только те заявки, которые расположены выше этих двух с одинаковым номером.
Сейчас лечу это поиском заявок с одинаковым номером и удалением снятой в PreProcessDdeData. У кого-нибудь еще возникает подобная проблема ? Или надо с брокером говорить ?

Собственно интересует один ли я такой или нет, бывает у кого-то такое или нет.


Что за брокер?
Что настроено в Связь -> Списки?

P.S. У меня в Открытии с таким ни разу не сталкивался, в Связь -> Списки установлены только "Forts" (а не фьючерсы фортс: дополнительная сессия).

P.P.S. и avidad вам не по этому поводу отписался? :)


Брокер - Церих
В связь->списки установлено почти все, так как всё это нужно.
avidad не по этому поводу отписывался )
Спасибо:

Mikhail Sukhov

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


Maxim K. Перейти
Собственно интересует один ли я такой или нет, бывает у кого-то такое или нет.


Может фильтр на таблицу заявок?
Спасибо:

Maxim K.

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


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

Mikhail Sukhov

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


Maxim K. Перейти
Вы имеете ввиду обычный фильтр в QUIK ? Собственно изначально так и делал, но тогда теряется и некоторая полезная информация, что не есть хорошо.


А что именно теряется?
Спасибо:
<< < 18 19 20 21  >

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

loading
clippy