Чуть-чуть углубившись в
Wealth-Lab, сразу стало понятно, что геморроя тут будет больше, чем в
TSLabe. Конечно в последнем я тоже испытывал некоторые трудности, но не тратил столько времени на их преодоление.
1.
Данные по фьючерсу РТС в Wealth-Lab мы импортировали.
2. Соответственно построили график. Как рисовать на графике или как построить индикатор — труда не вызывает. Более того, если потыкаться, можно даже увидеть код на языке программирования.
Язык в WLD почему-то называется Wealth-Script, а не C#. Ну это наверное как Stocksharp назвали свою библиотеку S#, то разработчики WLD назвали свой набор WealthScript, при этом используется семантика C#.
Если мы начнем ковырять все подряд пункты меню, то обнаружим возможность строить торговую стратегию
на основе простых правил. Это для меня оказалось новостью, потому что я думал что в WLD можно только запрограммировать свою стратегию.
File->New->New Strategy From Rules (Ctrl+Shift+R).
Ну вот собственно об этом видео и о том геморрое, с которым я столкнулся. Видео для таких же лохов как я, либо для тех, кто вообще не работал с wealth-lab
Краткое содержание:
1. как быстро создать свою стратегию в
Wealth-Lab из правил
2. как запустить стратегию в Wealth-Lab
3. как посмотреть код стратегии
Вот кусок полученного текста программы с моими попытками разобраться в нем:
В целом, начать работу в
TSlab конечно удалось намного быстрее.
Для этого было достаточно просмотреть 1 обучающий вебинар и поковырятсья с хелпом, который хоть и не совершенен, но все же написан на русском языке.
С другой стороны, по велслабу я знаю, если что, где найти обучающий материал о том, как составить программу (тот же обучающий курс Дмитрия Власова и Игоря Чечета), а вот с TSLab'ом пока не знаю как выйти за рамки визуального составления алгоритмов из блок-схем.
Вопросы которые у меня есть на данный момент:
- как связать код WLD с кодом VS? (ответ на этот вопрос получил из каментов, ссылка: http://anch-s-journal.livejournal.com/14388.html)
- зачем нужен VS если в WLD есть встроенный компилятор?
- непонятно где хранится код, который мы открыли в WLD и в каком формате он хранится...
- а не сужает ли круг возможностей программирование в рамках т.н. wealth-Script?
- чем Stocksharp лучше или ваще отличается принципиально от WLD и его возможностей
if(Date[bar].Hour >= 11 && Date[bar].Hour <= 19)…
В 5.4 хранился в файле на диске. Файл xml формата.
зачем нужен VS если в WLD есть встроенный компилятор?
В 5.4 vs можно использовать для отладки. Я вообще все страты пишу в vs — там удобнее. Wl только для отображения сделок На графике.
public int GetTime(int bar)
{
return Date[bar].Hour * 100 + Date[bar].Minute;
}
Затем использовать например так:
if (GetTime(bar)>=1100 && GetTime(bar)<=1840 )
{
//
}
5.4 используешь хакнутый?
Раньше просто в wl писал.
Иначе 6 использовал бы
А преимущест по сути только удобные графики. По этому использую только их
разница как между вордом и блокнотом, но если кодить что-то не сложное VS реально не нужен
2) непонятно где хранится код, который мы открыли в WLD и в каком формате он хранится…
C:\Users\<Твой юзер в винде>\AppData\Roaming\Fidelity Investments\WealthLabDev\1.0.0.0\Data\Strategies
хранится в формате XML, не знаю почему, и это, нужно скрытые папки сделать видимыми чтобы туда зайти
3) а не сужает ли круг возможностей программирование в рамках т.н. wealth-Script?
сужает немного, иногда выходится быдлокодить чтобы обойти это, но это все же лучше чем изобретание собственных велосипедов
4) чем Stocksharp лучше или ваще отличается принципиально от WLD и его возможностей
гибче и быстрее, S# это чистый C# без примесей :)
1)Если уже и вступать на путь .NET программирования, лучше это делать в «родной» среде, являющейся стандартом де-факто и де-юро :) Наверняка, совсем скоро, любому юннату захочется превратить свой код в настоящий проект, либо консольный, либо WinForms…
2)хранится в формате XML, не знаю почему...
«XML-файлы и файлы других расширений, основанные на языке XML, получили очень широкое распространение. В XML-файлах хранятся самые различные данные — от настроек приложений до баз данных. Файлы на основе XML используются для обмена информацией в Интернете и между программами (для этого данный язык разметки и был изначально задуман). Т.к. файлы формата XML содержат текстовые данные, их можно легко отредактировать в любом текстовом редакторе.»
3)Представим себе, что стратегия и её WL-код созданы, что дальше??? Разве не возникнет необходимости в создании настоящего приложения?
А где его создавать, как не в VS?
4)K VS можно подключить как WL, так и S#…
хм… я кстати раньше вам говорил (http://smart-lab.ru/blog/92537.php) про этот генератор скриптов, что писать роботов лучше учиться у него. Это самый эффективный путь.
где подробнее почитать?
stocksharp.com/
Вообще то посвечное эквити стратегии — это правильно по сравнению со статистикой сделок и посделочной эквити.
Так что логика WLB в этой части правильная. Другое дело, что меня этот скрипт не устраивает из-за DataSeries, так как не каждый алгоритм ложится на операции с массивами, а выборка конечного подмассива из DataSeries на каждом шаге работы стратегии — это жуткие «тормоза».
Вообще то в WLD можно и с тиками работать, а совершать сделку на поступившем тике с внесением его в условия совершения сделки — это заглядывание в будущее. Поэтому то, что совершить сделку можно только на следующем тике — это правильно.
просто дело в том, что большинство стратегий тестируется на истории… которая состоит только из свечей.
У любого алгоритма есть решение сменить позицию (совершить сделку) и не менять позицию и эти решения
а. равнозначны по важности
б. совершаются по тактам поступления новой информации
Именно отсюда и следует, что с точки зрения оценки качества торгового алгоритма надо смотреть на все такты поступления новой информации, а не только на те, когда совершались сделки.
Опять же повторюсь что писал вам раньше (http://smart-lab.ru/blog/92537.php), что полезно почитать хелп-велзлабовский (за 4 часа прочитаете всё, это полезный хелп польза/время). Заходите HELP -> WealthscriptQuickRef -> там это всё есть
про «Group1» — верно, это лишь метка ордера чтобы отличать одни от других
a затем давать ссылку на сам код :)
1) Сначала открыть скрытые папки:
— В проводнике нажать «Alt»
— В появившемся меню выбрать «Сервис» — Параметры папок…
— Перейти на закладку «ВИд»
— Переместиться вниз и в самом низу выбрать «Показывать скрытые файлы, папки и диски, а также убрать флажок с „Скрывать защищенные системные файлы
— нажать “ОК».
2) Переходим: С:\Пользователии\<Конкретный пользователь>\AppData\Roaming\Fidelity Investments\WealthLabDev\1.0.0.0\Data\Strategies
В папках, которые увидите как раз и будут храниться файлы с расширением .xml — в которых находятся стратегии…
Кстати в папке С:\Пользователии\<Конкретный пользователь>\AppData\Roaming\Fidelity Investments\WealthLabDev\1.0.0.0\Data\
Можно найти папку с провайдерами данных (к примеру FinamProvider) — где хранятся файлы котировок…
1. В курсе есть переведенная инструкция по разработке от Дмитрия Власова. Адскую работу Дмитрий проделал, зато на выходе имеем 135 страниц качественно переведенного материала по разработке. Воспользуйся им, тогда будет легче разбираться в WLD.
2. Также в курсе есть отдельное видео по настройке связки между WLD и VS. Работает со всеми версиями WLD и VS.
3. В курсе есть учебные ТС. Посмотри их, разбери, погоняй. Потом сможешь любую ТС сделать сам.
Что касается вопросов:
1. C# — это стандартизованный по ISO язык программирования. На нем можно написать все, что угодно. Microsoft выдает .NET Framework. В нем много чего есть. Здесь нас больше интересуют уже готовые библиотеки классов. Например, хочешь ты поработать со временем — пожалуйста, есть класс DateTime. Хочешь поработать с математикой — тебе в помощь класс Math. Разработчикам WLD осталось только написать свою библиотеку, которую назвали WealthScript. С ней ты и будешь работать, чтобы получать данные из свечек, индикаторов, заходить в позиции и выходить из них. Как только потребуется еще что-то — весь .NET Framework к твоим услугам.
2. VS я использую для создания ТС, индикаторов и трейдерских компонент. Индикаторы и компоненты в исходных кодах выложены у меня на форуме, можешь их скачать и поизучать. Когда ты пишешь простые ТС, тогда все равно, где их писать. Если ТС посложнее с замысловатой логикой, тогда будет полезна отладка из VS. Ставишь точки останова, запускаешь свой проект, он подгружает WLD. В WLD запускаешь ТС, как она дойдет до точки останова, сразу откроется VS, где ты сможешь посмотреть все значения переменных, пройти код по шагам. Очень хорошо для нахождения ошибок кодирования. Вторая «фишка» VS — это представление твоих ТС в виде библиотеки. На выходе у тебя будет DLL файл. Можешь его спокойно переносить с компьютера на компьютер. Третья причина использования VS — это удобство разработки. Помощь в выборе переменных, свойств и методов (Intellisence), автоматическое форматирование кода, лучшая визуализация. Очень сильно сокращается время написания кода.
3. Почему ТС, написанные в WLD, хранятся в XML. Ответ прост. XML — стандарт для описания структуры данных и самих данных. Если в ТС есть параметры, то для каждого тикера можно задать Preferred Values. Проще всего взять код ТС, загнать его в XML, туда же заносить все значения параметров оптимизации для каждого тикера.
Здесь такая конструкция используется просто из-за того, что в WLD для правил писали универсальный код. Смысла для данной ТС он не имеет. Но вот если бы ты в правилах определил бы многопозиционную ТС, тогда по Group1 искалась бы позиция.