Блог им. VDV

Русская инструкция по программированию торговых стратегий в программе Wealth-Lab 6.3 (WealthScript, C#)

Уважаемые читатели Smart-Lab. Здесь собралось трейдерское сообщество и приверженцы разных стилей торговли. Сегодняшний пост будет интересен тем, кто торгует системно и использует для построения и тестирования торговых стратегий программу Wealth-Lab.

Многие из Вас пользуются этой программой (как по официальной лицензии, так и всякими левыми способами), однако полноценной инструкции по программированию стратегий в велсе на русском языке с помощью C# и WealthScript — не существует. Во всяком случае мне найти не удалось.

Русская инструкция по программированию торговых стратегий в программе Wealth-Lab 6.3 (WealthScript, C#)

Для тех, кто владеет английским — это не проблема, т.к. существует WealthScriptGuide — очень хорошее описание о том, как программно строить такие торговые стратегии в Велсе. Но думаю, что знатоков английского не так уж и много.

Чтобы не было путаницы, скажу, что есть русский перевод WlNetUserGuide — этот перевод можно было получить на сайте Цериха после предварительного запроса и оставления своих данных.

Однако сейчас, после того, как Церих перестал предоставлять своим клиентом брокер адаптер для Велс Лаба и после ухода оттуда Арсена Яковлева не знаю — предоставляют ли они эту инструкцию.

Да и инструкция эта (WlNetUserGuide) просто рассказывает о программе, она предназначена для общего знакомства с программой, а не для тех, кто хочет сам программировать стратегии на C#.

Исходя из этих соображений я решил самостоятельно перевести и снабдить примерами с российского рынка ценных бумаг  инструкцию по программированию торговых стратегий в программе WealthLab.

Сразу скажу, для чего это делаю:

Во-первых, в последнее время я усиленно изучаю английский язык. А учить язык всегда легче, если применяешь его для того, что тебе действительно интересно. В моем случае, это без сомнения трейдинг и торговые стратегии.
 
Во-вторых, я изучаю еще один язык — язык программирования C#. А весь код для программирования стратегий в программе ВелсЛаб как раз приходится писать на этом языке программирования.

В-третьих, надеюсь эта инструкция будет полезной для Вас — ведь многие хотят строить и тестировать собственные торговые стратегии, но не владеют английским языком.

Хочу сразу предупредить, что скорее всего это будет не дословный перевод. Некоторые предложения я буду пытаться построить так, чтобы их можно было читать и понимать проще всего.
Если увидите какие-либо ошибки или Вам что-то покажется не совсем ясно — пишите об этом в комментариях — с удовольствием поправлю.

Уже переведенные части инструкции по программированию торговых стратегий в Велс Лаб я выкладываю на своем блоге в этом разделе: finlabportal.ru/category/wealthscript/ 
Тем, кто хочет своевременно получать новые статьи с переводом инструкции по программированию торговых стратегий в Велс Лаб — можете воспользоваться RSS-подпиской.


Не знаю, нужно ли будет дублировать эту информацию здесь — на СмартЛабе, либо ограничиваться анонсами при переводе некоторого количества новых глав.

В общем, кому интересна эта затея — отпишитесь и заходите в гости. 
★55
47 комментариев
Если знать C#, то разобраться с Велсом — пару дней делов без каких либо инструкций. Если не знать C#, то эта инструкция не поможет.
avatar
reist, плюсанул топик, так как старания все ровно должны быть оценены.
avatar
reist, Ну, пару дней по-любому не хватит. Для тех, кто изучает C# — будет полезно. Во всяком случае мне, если бы попалась такая инструкция когда только начинал — точно пригодилась бы. Но я не навязываю — кто хочет — посмотрит, кто нет — пропустит этот пост без внимания.
reist, минус за «инструкция не поможет»
Dimanite, знания C# — это не просто знание ключевых слов, а понимание структуры работы программ. Тут не бывает инструкций. Есть только длительное и кропотливое изучение программирования.
avatar
Однозначно да инструкции! Перевод желательно дословный конечно…
avatar
Jetta, Ну а в том виде, что сейчас — понятно читается?
Дмитрий Власов, да конечно, то что надо!!!
avatar
Программист без знания английского, достаточного для прочтения подобных инструкций — нонсенс. Считаю вашу работу бесполезной. К тому же английский намного лучше подходит для восприятия таких инструкций.
avatar
w5346c, для меня полезен процесс перевода уже тем, что в процессе я изучаю и английский и C#. А получившаяся инструкция на русском — как побочный продукт. Но может и он кому пригодится, ведь поможет делать стратегии НЕ программистам.
Дмитрий Власов, Заранее спасибо за труд.
avatar
*** Во-первых, в последнее время я усиленно изучаю английский язык ***

Перевод технической литературы для целей изучения языка — это худший способ изучения языка.
avatar
w5346c, для того, чтобы говорить — согласен. Для того, чтобы понимать специальную литературу — думаю — один из лучших способов. Но как говорится, Jedem das seine
Дмитрий Власов, Вы не могли поделиться с тем, как писать код стратегии в Visual Studio? (или это отсюда www2.wealth-lab.com/WIKI/kbAskGlitchDebug.ashx?)
avatar
Jetta, Вот когда то с Цериховского форума сохранял себе:

Краткая инструкция:
Чтобы отлаживать стратегии в VS, необходимо выполнить следующие действия:
1. В Visual Studio создать новый проект типа «библиотека классов».
2. Добавить ссылку на основную сборку WL (WealthLab.dll)
3. Изменить в свойствах проекта путь построения сборки (вкладка Build -> Output Path) на путь папки Wealth Lab (напр., C:\Program Files\MS123\Wealth-Lab Developer 5\) и стартовое действие (вкладка Debug -> Start Action) на запуск Wealth.
4. Создать класс, наследующий от WealthScript (в нём перегрузить метод Execute()) и класс, наследующий от StrategyHelper (в нём перегрузить свойства Name, ID, Author, WealthScriptType, Description, CreationDate, LastModifiedDate).
Теперь можно запускать проект. Откроется Wealth Lab. При нажатии на кнопку Open Strategy появится список стратегий, в который будет включена созданная в Visual Studio стратегия, после чего можно ставить точки останова в VS, запускать стратегию из WLD и отлаживать её.
Дмитрий Власов, Спасибо! Сохранил)
avatar
Jetta, Вот здесь подробно процесс описывал, как можно стратегию в Visual Studio делать + немного об обучении C#: finlabportal.ru/2010/03/kak-zapisat-kod-torgovoj-sistem-v-wealth-lab-5-4-ili-kak-zarabotat-100-godovyx-sovershaya-3-sdelki-v-mesyac-chast-2-kod-dlya-wld/
w5346c, к чему этот снобизм! По первому образованию программист, и мне просто все это дается. У программеров странная психология — ясно, что пока САМ не начнешь писать ничего не получится, хоть обчитайсяи обсмотрись чужого кода. Люди часто комплексуют и боятся задачи кодинга — и им надо помогать вот такими инструкциями с разжовыванием конкретных примеров для решения конкретной задачи. Некоторые талантливые управляющие не умеющие программить чисто психологически бояться взяться за этот труд, и тут достаточно небольшого пинка в виде порстой и понятной инструкции, самый минимум. Чего-то я повторяюсь )))
aandreich, яф писал не про пользу инструкции, а про пользу ее перевода на русский :)
avatar
Дмитрий Власов, Молодец! (+)
Не в качестве рекламы, а для начинающих советую блог Игоря Чечета — chechet.org Код чистый и качественный с комментариями.
aandreich, Да, блог Игоря Чечета — самый лучший для тех, кто Велс изучает. Кроме того он безвозмездно код выкладывает, причем код этот по структуре мне нравится больше, чем тот, который в Велс Лаб по умолчанию дан. Сам у него очень многому научился.
Подскажите пожалуйста начинающему… какой язык программирования лучше сейчас начать изучать?
IleDar Gindullin, В статье прямо цитатой выделено:
Решаете, какой .NET язык программирования начать изучать?

Мы рекомендуем для новичков посетить курсы по программированию на языке C#. Ведь именно C# это действительно современный, предназначенный для .NET язык программирования, который вобрал в себя все лучшее из других языков программирования. Если Вы уже программировали раньше, то изучение языка C# не составит для Вас труда.
Дмитрий не вводите людей в заблуждение! Понимаю, Вы продвигаете курсы, не исключаю толковые и грамотные. Пожалуйста делайте это чуток «потоньше» :-))))
aandreich, Я никакие курсы не продвигаю. Не надо искать подвох там, где его нет.
aandreich, Эта цитата «мы рекомендуем для новичков посетить курсы по программированию на языке C#» просто перевод этой инструкции… :-)
Дмитрий Власов! Прошу прощения ))) неправильно понял Вас )))
IleDar Gindullin. К сожалению для новичков только C#: 1. Есть stock sharp — удобно и быстро делать торговый блок. 2. Наличие ТСлаб и Велсы. В реальности, для серьезной работы только C++ MatLab, R.
aandreich, ну и чем же С++ лучше C# для написания роботов?
Кроме незначительного преимущества в скорости — никакого.
Не вводите людей в заблуждение!
mirovan, собственно этого я и не писал. Тролить или поддевать никого не хотел.
Прошерстите западные вакансии и требования к программистам для HFT.
Тут вопрос в том чего человек хочет, какие цели ставит. С# хорош для определенных задач :-)) Ни в одну западную контору вас на такие задачи не возьмут с С#.
aandreich, западные вакансии, могучий С++ — мифы 21 века. На западных форумах тот же C# уже давно. Прошли времена, когда брали всех подряд. Теперь берут тех, кто дешевле. C# дешевле C++, а может даже больше.
avatar
На роль рупора демократии не претендую :-) Цель была дать человеку больше информации для анализа, чтобы мог оценить и выбрать направлении в соответствии с тем, что хочет делать. Не более! Сам сейчас программирую на C# и только на нем, С++ запустил и сильно, о чем сожалею сейчас. Про перспективы С# — каждому свое, если так — замечательно, больше толковых молодых людей получит хорошую работу. Мои доводы основываются на общении с западными управляющими — рассказывали как работаю что делают. Активная фаза общения была на предыдущем месте, пару лет назад, сейчас возможно все поменялось )) Так что все ИМХО.
reist, aandreich, тут конечно можно холивар устроить по-поводу языков :)
Робота же можно писать хоть на Delphi, хоть на VBA (в силу своих возможностей). Главное выбирать инструмент под задачу.
mirovan. Согласен, главное быстро и качественно решить задачу. Сам, в свое время и на том и на другом реализовывал роботов.
Попытаюсь как то резюмировать:
С#:
1. Прост в освоении
2. Для исследования систем на велсе и тслаб
3. Быстро и без замарачек написать робота под задачу StockSharp в помощь.
С++:
1. Кросс-платформенность.
2. Совокупная стоимость ИТ решения, и реализация работы в RealTime — для западных контор, если туда нацелились.
3. QUDA, многопоточные задачи, работа с облаками и кластерами.
4. Очень быстро развивается стандарт, меллко мягкие не поспевают.
aandreich,

вы не поверите, но

3. Правильное название CUDA. И оно есть для C#. Использование CUDA одинаково по скорости и из C++ и из C#. Потому что там свой язык и свой процессоры.
4. Практически не развивается лет 20.
avatar
+1 Каюсь, поймали меня грешного!
«Приятный звучный и очень настойчивый баритон послышался из ложи N 2:
— Все-таки желательно, гражданин артист, чтобы вы незамедлительно
разоблачили бы перед зрителями технику ваших фокусов, в особенности фокус с
денежными бумажками.»
aandreich, Булгаков? Нет?)))
avatar
aandreich, зачем Запад?) Все для себя!) Для исследования систем можно хоть Excell, Matlab…
Вопрос в другом, как для себя «трейдера» написать торгового робота?
avatar
aandreich, вы используете С++,Matlab,R?
avatar
Лично я нет, но парни в команде используют активно. В основном для HFT, попробуйте на велсе на минутках скальпера написать :-))) С# к сожалению из-за мелко-мягкого индуского кода иногда проваливается в бездну по времени, никакие профилировщики не спасают.
aandreich, а кто пытается написать HFT стратегию в велсе? Тут скорее всего стратегии от интрадейной и далее. Что-то другое, то Matlab,R для исследований, тестирования самое то…
avatar
Ровно тоже самое и пытался сказать :-))) Корявенько по ходу :-)))
aandreich, С++,HFT хорошо, но обычному «трейдеру» не по карману будет содержать всю инфраструктуру, да и не нужно это. Для интрадея и др., C# и WealthLab самое верное решение. Тестинг, и робот далее на C#.
avatar
Спасибо! Плюсанул)

теги блога Дмитрий Власов

....все тэги



UPDONW
Новый дизайн