frontman
|
Дата: 26.10.2011
А что именно то не понятно? Как стопы выставлять? Или лимитированные заявки? Потому что все остальное это уже C#...
|
|
|
|
Спасибо:
|
|
|
|
|
|
Romant
|
Дата: 26.10.2011
У меня в голове цельная картина того, как правильно использовать S#, не собирается.
Чтобы она собралась, нужен листинг программы на шарпе с использованием S#, который бы реализовал описанную в терминах WLD3 логику. Документацию курил, пример с SMA курил - но собрать на основании этого систему с такой логикой, как в приведённом коде, не получается.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Alexander
|
Дата: 26.10.2011
Romant:
У меня в голове цельная картина того, как правильно использовать S#, не собирается.
Чтобы она собралась, нужен листинг программы на шарпе с использованием S#, который бы реализовал описанную в терминах WLD3 логику. Документацию курил, пример с SMA курил - но собрать на основании этого систему с такой логикой, как в приведённом коде, не получается.
Давайте конкретно - в чём проблема. Где возникают ошибки
"Проблема со всем" - не проблема.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Romant
|
Дата: 26.10.2011
Хорошо.
Вопрос первый: как выставить в квик stop и limit ордера, чтобы они в квике отработали так же, как они работают при симуляции в WLD3 ? В WLD3 это работает так:
BuyAtLimit(Bar, Price) - купить бумагу по цене, меньшей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
BuyAtStop(Bar, Price) - купить бумагу по цене, большей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
Вопрос второй: как проконтролировать выполнение этих ордеров (сработали/не сработали) ?
Вопрос третий: каким вообще образом верно организовывать робота, который априори работает с барами, а не с тиками ? Это я про использование событийной модели или же модели дискретного опроса.
Спасибо.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Alexander
|
Дата: 26.10.2011
|
|
|
|
|
Romant:
Хорошо.
Вопрос первый: как выставить в квик stop и limit ордера, чтобы они в квике отработали так же, как они работают при симуляции в WLD3 ? В WLD3 это работает так:
BuyAtLimit(Bar, Price) - купить бумагу по цене, меньшей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
BuyAtStop(Bar, Price) - купить бумагу по цене, большей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
Вопрос второй: как проконтролировать выполнение этих ордеров (сработали/не сработали) ?
Вопрос третий: каким вообще образом верно организовывать робота, который априори работает с барами, а не с тиками ? Это я про использование событийной модели или же модели дискретного опроса.
Спасибо.
- смотрите пример выставления стоп заявок. сделайте им время жизни (ExpiryDate) до конца текущего бара. Либо отслеживайте время вручную и вызывайте CancelOrder
- Документация, состояния заявок
- см. пример SampleSMA
|
|
|
|
Спасибо:
|
|
|
|
|
|
Romant
|
Дата: 26.10.2011
Александр,
Насколько я понимаю, авторы Stock# позиционируют данную библиотеку в качестве инструмента, достаточно простого в освоении, при условии знания C#. По моему опыту, миллиона вопросов можно избежать, сделав один пример, который бы включал в себя не только какой-то один компонент, а некую систему в совокупности. Это прекрасно, что Вы перечислили пункты (1), (2) и (3) - для меня это пока что ссылки на то, что я уже смотрел, но всё равно был вынужден задать вопрос на форуме.
В общем, спасибо :-)
|
|
|
|
Спасибо:
|
|
|
|
|
|
Alexander
|
Дата: 26.10.2011
|
|
|
|
|
Romant:
Александр,
Насколько я понимаю, авторы Stock# позиционируют данную библиотеку в качестве инструмента, достаточно простого в освоении, при условии знания C#. По моему опыту, миллиона вопросов можно избежать, сделав один пример, который бы включал в себя не только какой-то один компонент, а некую систему в совокупности. Это прекрасно, что Вы перечислили пункты (1), (2) и (3) - для меня это пока что ссылки на то, что я уже смотрел, но всё равно был вынужден задать вопрос на форуме.
В общем, спасибо :-)
Да, мы позиционируем Stock# как простую библиотеку для написания роботов.
Вы предлагаете нам написать примеры на все случаи жизни? Это не удастся сделать.
Что нам лучше - писать тысячи примеров или всё же вводить новую функциональность в Stock#, исправлять существующие проблемы?
Примеры может написать любой пользователь - пишите, мы их готовы включать в библиотеку. Примеры к тому же на codeplex все выложили - доступны для правки.
Не смотря на то что вы смотрели - у вас возникли вопросы. Так и с примерами - напишем, но будут спрашивать то, на что есть ответы в примерах или документации.
А так - тот десяток примеров, которые мы написали, покрывает половину случаев точно - и инструменты для тестирования, и опционов, и стратегии.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Romant
|
Дата: 26.10.2011
Я отдаю себе отчёт, что продукт бесплатен, но тем не менее ...
Поскольку я сам разработчик, мне понятно, почему Ваш ответ именно таков – но мне так же понятно, что причины этого ответа не в том, что всё время уходит на добавление фичей и правку багов, а в том, что саппортом девелоперу заниматься, как правило, не хочется. В переписке с одним из членов команды стокшарп, когда я пытался решить для себя, стоит ли инвестировать время в освоение продукта, было сказано, что на форуме, по мере возможности, поддержка юзеров осуществляется. Думаю, что Вы сами, как разработчик, едва ли будете вдохновлены ответом поддержки в стиле «мы очень заняты, делаем новые фичи, а вы читайте доку».
|
|
|
|
Спасибо:
|
|
|
|
|
|
Alexander
|
Дата: 26.10.2011
|
|
|
|
|
Romant:
Я отдаю себе отчёт, что продукт бесплатен, но тем не менее ...
Поскольку я сам разработчик, мне понятно, почему Ваш ответ именно таков – но мне так же понятно, что причины этого ответа не в том, что всё время уходит на добавление фичей и правку багов, а в том, что саппортом девелоперу заниматься, как правило, не хочется. В переписке с одним из членов команды стокшарп, когда я пытался решить для себя, стоит ли инвестировать время в освоение продукта, было сказано, что на форуме, по мере возможности, поддержка юзеров осуществляется. Думаю, что Вы сами, как разработчик, едва ли будете вдохновлены ответом поддержки в стиле «мы очень заняты, делаем новые фичи, а вы читайте доку».
Роман, думаю вы не будете спорить с тем, что у нас поддержка одна из лучших на российском рынке.
Покажите хоть сколько-нибудь похожее.
На какие вопросы я не ответил?
Если по 3му вопросу - то в SampleSma идёт именно работа с барами.
По 2му - чётко дан ответ по поводу того как понять исполнилась ли заявка, отменена ли или ещё что
По 1му - лимит и стоп ордера выставляются в большинстве примеров на квик. как сделать так чтоб снималась по истечению бара - дал 2 решения.
Что ещё?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Supervisor
|
Дата: 26.10.2011
Romant:
Вопрос первый: как выставить в квик stop и limit ордера, чтобы они в квике отработали так же, как они работают при симуляции в WLD3 ? В WLD3 это работает так:
BuyAtLimit(Bar, Price) - купить бумагу по цене, меньшей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
BuyAtStop(Bar, Price) - купить бумагу по цене, большей или равной Price, в течение бара Bar; если купить не получилось и бар кончился, то ордер не срабатывает.
Условно для BuyAtLimit(Bar, Price):
var order = new Order
{
Portfolio = _portfolio,
Price = _price,
Security = _security,
Volume = 1,
Direction = OrderDirections.Buy,
CancelTime = _currentTime + _timeframe,
};
trader.RegisterOrder(order);
Для BuyAtStop несколько хитрее.
|
|
|
|
Спасибо:
|
|
|
|
|