Торговая стратегия, которую мы с Вами создаем может выполнять две разные задачи. Она может использоваться для проведения бектестинга и оптимизации торговых параметров. При этом исследуется каждый бар имеющихся данных. Второе предназначение торговой стратегии - применение ее в торговле. При этом на основе уже сделанного выбора правил и параметров мы создаем программу, которая следит за тем, не наступило ли условия по которому мы должны совершить сделку, т.е. работает в режиме скрининга.
В момент, когда программа 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.
[...] Организация торгового цикла в программе Wealth-Lab и его пе… [...]
[...] Организация торгового цикла в программе Wealth-Lab и его пе… Главная Программирование торговых стратегий в [...]
[...] 62. Как организовать главный цикл при построении торговых… [...]
[...] [...]
[...] 3. Организация торгового цикла в программе Wealth-Lab и его пе… [...]