Торговля двумя инструментами в рамках одной стратегии

8/18/2010 4:15:58 PM
Gravatar
Total Posts 3

Торговля двумя инструментами в рамках одной стратегии

Добрый день!

Хотелось бы торговать двумя инструментами в рамках одной стратегии (арбитраж).

Как это сделать? Был бы признателен за простенький пример или ссылку на описание этих функций.

спасибО!

8/18/2010 5:18:33 PM
Gravatar
Total Posts 115

RE:Торговля двумя инструментами в рамках одной стратегии

В WealthLab можно использовать метод SetContext(string symbol, bool synchronize) для переключения между инструментами из кода стратегии. Убедитесь, что котировки инструментов синхронизированы, прежде чем обращаться к барам (за это отвечает параметр synchronize). Метод RestoreContext() позволяет вернутся к исходному инструменту.

Вот пример из WealthLab QuickRef. Скрипт формирует список оборотов последнего бара для каждого инструмента из DataSetSymbols:

[CODE]using System;

using System.Collections;

using System.Text;

using System.Drawing;

using WealthLab;

namespace WealthLab.Strategies

{

public class MyStrategy : WealthScript

{

protected override void Execute()

{

SortedList Vlst = new SortedList( DataSetSymbols.Count );

// Формируем список оборотов с помощью переключения контекста

for(int ds = 0; ds < DataSetSymbols.Count; ds++)

{

SetContext( DataSetSymbols[ds], true );

Vlst.Add( ds, Close[Bars.Count-1] * Volume[Bars.Count-1] );

}

}

}

}[/CODE]

8/19/2010 5:48:42 AM
Gravatar
Total Posts 3

RE:Торговля двумя инструментами в рамках одной стратегии

Огромное спасибо!

Возник еще один вопрос. Возможно ли задать коэффициенты комиссии отдельно для разных тикеров (для мамбы от оборота и для фортс от контракта) или Per Share Commission это единственный вариант?

8/19/2010 5:02:48 PM
Gravatar
Total Posts 115

RE:Торговля двумя инструментами в рамках одной стратегии

Да, возможно, но для этого необходимо создать собственный PosSizer, где структура комиссии будет зависеть от свойства Bars.Symbol.

Инструкция по программированию PosSizer'ов здесь: http://personal.fidelity.com/products/trading/Trading_Platforms_Tools/pdf/Creating-PosSizers-in-Wealth-Lab-Pro.pdf

Кратко: в проекте Class Library создайте класс, наследующий от WealthLab.Commission, и перегрузите метод Calculate(...), в котором реализуйте переключение (switch) по Bars.Symbol. Вам также нужно будет перегрузить некоторые свойства класса WealthLab.Commission (string Description и string FriendlyName). Постройте dll в папку установки WealthLab. При запуске WealthLab определит наличие новой структуры комиссий, и Вы сможете выбрать её из окна Preferences -> Commissions.

8/27/2010 12:29:50 AM
Gravatar
Total Posts 14

RE:Торговля двумя инструментами в рамках одной стратегии

Если интересно, то помимо SetContext существует GetExternalSymbol, если не требуется на втором инструменте вести торговлю, но требуется вести анализ.

9/26/2010 8:25:56 PM
Gravatar
Total Posts 1

RE:Торговля двумя инструментами в рамках одной стратегии

Неправильно работает SetScaleCompressed для текущего Context

Например.

Есть две бумаги. На обеих хотим сделать бэктестинг, бумаги за разные временные интервалы.

SetContext(DataSetSymbols[1], false); // по умолчанию, положим, 0-й Symbol;

SetScaleCompressed(15);//BarScaleConverter(Bars, BarScale.Minute, 15); не важно, собственно.

BuyAtMarket(bar);

Он покупает бумаги на минутках контекстов. Получается, что масштаб времени в других Symbols не меняется, тогда как в Help'е чётко написано, что меняется масштаб времени для текущего контекста...

Что делать? Не хотим мы торговать на минутках. [условие фильтации каждой 15 минуты пихать тоже не хотим]

9/27/2010 5:33:34 PM
Gravatar
Total Posts 151

RE:Торговля двумя инструментами в рамках одной стратегии

У вас открыта бумага с таймфреймом 1мин. Каждую минуту срабатывает метод Execute, вы сжимаете временную шкалу, но при этом исполнение метода не прерывается. По моему логично, что сигнал будет срабатывать. нужно какую-то проверку сделать видимо... Тест пока некогда сделать....

9/27/2010 6:21:13 PM
Gravatar
Total Posts 151

RE:Торговля двумя инструментами в рамках одной стратегии

Прошу прощения, оказывается в вопросе подразумевалось, что сжимается базовый контекст, а не текущий(хотя в документации сказано, что текущий).... Если это так, вопрос надо переадресовать непосредственно фиделити, а здесь можно обсудить конкретную задачу, может быть коллективный разум победит :idea: