Финансовая лаборатория

Биржевая торговля и торговые роботы


Торговая стратегия, которую мы с Вами создаем может выполнять две разные задачи. Она может использоваться для проведения бектестинга и оптимизации торговых параметров. При этом исследуется каждый бар имеющихся данных. Второе предназначение торговой стратегии - применение ее в торговле. При этом на основе уже сделанного выбора правил и параметров мы создаем программу, которая следит за тем, не наступило ли условия по которому мы должны совершить сделку, т.е. работает в режиме скрининга.

В момент, когда программа Wealth-Lab работает в режиме скрининга, мы заинтересованы только в том, чтобы выявить те финансовые инструменты, которые в текущий момент соответствуют определенным критериям. Обычно именно это является причиной того, что мы интересуемся сложившейся ситуацией только на последнем баре (Bars.Count-1) для отбора данного финансового инструмента из массы других.

Торговый цикл

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

Как: организовать главный цикл при построении торговых стратегий в Wealth-Lab

Каждая торговая стратегия обязательно должна иметь главный цикл, который позволяет "пробежаться" по каждому бару на графике. Этот цикл создается специальным оператором и позволяет Вам "просмотреть" данные в режиме "бар за баром", точно также, как это происходит в реальной торговле. Часто этот главный цикл называют торговым циклом.

Пример (как выполнить пример приведенного кода)...

protected override void Execute()
{
   for(int bar = 50; bar < Bars.Count; bar++)
   {
      // Здесь программируются правила торговой стратегии
   }
}

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

Для примера, если Вы используете при построении торговой стратегии 50-ти периодичную простую скользящую среднюю и RSI с периодом 14 бар, выбирайте самый длинный период среди двух применяющихся индикаторов и выбирайте стартовый бар для запуска торгового цикла с номером 50 (а с учетом устойчивости индикаторов, еще больше). Главный цикл должен завершиться при обработке последнего бара на графике, т.е. при обработке бара с номером (Bars.Count - 1). Не забывайте учитывать при определении стартового пункта для главного цикла учесть Стабильность индикаторов.

Как: переделать код торговой стратегии в код скрининговой системы?

Быстрый ответ: Удалите оператор главного цикла и присвойте переменной с номером бара значение последнего бара на графике.

Фактически, Вы можете использовать построитель стратегий для создания простейших скрининговых систем. Для этого нужно сделать следующее:

Во-первых, запустите функцию "Convert to Code-Based Strategy" в обзоре правил. По умолчанию, построитель стратегий использует конструкцию для построения циклов с использованием оператора "for", как это показано в нижеприведенном примере.

Во-вторых, для того, чтобы превратить получившуюся стратегию в Скрининговую систему, Вам всего лишь потребуется удалить цикл, построенный с помощью оператора "for".

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

Пример (как выполнить пример приведенного кода)...

Процесс переделки стратегии, использующейся для бектестинга в скрин показан в следующем примере.


/* Стратегия с использованием цикла с оператором "for" */
protected override void Execute()
{
   for(int bar = 50; bar < Bars.Count; bar++)  /* Поменяйте эту строку */
   {
      // Здесь торговые правила
   }
}

/* Скрин: присвойте переменной bar номер последнего бара графика  */
protected override void Execute()
{
   int bar = Bars.Count - 1;  /* TO THIS */
   {
      // Здесь торговые правила
   }
}

Как видите переделать систему, которая помогает Вам тестировать торговые стратегии и подбирать оптимальные параметры в систему, которая отслеживает состояние рынка и помогает Вам вовремя входить в сделку очень легко. В следующий раз мы подробно рассмотрим однопозиционные стратегии. Не забывайте подписаться на обновления блога по RSS.

Комментариев: 5

  1. [...] Организация торгового цикла в программе Wealth-Lab и его пе…  Главная  Программирование торговых стратегий в [...]

  2. [...] 3. Организация торгового цикла в программе Wealth-Lab и его пе… [...]

Оставить комментарий