1. Запускаем Visual Studio, переходим File — New project. Visual C# — Class library, не забываем поставить .NET Framework 2.0.
2. Добавляем ссылку на сборку WealthLab'a (WealthLab.dll). Add Reference — Browse — ищем папку с WLD (как правило, это c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\ ). Выбираем WealthLab.dll. Жмем OK.
3. Создаем два класса.Один ИмяКлассаScript (переименовываем Class1.cs), другой ИмяКлассаHelper (добавляем новый — правый клик по имени проекта, Add — Class). В диалоговом окне подтверждения переименования жмем ОК. Получается так:
4. Открываем ИмяКлассаScript. Добавляем директиву using WealthLab, наследуем класс от WealthScript, имплементим метод Execute() (можно нажать хоткей ALT-SHIFT-F10 затем ENTER). Должно получиться так:
5. Открываем ИмяКлассаHelper. Добавляем директиву using WealthLab, наследуем класс от StrategyHelper, имплементим все свойства (можно нажать хоткей ALT-SHIFT-F10 затем ENTER). Заполняем свойства:
- Name — имя стратегии;
- Guid ID — правой кнопкой по имени проекта — свойства (последняя в списке), открывается окно свойств — вкладка Application — справа конпка «Assemble Information» — копируем GUID. Также здесь заполните свойство Description (например, укажите имя стратегии — Test Strategy.) Возвращаемся назад, вставляем скопированное;
- Author — автор;
- WealthScriptType — здесь вы должны указать тип вашей стратегии (ИмяКлассаScript).
- Description — описание стратегии;
- CreationDate — дата создания;
- LastModifiedDate — дата последней модификации стратегии.
Должно получиться так:
6. Правой кнопкой по имени проекта — свойства (последняя в списке), открывается окно свойств — вкладка Build, свойство Output Path — указываем путь к папке WLD — c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\
7. ИмяКлассаScript — пишем стратегию в методе Execute() — например, пересечение MA. Должно получиться так:
8. Билдуем стратегию, ставим точки останова. Запускаем WLD, затем в студии выбираем в меню Debug — Attach to Proces, находим процесс wealthlabpro.exe и аттачимся к нему, в WLD жмем File — Open Strategy, ваша стратегия должна быть в корне, со специальной иконкой:
9. Если график открыт, то стратегия сработает при нажатии кнопки ОК, если нет — то при открытии графика:
Done. Теперь вы можете удообно отлаживать стратегии, ставить точки останова, смотреть значения переменных.
Для удобного аттача к wld'шному процессу можно использовать макрос:
Code
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
Автор статьи: AnCh