Логотип Парус Инвестора
Парусник
Цена деления цифровой шкалы
Системы и стратегии

Учебник по языку программирования Easy Language

ГЛАВА 5. EasyLanguage для OptionStation

Эта глава охватывает вопросы использования EasyLanguage с OptionStation

Вы можете записать индикаторы для использования с окном OptionStation Position Analysis так же, как графиками движения цен. Вы можете также создать традиционные Search Strategies для использования с Мастером Поиска Позиции, Pricing, Volatility, and Bid/Ask Models, которые дают возможность Вам полностью настроить ценовое моделирование OptionStation и вычисление поиска позиции.

В этой глава сначала дается обзор, как OptionStation использует Механизм Ценового Моделирования, чтобы обработать данные от GlobalServer, получить смоделированные значения и подготовить данные к анализу. В главе описываются специфические зарезервированные слова OptionStation, представлены контекстные примеры создания индикаторов OptionStation, Search Strategies и моделей.

Включены, с объяснением зарезервированных слов, описания Механизма поиска позиции и Механизма ценового моделирования, так что Вы поймете эффект ваших команд EasyLanguage при вычислении Механизмов.

Анализ данных OptionStation

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



Сначала любые новые данные для основного актива и опционов, в настоящее время анализируемых, передаются от GlobalServer в OptionStation. Это - начало процесса анализа данных и поэтому рассматривается как Шаг 1.

Автоматически, как только любые новые данные получены OptionStation, Механизм ценового моделирования OptionStation вычисляет необходимые смоделированные значения и готовит все данные к анализу. Вычисляются смоделированные расчетные значения Рыночной Ожидаемой Волатильности (Market Implied Volatility - MIV) на закрытии, MIV на Bid-е и MIV на Ask-е; волатильность, теоретическая и оценка греков для всех анализируемых опционов; смоделированные значения Bid и Ask опционов и MIV для смоделированных значений Bid и Ask. Этот автоматический процесс рассматривают как Шаг 2. Это - ресурсоемкий шаг, потому что значения вычисляются для основного актива(ов), выбранного для анализа и всех опционов, включенных в анализ.

(nie. Greeks - "Греки". Коэффициенты, название которым дали буквы греческого алфавита. Являются промежуточными результатами расчетов по модели Блэка-Шоулза и используются для оценки различных рисков опционных сделок)

Ценовая, Волатильная и/или Bid/Ask модели используются в течение Шага 2. Механизм ценового моделирования описан подробно в разделе этой главы, "Запись Моделей OptionStation."

Шаг 3 происходит, когда Вы выполняете Поиск Позиции или открываете окно Position Analysis OptionStation. В процессе Поиска Позиции, выполняются любые выбранные Стратегии Поиска, с использованием данных от GlobalServer и значений, вычисленных в Шаге 2. Точно так же, когда Вы открываете окно Position Analysis, все индикаторы выполняются и использованием данных GlobalServer и значений, вычисленных в Шаге 2.

Это означает, что когда Вы записываете индикаторы OptionStation, Стратегии Поиска и/или модели, то Вы должны иметь в виду какие данные являются доступными. Например, Вы не можете ссылаться на информацию позиции, когда Вы пишете Ценовую, Волатильную или модель Bid/Ask, потому что позиции не установлены до Шага 3. Таблица на рисунке 5-2 показывает доступность данных в различных документах EasyLanguage OptionStation (Индикатор, Поиск стратегии, Ценовая Модель, Модель Волатильности или Модель Bid/Ask).



Держите в памяти информацию вышеупомянутой таблицы, когда Вы записываете ваши индикаторы, Стратегии Поиска и/или модели, чтобы иметь уверенность, что Вы ссылаетесь на доступные данные.

Чтение Данных OptionStation

Предыдущий раздел дал краткий обзор порядка, в котором OptionStation выполняет вычисления, а также какие данные являются доступными Вам в каждой стадии. Есть огромное количество информации, доступной Вам, и в зависимости от документа EasyLanguage OptionStation (Индикатор, Поиск стратегии, Ценовая модель, модель Волатильности, или модель Bid/Ask), который Вы создаете, Вы можете обратиться к информации основного актива, опциона и/или позиции.

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

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

Зарезервированные слова, которые Вы можете использовать как спецификаторы, перечислены ниже, сгруппированы по типам информации, которую они предоставляют: актив, опцион или позиция.


Информация Актива

EasyLanguage разрешает Вам ссылаться на информацию, связанную с основным анализируемым активом через набор зарезервированных слов. Эти зарезервированные слова доступны при работе со всеми документами (Индикатор, Поиск стратегии, Ценовая модель, модель Волатильности или модель Предложения/Спроса) EasyLanguage OptionStation.


Asset

Это зарезервированное слово используется как спецификатор или псевдоним данных, для ссылки на информацию для основного актива (акции или индекса) анализируемого опциона.


Синтаксис:

Value of asset

Value - любое значение, которое Вы можете получить для основного актива; например, часть информации, такая как цена закрытия, объем торговли и т.д. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Примечания:

Это зарезервированное слово предназначено для использования с акциями и индексами. Для ссылки на фьючерсы используйте Of Future или OfFuture(num). Если Вы используете Of Asset, чтобы обратиться к фьючерсному контракту, OptionStation получит информацию только для контракта того же самого фьючерсного ряда(?).


Пример:

Следующее выражение обращается к последней цене закрытия основного актива:

Close of asset

Следующее выражение получает среднее 10-барное объема основного актива:

Average (Volume of asset, 10)


Future

Это зарезервированное слово используется как спецификатор или псевдоним данных для ссылки на информацию для основного актива при анализе опционов на фьючерсных контрактах.


Синтаксис:

Value of future

Value - любое значение, которое Вы можете получить для основного актива; например, часть информации, такая как цена закрытия, объем торговли и т.д. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Пример:

Следующее выражение обращается к последней цене закрытия основного актива:

Close of future

Следующее выражение вычисляет среднее 10-барное объема основного актива:

Average(Volume of future, 10)


Future(num)

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


Синтаксис:

Value of future(num)

Параметры:

Num - числовое выражение, представляющее фьючерсный контракт, к которому выражение обращается.

Value - любое значение, которое Вы можете получить для фьючерсного контракта, например, часть информации (например, цена закрытия, объем, дата истечения срока действия). Of - опускаемое слово, которое делает выражение более удобным для чтения.


Примечания:

Когда Вы применяете индикатор к активам или опционам секции окна Position Analysis, индикатор ссылается на фьючерсный контракт в строке, к которой индикатор применен. Однако, Вы можете ссылаться на информацию для любого из доступных фьючерсных контрактов, используя зарезервированное слово OfFuture (num).

Например, предположим, что Вы имеете три фьючерсных контракта, перечисленных в разделе Assets вашего окна Position Analysis. Если Вы используете спецификатор Of Future в вашем индикаторе, то вычисления будут ссылаться только на фьючерсный контракт в строке, к которой индикатор применен. Однако когда Вы используете OfFuture (num), то индикатор может ссылаться на любой анализируемый фьючерсный контракт.

Аналогично, когда мы применяем индикатор к разделу Options окна, то если мы используем OfFuture (num), мы можем обратиться к фьючерсному контракту, лежащему в основе опциона в строке, к которой индикатор применен или к любому анализируемому фьючерсному контракту.

Когда OptionStation получает фьючерсные контракты от GlobalServer, это произвольные числа от 1 до n. Поэтому, чтобы обратиться к специфическому контракту, Вы должны сначала определить, какой число OptionStation назначил на него. Единственная характеристика идентификации фьючерсного контракта - его дата истечения срока действия, что означает, что Вы можете использовать зарезервированное слово ExpirationDate, чтобы найти определенные контракты.

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

For Value1 = 1 To NumFutures of asset Begin
    If ExpirationDate of future = ExpirationDate of
        future(Value1) Then Value2 = Value1;
End;

Когда цикл выполнен, переменная Value2 будет содержать номер, назначенный OptionStation фьючерсному контракту, и Вы можете использовать этот номер вместо параметра Num. Примеры использования зарезервированного слова NumFutures описаны ниже.

Или, мы можем найти фронтальный контракт (тот, срок действия которого закончится следующим), ища фьючерсный контракт, который наиболее близок к текущей дате. Мы можем найти фьючерсный контракт с наименьшим номером, когда мы вычитаем текущую дату из даты истечения срока действия.

Variables: OurNumber(0), Counter(0) ;
Value1 = DateToJulian(ExpirationDate of future(1)) -DateToJulian(CurrentDate);
For Counter = 1 To NumFutures of asset Begin
    If DateToJulian(ExpirationDate of future(Counter)) -
        DateToJulian(CurrentDate) < Value1 Then Begin
            Value1 = DateToJulian(ExpirationDate of
                future(Counter)) - DateToJulian(CurrentDate);
            OurNumber = Counter;
    End;
End;

Сначала мы объявляем две переменные, OurNumber и Counter. Мы также используем предобъявленную переменную Value1.

Затем мы вычитаем текущую дату из даты истечения срока действия фьючерса с назначенным номером 1 и назначаем результат на переменную Value1.

Далее, используя For loop, мы вычитаем текущую дату из даты истечения срока действия каждого доступного фьючерсного контракта (1 через NumFutures) и сравниваем результат со значением в Value1. Если результат меньше, чем значение в Value1, то новое значение назначается на Value1, а номер фьючерсного контракта назначается на OurNumber.

Когда цикл завершен, переменная OurNumber будет содержать номер, назначенный OptionStation фронтальному фьючерсному контракту.

Обратите внимание: OptionStation зависит от GlobalServer, чтобы отметить опционы "expired" (истекающие). GlobalServer отмечает символы, истекшие в течение Ночного Обслуживания (Nightly Maintenance). Разрешение Ночного Обслуживания будет гарантировать, что все истекшие опционы отмечены и поэтому не включены в анализ.


Пример:

Следующее выражение обращается к цене закрытия первого перечисленного фьючерсного контракта:

Close of future(1)

Следующее выражение получает самый высокий из максимумов последних 10 баров второго фьючерсного контракта:

Highest (High of future(2), 10)


NumFutures

Это зарезервированное слово - не псевдоним данных, но возвращает общее количество фьючерсных контрактов, загруженных в текущем окне Position Analysis.


Синтаксис:

NumFutures data alias

Параметры:

Нет; однако, Вы должны использовать псевдоним данных Of Asset (где Of - опускаемое слово, которое делает выражение более удобным для чтения).


Примечания:

Когда NumFutures возвращает значение 0, это означает, что основной актив - акция или индекс.


Пример:

Вы можете использовать зарезервированное слово NumFutures , чтобы пересечь (обойти) все доступные фьючерсные контракты, используя For loop. Как описано в зарезервированным слове Futures, следующие команды дают возможность Вам найти номер, который OptionStation назначает на определенный фьючерсный контракт, когда Вы знаете его дату истечения срока хранения:

For Value1 = 1 to NumFutures of asset Begin
    If ExpirationDate of future = ExpirationDate of future(Value1) Then
        Value2 = Value1;
End; 


Информация Опциона

EasyLanguage позволяет Вам ссылаться на информацию, связанную с анализируемыми опционами, через набор зарезервированных слов. Эти зарезервированные слова доступны при работе со всем документами EasyLanguage (Индикатор, Поиск стратегии, Ценовая модели, модель Волатильности или модель Bid/Ask) OptionStation как показано на рисунке 5-2 на странице 195.


Option

Это зарезервированное слово используется как спецификатор или псевдоним данных для ссылки на информацию для анализируемого опциона.


Синтаксис:

Value of option

Примечания:

Когда используется в индикаторе, примененном в секции разделу Options окна Position Analysis, команды обратятся к единственному опциону в каждой строке, к которой индикатор применен. Команды обращаются к определенному анализируемому опциону. Для ссылки на другой опцион, кроме данного, в настоящее время анализируемого, используйте OfOption (num), который описан ниже.


Пример:

Следующее выражение вычисляет внутреннее значение запроса:

Value1 = Strike of option - Close of asset;


Option(num)

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


Синтаксис:

Value of option(num)

Параметры:

Num - числовое выражение, представляющее опцион, к которому выражение обращается.

Value - любое значение, которое Вы можете получить для опциона; например, часть информации типа: цена закрытия, цена реализации и т.д. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Примечания:

Когда OptionStation получает опционы от GlobalServer, это произвольные числа от 1 до n. Поэтому, чтобы обратиться к специфическому опциону, Вы должны сначала определить, какой номер OptionStation назначил на него. Характеристики идентификации опциона - дата истечения срока хранения, тип опциона и цена реализации; поэтому, Вы можете использовать зарезервированные слова ExpirationDate, OptionType, и Strike, чтобы идентифицировать номер, назначенный на опцион.

Для вашего удобства, OptionStation предоставляет две функции пользователя, разработанные, чтобы определить номер, назначенный на опцион, OS_FindCall и OS_FindPut. Пожалуйста обратитесь к Библиотеке Функций в Интерактивном Пользовательском Справочнике для получения информации относительно этих функций пользователя.


Пример:

Следующие команды возвращают суммарный открытый интерес для всего опциона Put:

For Value1 = 1 To NumOptions of asset Begin
    If OptionType of option(Value1) = Put Then
        TotalPutI = TotalPutI + OpenInt of option(Value1);
End;

Инструкция IF-THEN в пределах цикла прибавляет открытый интерес всех анализируемых опционов Put и сохраняет результат в переменной TotalPutI. Вышеупомянутый пример использует зарезервированное слово NumOptions, которое описано ниже.


NumOptions

Это зарезервированное слово - не псевдоним данных; оно возвращает общее количество анализируемых опционов.


Синтаксис:

NumOptions of asset

Параметры:

Нет; однако, Вы должны использовать псевдоним данных Of Asset (где Of - опускаемое слово, которое делает выражение более удобным для чтения).


Пример:

Следующие команды пересекают все доступные опционы, используя For loop; в данном случае цикл прибавляет открытый интерес для всех Опционов Put и сохраняет их в переменной TotalPutI.

For Value1 = 1 To NumOptions of asset Begin
    If OptionType of option(Value1) = Put Then
        TotalPutI = TotalPutI + OpenInt of option(Value1);
End; 


Информация Позиции

EasyLanguage также предоставляет возможность ссылки на связанную с позицией информацию через набор зарезервированных слов, которые позволяют манипулировать информацией, связанной и с позицией и с элементом позиции. Эти зарезервированные слова доступны при работе со Стратегиями Поиска и индикаторами, специально написанными для секции Positions окна Position Analysis.


Position

Это зарезервированное слово используется для ссылки на информацию для анализируемой позиции. Вы не можете ссылаться на другие позиция, а только на позицию в строке в окне Position Analysis, к которой индикатор применен.


Синтаксис:

Value of position

Параметры:

Нет.

Value - любое значение, которое Вы можете получить для позиции; например, часть информации типа: значение Дельты. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Пример:

Следующая инструкция назначает дельта позиции на переменную Value1:

Value1 = Delta of position;


Leg(num)

Это зарезервированное слово используется для ссылки на информацию для любого элемента анализируемой позиции.


Синтаксис:

Value of leg(num)

Параметры:

Num - числовое выражение, представляющее элемент, к которому выражение обращается.

Value - любое значение, которое Вы можете получить для элемента; например, часть информации типа: дата истечения срока хранения, цена реализации и т.д. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Примечания:

Элементы пронумерованы произвольно от 1 до n. Для ссылки на определенный элемент Вы должны сначала определить, какой номер назначен на этот элемент, который Вы хотите анализировать. Чтобы сделать это, используйте выражение LegType of Leg (num), Strike of Leg(num), или ExpirationDate of Leg(num), чтобы определить, какой опцион включает определенный элемент.


Пример:

Следующий Поиск стратегии создаст позицию, которая состоит из выписки опциона call (nie. writing a call - выписать опцион) и покупки второго опциона call. OfLeg (num) спецификатор используется, чтобы сравнить цены реализации этих двух оцениваемых элементов:

CreateLeg(1, Call);
CreateLeg(-1, Call);
Condition1 = Strike of leg(1) < Strike of leg(2) - 10;
PositionStatus(Condition1) ;


ModelPosition

Это зарезервированное слово используется для ссылки на информацию для смоделированных сформированных позиций, когда Поиск Позиции выполнен. Это зарезервированное слово доступно только при записи Стратегий Поиска.


Синтаксис:

Value of ModelPosition

Параметры:

Нет.

Value - любое значение, которое Вы можете получить для смоделированной позиции; например, расчетная функция или часть информации типа: теоретическое значение. Of - опускаемое слово, которое делает выражение более удобным для чтения.


Примечания:

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


Пример:

Следующая инструкция получает Дельта смоделированной позиции и назначает ее на переменную Value1:

Value1 = Delta of ModelPosition;


NumLegs

Это зарезервированное слово возвращает номер элемента в анализируемой позиции. Это дает возможность Вам знать точно, сколько элементов открыто в любой временной точке.


Синтаксис:

NumLegs data alias 

Параметры:

Нет; однако, Вы должны определить Of Position или ModelPosition (Of - опускаемое слово, которое делает выражение более удобным для чтения).


Пример:

Следующий цикл прибавляет общую стоимость всех элементов в позиции и сохраняет результат в переменной Sum:

Variable: Sum(0);
For Value1 = 1 To NumLegs of position Begin
    Sum = Sum + Cost of leg(Value1);
End;




Содержание (Contents)
ГЛАВА 1: Введение
Что такое EasyLanguage?
Что Вы можете Создать?
Дополнительные Ресурсы
ГЛАВА 2: Основные Элементы EasyLanguage
Как работает EasyLanguage
О Языке
Ссылка на Ценовые Данные
Выражения и Операторы
Ссылка на Предыдущие Значения
Управление Датами и Временем
Использование Переменных
Использование Констант
Управляющие структуры EasyLanguage
Запись Предупреждений
Понятие Массивов
Понятие Функций Пользователя
Методы Вывода
Текстовый Объект на Ценовых Диаграммах
Trendlines на Ценовых Диаграммах
Понятие Полей Данных
Мультимедиа и EasyLanguage
ГЛАВА 3: EasyLanguage для TradeStation
Запись Торговых Сигналов
Механизм Тестирования Торговой Стратегии
Торговые Приказы
Понятие Встроенных Стопов
Запись Индикаторов и Изучений
Запись ShowMe и PaintBar
Запись ProbabilityMap
Запись ActivityBar
ГЛАВА 4: EasyLanguage для RadarScreen
Запись Индикаторов RadarScreen
Запись Индикаторов для Супердиаграмм SE
Определение Доступности Индикаторов
ГЛАВА 5: EasyLanguage для OptionStation
Анализ данных OptionStation
Чтение Данных OptionStation
Запись Индикаторов OptionStation
Запись Индикаторов для Супердиаграмм SE
Запись Поиска Стратегий
Запись Моделей OptionStation
Глобальные переменные OptionStation
ГЛАВА 6: EasyLanguage и Другие Языки
Определение Функции DLL
Использование Функций DLLs
Дополнительно О EasyLanguage DLL Extension Kit
ПРИЛОЖЕНИЕ 1. Синтаксические ошибки EasyLanguage
61 - 223
224 - 307
308 - 569
ПРИЛОЖЕНИЕ 2. Цвета, Размеры и Коды EasyLanguage




На правах рекламы: