Блог им. AnCh

Отладка стратегий WealthLab в Visual Studio

    • 13 мая 2012, 13:03
    • |
    • AnCh
  • Еще

1. Запускаем студию, меню File — New project. Visual C# — Class library, не забываем поставить .NET Framework 2.0.

Отладка стратегий WealthLab в Visual Studio

2. Добавляем ссылку на сборку WealthLab'a (WealthLab.dll). Add Reference — Browse — ищем папку с WLD (как правило это c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\ ). Выбираем WealthLab.dll. Жмем OK.


Отладка стратегий WealthLab в Visual Studio

Отладка стратегий WealthLab в Visual Studio

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

Отладка стратегий WealthLab в Visual Studio

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

Отладка стратегий WealthLab в Visual Studio
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 — дата последней модификации стратегии.

Должно получится так:

Отладка стратегий WealthLab в Visual Studio

6. Правой кнопкой по имени проекта — свойства (последняя в списке), открывается окно свойств — вкладка Build, свойство Output Path — указываем путь к папке WLD — c:\Program Files (x86)\Fidelity Investments\Wealth-Lab Pro 5\

7. ИмяКлассаScript — пишем стратегию в методе Execute() — например, пересечение MA. Должно получится так:

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

Отладка стратегий WealthLab в Visual Studio

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

Отладка стратегий WealthLab в Visual Studio

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
323 | ★56
19 комментариев
Спасибо, пригодится!!!
Очень интересная статья. Сейчас смотрю с телефона, но обязательно попробую, т.к.
AnnotateBar использовать для отладки уже надоедает:) Спасибо.
avatar
Отличная статья +
avatar
Добавил в избранное )
А может кто подскажет, где крякнутый WealthLab 6 есть? с нескольких торрентов скачивал, но крек только под WealthLab 5, которая, при инсталляции автоматически обновляется до 6 икрек слетает((
avatar
Awesome_Trade, 6ки взломанной нету, и похоже не будет, поскольку вышла давно.
Но сама платформа настолько дубовая и ограниченная что не стоит того
avatar
wavelet, а ты что используешь? WL 4 на паскале или (упаси боже) TS-Lab?
avatar
Awesome_Trade, oq + stock#
avatar
Спасибо! (+)
Плюс!
avatar
Спасибо!
avatar
Вопрос технический.
Сделал все по инструкции. Все билдуется, файлы в папке ВЛД есть. НО ВЛД не видет их? запускал ВЛД под админом, но ситуация аналогичная. ВЛД 6.3 стоит.
Как решить данную проблему?
avatar
ALTER, Для того такую подробную инструкцию и делал чтобы все могли разобраться. Не знаю — перепроверьте net 2.0, именования классов.
avatar
у меня ламерский вопрос: А что в экспрес версии вижуал студио нет функции присоединить велзлаб?
avatar
traderstas, перефразирую: А что в экспрес версии вижуал студио нет функции attach to process?
avatar
traderstas, нет под рукой экспресс выпуска. не знаю. поопробуйте ctrl+alt+p.
avatar
AnCh, установил ultimate нормально заработало. Теперь проблема в Дебаге. Без выгрузки Велза не хочет обновлять правленый код.
avatar
ALTER, 6-ка на NET 3.5
avatar
@sicuro, Как производить генерацию кода в VS, скажи-ка лучше!?
avatar

Читайте на SMART-LAB:
Инвестиции без спешки: торгуем в выходные
Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят выходные дни. В...
Фото
Полисы ДМС дорожают ускоренными темпами
Газета «Коммерсант» выпустила материал на тему добровольного медицинского страхования (ДМС). Рынок ДМС в 2026 году вошёл в фазу ускоренного...
Банковские ограничения усилили переток заемщиков в МФО
По данным маркетплейса Выберу.ру, в январе спрос на микрозаймы увеличился на 34% в годовом выражении (г/г), а в феврале рост замедлился до 6% г/г и...
Оперативная заметка с полей облигационной конференции для клиентов Mozgovik Research
Доброго дня, уважаемые читатели Mozgovik Research. Для вас хотел коротко и оперативно поделиться основными идеями, которые успел услышать на...

теги блога AnCh

....все тэги



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