Использование функции Alert()
В нашей системе мы не использовали функцию alert(), однако
знать о том, как она работает, необходимо, если Вы хотите
создавать реально работающие торговые системы,
Функция alert() используется в соединении с другими
функциями сохранения сигнала на определенное количество
периодов. Сигнал принимает значение «Истинно» на определенное
количество периодов, даже если условие сигнала уже не
выполняется. Следующий пример показывает применение функции
alert().
Enter Long: RSI (14) < 30 AND alert(stoch(5,3)<80,3)
Если данная запись была введена как правило Enter long,
система откроет длинную позицию, когда показатель RSI станет
< 30 и стохастика была меньше 80 хотя бы в одном из трех
предыдущих периодов.
Рис 3.4.1. Окно для ввода оптимизируемых переменных
Параметры системы
Ввод переменных Opt
После того, как введены правила, по которым будет работать
система, надо задать те параметры, которые обозначены
переменными ОРТ1, ОРТ2 и ОРТЗ и по которым мыбудем
оптимизировать систему. Оптимизация включает в себя
определение диапазона величин переменными OPT1, OPT2 и
ОРТЗ, в котором изменяются переменные и шаг изменения каждой.
Затем MetaStock для каждого набора значений выполняет тест и
определяет результаты, которые дает система с этими значениями
переменных. Как было указано выше, в нашем примере ОРT1
(число свечек для расчета RSI) будет меняться от 6 до 20 с шагом
2, ОРТ2 (нижний уровень) будет меняться от 15 до 45 с шагом 5,
ОРТЗ (верхний уровень) будет меняться от 55 до 85 с шагом 5.
Для ввода этих значений выберите в диалоговом окне System
Editor (рис. 3.3.2) опцию Optimize. Если Ваши правила содержат
синтаксическую ошибку, появится поясняющее сообщение.
Выберите опцию Ok для подтверждения ошибки, и курсор встанет
на место предполагаемой ошибки. Но ошибка может быть и в
другом месте. Например, Вы могли забыть закрыть скобку, но не
в том месте, где предлагает машина. Исправьте ошибку и
выберите опцию Optimize. Если синтаксических ошибок больше
нет, то появится окно для ввода оптимизируемых переменных (рис. 3.4.1)
По умолчанию значения всех переменных и шаг изменения
каждой переменной равны нулю. Поэтому общее число тестов тоже
равно нулю, что и написано в левом нижнем углу окна.
Для того, чтобы задеть границы параметров и их шаг,
выберите ту переменную, параметры которой вы хотите
редактировать. На рис. 3.4.1 выбрана переменная 0PT1. Затем
выберите опцию «Edit». Появится окно собственно переменных
(Variable Properties) (рис. 3.4,2.).Так как была выделена
переменная ОРТ1 (рис. 3.4.1), то и редактировать можно значения
этой переменной. Об этом говорит и надпись вверху окна (Name:
ОРТ1)
Рис. 3.4.2. Окно переменных для редактирования
Переменной ОРТ1
В поле Description записываются комментарии для того,
чтобы в дальнейшем было ясно, где используется эта переменная.
Заполнять это поле не обязательно, но сейчас запишите гуда
«Период RSI». В поле Minimum занесите минимальное значение
ОРТ1 - 6. В поле Maximum занесите максимальное значение ОРТ1
- 20, в поле Step занесите шаг изменения значения OPT1 - 2. Затем
нажмите кнопку ОК. Вернувшись в окно для ввода
оптимизируемых переменных, выделите мышкой переменную
OPT2, затем выберите опцию Edit и введите соответствующие
значения для ОРТ2. Потом проделайте аналогичную процедуру
для переменной ОРТЗ. На рис. 3.4.3 приведен вид окна для ввода
оптимизируемых переменных после того, как введена необходимая
информация.
Посмотрите на значение параметра «Total Tests» в левом
нижнем углу окна. Эта величина показывает количество тестов (здесь - 392), которое будет выполнено. Количество тестов не
Рис.3.4.3. Окно для ввода оптимизируемых переменных
После ввода информации
должно превышать 32000.Чем больше это число, тем дольше будет
идти тестирование системы. Всегда разумно посмотреть на эту
величину после редактирования оптимизационных переменных, т. к.
легко создать систему, которая будет генерировать слишком много
тестов. Для выхода из окна выберите опцию «CLOSE».
Введение остановов
В дополнение к торговым правилам каждая торговая
система может иметь до 5 остановов (то есть правил, при
выполнении которых позиция закрывается). Остановы должны
закрывать открытые позиции, основываясь на их прибылях или
потерях. Например, останов Maximum Loss будет закрывать
позицию, если убытки по ней превысят заданную величину,
При срабатывании останова позиция закрывается вне
зависимости от состояния торговых правил. Для каждого правила
Вы определяете параметры, по которым срабатывает останов,
позицию, которую он закрывает (длинную, короткую или обе) и
единицы измерения (проценты или пункты). Останов
автоматически рассчитывает входные и выходные комиссионные.
Например, останов Maximum Loss знает величину комиссионных
при выходе и попытается закрыть позицию так, чтобы потери не
превысили максимально допустимые после всех выплат.
Остановы устанавливаются опцией Stops в диалоговом окне System Tester. При выборе этой опции открывается окно
остановов (Stops)
Прерывания (Breakeven)
Этот останов закрывает открытую позицию, если закрытое
значение позиции упадет ниже текущего денежного баланса (на
момент открытия текущих торгов), то есть когда открытая позиция
даст убыток. Останов помешается в цену, где торговля была
закрыта и полученный остаток будет равен текущему денежному
балансу. Чтобы предотвратить выполнение этого останова всякий
раз, когда позиция при тестировании открывается первый раз
(потому что комиссионные никогда не приносят выгоды, когда
торговля открыта впервые), выполнение этого останова доступно
только тогда, когда появляется прибыль или доходы, величину
которых Вы определяете в окошке Floor Level ( «начальный
уровень»). Величина, которую Вы введете как начальный уровень,
зависитот метода расчета и выражается и пунктах или процентах
(рис. 3.5.1).
Рис 3.5 1. Окно установки прерывания
Если начальный уровень установлен на нуле, останов
Breakeven будет выполняться только после того, как ценные бумаги
дорастут до уровня, когда позиция могла бы быть закрыта без
возможных потерь. Обычно этот тип останова используют при
торговле акциями и практически не используют при работе на рынке
Forex.
Изменчивость (Inactivity)
Пример окна для установки этого останова приведен на рис.
3.5.2. Этот останов закрывает открытую позицию, когда цена ценной
бумаги не обеспечивает минимальное положительное изменение
цен внутри определенного периода (положительное изменение цен
определено восходящим движением цен во время «длинной
позиции» и нисходящим движением цен во время «короткой позиции»)
Рис 3.5.2. Пример установки параметров изменчивости
Параметр Minimum Change определяет минимально
необходимое изменение цены за определенное число периодов
(параметр Periods), необходимое для того, чтобы позиция не
были закрыта. Minimum Change рассчитывается в пунктах и
процентах (метод расчета задастся в Method), Для примера
определите Minimum Change в 40 пунктов, а количество
периодов в Periods возьмите 3. MetaStock автоматически
закроет позицию, где цена валюты изменялась менее чем на 40
пунктов внутри любого интервала в 3 периода. Так как мы
собираемся открывать и «длинные» и «короткие» позиции,
поставим галочки в метках Long и Short.
Данный останов производит анализ только но цене и поэтому
игнорирует комиссионные. Обычно при торговле внутри дня
считают, что если цена не пошла в нужном направления в течение
короткого периода (в этом примере в течении трех часов), то
позиция была открыта не очень удачно и, возможно, ее лучше
закрыть.