Блог им. 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
322 | ★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:
Фото
🔔 Информация о выплате купонного дохода для наших инвесторов
Сегодня, 19 февраля, ООО МФК «ПСБ Финанс» выплатило купонный доход по облигациям ПСБ Фин2P2 (RU000A10E4G8) за купонный период с...
Самолет лидер по объему ввода жилья в МО
Друзья, привет! Продолжаем делиться своими результатами. 🚀 По данным Главстройнадзора МО , мы стали лидером по объемам ввода  жилья в...
Фото
Макро индикаторы по США подкрепляют кейс дальнейшего роста доллара
Европейские валюты активно сдают позиции после публикации ряда индикаторов по рынку труда, внешней торговле и производственной активности в...
Фото
Россети Ленэнерго. Отчет об исполнении инвестпрограммы за Q4 2025г. Опасения оправдались - обесценение съело прибыль
Компания Россети Ленэнерго опубликовала отчет об исполнении инвестпрограммы за Q4 2025г., где показаны финансовые показатели компании по...

теги блога AnCh

....все тэги



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