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

7/23/2010 8:35:17 PM
Gravatar
Total Posts 2

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

Здравствуйте!

Не могли бы вы описать, как происходит процесс отладки стратегий Wealth-Lab в среде Visual Studio? Нашёл 2 статьи на эту тему,

http://wl4.wealth-lab.com/cgi-bin/WealthLab.DLL/getpage?page=AskGlitch.htm

и

http://www2.wealth-lab.com/WL5WIKI/kbDebugExpress.ashx

но моих знаний пока не хватает реализовать то, что там написано. В идеале, хотелось бы найти поэтапное описание процесса создания стратегий в Visual Studio для Wealth-Lab.

Спасибо!

7/23/2010 10:37:24 PM
Gravatar
Total Posts 25

RE:Отладка стратегий WLD в Visual Studio

VisualStudio - это инструмент для профессиональных программистов, и если Вы хотите его использовать, Вам придется разобраться во всех тонкостях.

К сожалению, научить Вас в двух словах на форуме невозможно. Очень желательно прочитать какой-нибудь учебник по С#. Можем порекомендовать, скажем, "Основы языка C#" в MSDN: http://msdn.microsoft.com/ru-ru/library/zkxk2fwf.aspx

Краткая инструкция:

Чтобы отлаживать стратегии в VS, необходимо выполнить следующие действия:

1. В Visual Studio создать новый проект типа «библиотека классов».

2. Добавить ссылку на основную сборку WL (WealthLab.dll)

3. Изменить в свойствах проекта путь построения сборки (вкладка Build -> Output Path) на путь папки Wealth Lab (напр., C:\\Program Files\\MS123\\Wealth-Lab Developer 5\\) и стартовое действие (вкладка Debug -> Start Action) на запуск Wealth.

4. Создать класс, наследующий от WealthScript (в нём перегрузить метод Execute()) и класс, наследующий от StrategyHelper (в нём перегрузить свойства Name, ID, Author, WealthScriptType, Description, CreationDate, LastModifiedDate).

Теперь можно запускать проект. Откроется Wealth Lab. При нажатии на кнопку Open Strategy появится список стратегий, в который будет включена созданная в Visual Studio стратегия, после чего можно ставить точки останова в VS, запускать стратегию из WLD и отлаживать её.

Совсем подробно мы будем разбирать эту и другие темы на наших учебных вебинарах в сентябре-октябре, следите за анонсами на сайте WLRT.

7/27/2010 5:50:11 PM
Gravatar
Total Posts 142

RE:Отладка стратегий WLD в Visual Studio

Спасибо, знания по C# имеются, буду пробовать.

7/27/2010 5:54:01 PM
Gravatar
Total Posts 142

RE:Отладка стратегий WLD в Visual Studio

WLSupport, а может быть напишите здесь короткий код, где были бы реализованы эти классы и перегрузки методов? Спасибо.

7/27/2010 6:44:43 PM
Gravatar
Total Posts 25

RE:Отладка стратегий WLD в Visual Studio

Вот код, реализующий простейшую стратегию Moving Average Crossover (предустановленную в WL) с перегрузкой методов класса StrategyHelper.

[CODE]using System;

using WealthLab.Indicators;

using System.Drawing;

namespace WealthLab.Strategies

{

public class SampleStrategy : WealthLab.WealthScript

{

//Create parameters

private StrategyParameter slowPeriod;

private StrategyParameter fastPeriod;

public SampleStrategy()

{

fastPeriod = CreateParameter("Fast Period", 20, 1, 100, 1);

slowPeriod = CreateParameter("Slow Period", 50, 20, 300, 5);

}

protected override void Execute()

{

//Obtain periods from parameters

int fastPer = fastPeriod.ValueInt;

int slowPer = slowPeriod.ValueInt;

SMA smaFast = SMA.Series(Close, fastPer);

SMA smaSlow = SMA.Series(Close, slowPer);

PlotSeries(PricePane, smaFast, Color.Green, LineStyle.Solid, 2);

PlotSeries(PricePane, smaSlow, Color.Red, LineStyle.Solid, 2);

for (int bar = Math.Max(fastPer, slowPer); bar < Bars.Count; bar++)

{

if (IsLastPositionActive)

{

if (CrossUnder(bar, smaFast, smaSlow))

SellAtMarket(bar + 1, LastPosition);

}

else

{

if (CrossOver(bar, smaFast, smaSlow))

BuyAtMarket(bar + 1);

}

}

}

}

public class SampleStrategyHelper : WealthLab.StrategyHelper

{

public override string Name

{

get { return "StrategyName"; }

}

public override Guid ID

{

get { return new Guid("71EB0EDE-7448-4f01-9AFB-443367C854AB"); }

}

public override string Author

{

get { return "StrategyAuthor"; }

}

public override Type WealthScriptType

{

get { return typeof(WealthLab.Strategies.SampleStrategy); }

}

public override string Description

{

get { return "StrategyDescription"; }

}

public override DateTime CreationDate

{

get { return new DateTime(1990, 1, 1); }

}

public override DateTime LastModifiedDate

{

get { return new DateTime(1990, 1, 1); }

}

}

}[/CODE]

Сгенерировать GUID можно из Visual Studio (Tools -> Create GUID -> Registry Format).

Ссылка на описание отладки стратегий на WealthWiki: http://wl4.wealth-lab.com/cgi-bin/WealthLab.DLL/getpage?page=AskGlitch.htm