Stock# 2.0
Atom Ответить
12.05.2010



Теги:


Спасибо:



Скидка 15% на все продукты до 5 апреля (осталось 2 дней).

24 Ответов
Alexander

Фотография
Дата: 17.05.2010
Ответить


При попытке создать QuikTrader с добавленным ранее путём возникает
эксепшен ArgumentException:

который невозможно отловить. Возникает он внутри конструктора
QuikTrader, try\catch не помогают.
Спасибо:

Mikhail Sukhov

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


Предыдущий QuikTrader надо очищать - trader.Dispose().

Автор топика
Спасибо:

Alexander

Фотография
Дата: 17.05.2010
Ответить


Это возникает при добавлении их в MultiTrader через
Trader.AggregatedTraders.Add.
Для меня некритично проверять пути самому, но хотелось бы чтобы такое
исключение отлавливалось внутри конструктора QuikTrader.

p.s. я похоже ошибся - там ключом ведь является аккаунт квика, так что
дело в совпадающих аккаунтах.

И попутно ещё вопрос - как быть с разными субсчетами в одном квике?
Необходимо создавать несколько QuikTrader с одинаковыми путями и
разными аккаунтами или есть способ получше посылать заявки на биржу?

Спасибо:

Mikhail Sukhov

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


Субсчет - это значит один квик и разные счета в заявках.
Следовательно, один QuikTrader, который подсовывается в
AggregatedTraders под разными ключами-субсчетами.

Автор топика
Спасибо:

Alexander

Фотография
Дата: 17.05.2010
Ответить


с этим спасибо, буду так делать.

а всё же неотлавлимое исключение внутри конструктора QuikTrader (с
добавлением одинаковых ключей) можно исправить в новой бете 2.0?

Спасибо:

Mikhail Sukhov

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


А можно сюда вставить полный текст ошибки (стек-трейс)?

Автор топика
Спасибо:

Alexander

Фотография
Дата: 17.05.2010
Ответить


вот что удалось выцепить из интеллитрэйс (я в vs2010 работаю) -

A System.ArgumentException was thrown: "An item with the same key has
already been added."
Thread: Dde thread [2476]

Вот информация по исключению:

Message=An item with the same key has already been added.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.Control.MarshaledInvoke(Control caller,
Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method,
Object[] args)
at NDde.Advanced.DdeContext.DdeThread.Invoke(Delegate method,
Object[] args)
at NDde.Advanced.DdeContext.Invoke(Delegate method, Object[]
args)
at NDde.Advanced.DdeContext.Invoke(ThreadStart method)
at NDde.Server.DdeServer.Register()
at . . ()
at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

Собственно и перехватить никак не удаётся.

Спасибо:

Mikhail Sukhov

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


Тоесть, try catch на new QuikTrader не помогает?

Автор топика
Спасибо:

Alexander

Фотография
Дата: 17.05.2010
Ответить


да, совершенно верно, не помогает. в этом-то и проблема.
т.е. тут выхода 2 - либо ручками проверять всё что добавляю на уже
наличие уже добавленного элемента с таким ключом, либо - ловить это
исключение внутри S# и выкидывать исключение, которое уже я смогу
отловить (вроде это возможно).
С точки зрения архитектуры, на мой взгляд, второй вариант
предпочтительней.

Спасибо:

Mikhail Sukhov

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


Ага, не увидел. Действительно, дде работает в другом потоке.
Перехватить через try/catch не получится. Подумаю, как исправить
ошибку.

Автор топика
Спасибо:

skzuev

Фотография
Дата: 21.05.2010
Ответить


Добрый день,

Еще раз выражаю автору респект и глубокое уважение за проект :).

Хотелось бы узнать - каковы дальнейшие планы по развитию библиотеки?

Сергей.

Спасибо:

Mikhail Sukhov

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


Выпустить релиз 2.0 =)

Библиотека, в своей функциональности, развивается стихийно. Появилась
потребность - добавляется новая фича.

Глобально - покрыть еще Алор и Альфу. Думаю, на этом с терминалами
можно остановиться. Все остальное - "не ликвид".

Автор топика
Спасибо:

Alexander

Фотография
Дата: 22.05.2010
Ответить


У свойства Security.MinPrice неправильное описание - должно быть
"Нижний лимит цены." вместо верхнего лимита цены. =)

Спасибо:

Alexander

Фотография
Дата: 23.05.2010
Ответить


И будет здорово, если время работы биржи можно будет задавать самому -
сейчас, к примеру, прописано в библиотеке что РТС начинает торги в
10.30

Спасибо:

skzuev

Фотография
Дата: 24.05.2010
Ответить


А западные рынки/брокеры?

С уважением,
Сергей Зуев

Спасибо:

Mikhail Sukhov

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


1. Спасибо, описание поправил.
2. Хм, а для чего такое нужно? Давайте обсудим, может есть и более
правильный вариант, чем менять время реальной биржи.

Автор топика
Спасибо:

Mikhail Sukhov

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


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

А что, есть какое-то особое видение западного рынка (+предложение)?

Автор топика
Спасибо:

Alexander

Фотография
Дата: 24.05.2010
Ответить


2. К примеру, я это свойство использую в 2х местах - для менеджера,
отслеживающего разрывы соединений, и для проверки, входит ли время N в
торговое время.
Сейчас биржа РТС изменила открытие на 10.00, в библиотеке оно стоит в
10.30, т.е. сейчас эти проверки в 10.00-10.29 работают неверно,
приходится вставлять дополнительные проверки. Вот этого хочется
избежать в случае если биржа надумает ещё раз изменить время начала
торгов.
Т.е. можно тоже какой-то setter\getter сделать, с заданными по
умолчанию значениями.

Спасибо:

Mikhail Sukhov

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


Хм, логично. Хорошо, посмотрю, как сделать лучше изменение настроек
биржи. По идее, надо бы заводить свой собственные, потому что РТС -
это скорее абстрактная биржа, чем реальная. Потому что для S# главное
рынок - Срочный, Стандарт.

Автор топика
Спасибо:

Alexander

Фотография
Дата: 25.05.2010
Ответить


Ещё вопрос - как-нибудь можно получить время начала торгов?
К примеру, меня интересует первая свечка за сегодняшний день. Сейчас я
завожу элемент класса DateTime и иницилизирую поля сегодняшним годом
\месяцем\днём, а в поле час\минута\секунда вбиваю то, что мне надо
(10,0,0).
Как раз помимо самого диапазона торгов в WorkingTime было бы здорово
сделать получения Начала\Конца торгов из них. =)

Спасибо:

Mikhail Sukhov

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


Это можно и без функций S#:

var dateTime = DateTime.Today + exchange.WorkingTime.First().Min;

Автор топика
Спасибо:

Alexander

Фотография
Дата: 30.05.2010
Ответить


Спасибо за решение, теперь ждём новой версии с возможностью изменения
начала торгов или с правильным началом торгов РТС =)

Спасибо:

Alexander

Фотография
Дата: 30.05.2010
Ответить


Не хочется создавать новую тему, спрошу здесь, почему в примере
стратегии по SMA в методе OnRunning() вызывается base.OnRunned() а не
base.OnRunning()? Ведь по идее, состояние ещё не изменилось...

Спасибо:

Mikhail Sukhov

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


Все правильно. Спасибо - поправил. Теперь уже в двух примера - и под
Смарт.

Автор топика
Спасибо:


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

loading
clippy