Запускаем Visual Studio, переходим File — New project. Visual C# — Class library, не забываем поставить .NET Framework 2.0.
Добавляем ссылку на сборку WealthLab'a (WealthLab.dll). Add Reference — Browse — ищем папку с WLD (как правило, это c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\ ). Выбираем WealthLab.dll. Жмем OK.


- Создаем два класса.Один ИмяКлассаScript (переименовываем Class1.cs), другой ИмяКлассаHelper (добавляем новый — правый клик по имени проекта, Add — Class). В диалоговом окне подтверждения переименования жмем ОК. Получается так:

- Открываем ИмяКлассаScript. Добавляем директиву using WealthLab, наследуем класс от WealthScript, имплементим метод Execute() (можно нажать хоткей ALT-SHIFT-F10 затем ENTER). Должно получиться так:

- Открываем ИмяКлассаHelper. Добавляем директиву using WealthLab, наследуем класс от StrategyHelper, имплементим все свойства (можно нажать хоткей ALT-SHIFT-F10 затем ENTER). Заполняем свойства:
- Name — имя стратегии;
- Guid ID — правой кнопкой по имени проекта — свойства (последняя в списке), открывается окно свойств — вкладка Application — справа конпка «Assemble Information» — копируем GUID. Также здесь заполните свойство Description (например, укажите имя стратегии — Test Strategy.) Возвращаемся назад, вставляем скопированное;
- Author — автор;
- WealthScriptType — здесь вы должны указать тип вашей стратегии (ИмяКлассаScript).
- Description — описание стратегии;
- CreationDate — дата создания;
- LastModifiedDate — дата последней модификации стратегии.
Должно получиться так:

Правой кнопкой по имени проекта — свойства (последняя в списке), открывается окно свойств — вкладка Build, свойство Output Path — указываем путь к папке WLD — c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\
ИмяКлассаScript — пишем стратегию в методе Execute() — например, пересечение MA. Должно получиться так:

- Билдуем стратегию, ставим точки останова. Запускаем WLD, затем в студии выбираем в меню Debug — Attach to Proces, находим процесс wealthlabpro.exe и аттачимся к нему, в WLD жмем File — Open Strategy, ваша стратегия должна быть в корне, со специальной иконкой:

- Если график открыт, то стратегия сработает при нажатии кнопки ОК, если нет — то при открытии графика:

Done. Теперь вы можете удообно отлаживать стратегии, ставить точки останова, смотреть значения переменных. Для удобного аттача к wld'шному процессу можно использовать макрос:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
' 1. Tools > Macros > Macro IDE
' 2. Right Click MyMacros > Add > Add Module
' 3. Paste in the code below:
' 4. Rename the Macro file DebuggingMacros
' Enable the debug toolbar
' Click the dropdown on the far right and click «Add or Remove buttons» > click «Customize»
' Click «Add Command»
' Select Macro on the left panel
' Find the macro in the list on the right
' Click «ok»
' Click «Modify Selection» and rename the button
' * repeat for nunit macro
Public Module DebuggingMacros
Public Sub AttachToWealthlab()
Dim WLDAgent As String = «WealthLabPro.exe»
If Not AttachToProcess(WLDAgent) Then
System.Windows.Forms.MessageBox.Show(«Ca
n't find WLD-agent process»)
End If
End Sub
Public Function AttachToProcess(ByVal ProcessName As String) As Boolean
Dim Processes As EnvDTE.Processes = DTE.Debugger.LocalProcesses
Dim Process As EnvDTE.Process
Dim ProcessFound As Boolean = False
For Each Process In Processes
If (Process.Name.Substring(Process.Name.LastIndexOf("\") + 1) = ProcessName) Then
Process.Attach()
ProcessFound = True
End If
Next
AttachToProcess = ProcessFound
End Function
End Module
:[**:::right Автор статьи: AnCh
Comentários (22)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Если поискать то могу наверное найти правленную либу велслаба, которая позволит создавать свои визуальные конструкции на графике :), помимо встроенных. В свое время бла необходимость это делать :), подправил либу.
угу. всё на сайте WL вообщем-то всё есть...если вы про индикаторы
http://www2.wealth-lab.com/WL5WIKI/kbAskGlitchDebug.ashx http://personal.fidelity.com/products/trading/Trading_Platforms_Tools/pdf/Creating-an-Indicator-Library-in-Wealth.pdf
А вот подобные вещи реально сделать удобней? Перешёл с Amibroker и страдаю )
Уважаемые форумчане Помогите пожалуйста с такой проблемой
при попытке сделать Build
Error 1 Unable to copy file "obj\Debug\ClassLibrary2.dll" to "..............\Program Files (x86)\MS123\Wealth-Lab Developer 6\ClassLibrary2.dll". Access to the path '..............\Program Files (x86)\MS123\Wealth-Lab Developer 6\ClassLibrary2.dll' is denied. ClassLibrary2 права админские
Как ЭТО убрать
Заранее вам спасибо
ps Огромнейшее спасибо за такое подробное изложение материала.
WLD закройте когда перебилдовываете проект. Студия не может перезаписать файлы так как они открыты в WLD.
либо пишу другое место куда складывать файлы и в влд копирую вручную файлы созданной библиотеки либо вышеописанная ошибка .. в любом случае не появляется иконка в влд( кто сталкивался
VS -> Отладка -> запуск внешней программы -> найти Вэлс и указать При запуске отладки скрипта вэлс будет запускать студией и тушиться тоже ей
построение -> путь вывода -> дтректория вэлса
версия Net 2.0
нет ошибок, тупо в списке стратегий в влд не появляется как на скрине стратегия.. это конец
У меня тоже не появлялось. Пока не поставил Target framework - .NET Framework 3.0 у меня Wealt-lab Developer 5.4 для 6-ки работает .NET Framework 3.5
Спасибо за статью. А можно ли как то пересобирать длл без перезапуска Wealth-Lab'а? Перезапуск WL при каждом изменени кода убивает всю прелесть написания в Visual Studio =(
Дополнение к статье, может кому пригодится. Пересобирать длл без перезапуска WL у меня не получилось, но править код на лету, все-таки можно. Что для этого требуется: Нужно не присоединяться к запущенному процессу WLD, а запускать его из самой студии. Project -> Properties -> Debug В разделе Start Action выбрать Start external program, указать путь к WLD Проект нужно собирать под платформу x86 Project -> Properties -> Build Platform target: x86
Править код можно тогда, когда программа остановлась на бряке. Т.е. ставим бряк, запускаем стратегию в WLD, останавливаемся на бряке, правим код, снимаем бряк и запускаем стратегию.
На чем это работает у меня: Visual Studio 2008, WLD 6, Windows 7 64bit.
Ну метод запуска велса из студии я только такой и использую, а никак не подключение к процессу. А вот вы уверены что правленный код начинает работать в велсе??? У меня вот сомнение появляется по этой части.
Проверить ведь не долго =) У меня работает правленный код.
Клево. Тоже попробую. Может пригодится.
Подскажите что делать если после создания проекта в .NET 3.5 ссылки не видят файлы dll, а если в .NET 4 проект создавать то всё в порядке. Перед установкой 10 версии удалил 8-ую с помощью РеВоИнсталера, может он вычистил эти файлы. я уже и нетфреймворк переустанавливал, ничего не помогает.
Вообще велс 5.4 работает тока со вторым дотнетом. Так что прилепить туда какой-то другой проект я думаю не получится :)
получается и связку WL54 c VS нужно создавать на втором дотнете?
на втором