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; если купить не получилось и бар кончился, то ордер не срабатывает.
Вопрос второй: как проконтролировать выполнение этих ордеров (сработали/не сработали) ?
Вопрос третий: каким вообще образом верно организовывать робота, который априори работает с барами, а не с тиками ? Это я про использование событийной модели или же модели дискретного опроса.
Спасибо. 1) смотрите пример выставления стоп заявок. сделайте им время жизни (ExpiryDate) до конца текущего бара. Либо отслеживайте время вручную и вызывайте CancelOrder 2) Документация, состояния заявок3) см. пример 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 несколько хитрее.
|
|
Спасибо:
|
|
|
|