«Разработка шаблонов ORACLE APEX, ориентированных на создание финансовых приложений». Oracle APEX имеет широкий спектр функциональных возможностей для разработки WEB-приложений.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.


Санкт
-
Петербургский Государственный Университет

Математико
-
механический факультет

Кафедра системного программирования



Выпускная дипломная работа

Карымова Антона Вячеславовича

на темуǣ


«Разработка шаблонов ORACLE APEXǡ ориентированных на создание

финансо
вых приложений»




Научный руководитель .....................
................... к. ф.
-
м. н.

доц. Н.Г. Графеева

Рецензент ...............................................................
........

к.ф.
-
м.н. И.Шаблинская


“Допустить к защите” .................
.....
..................... д.ф.
-
м.н.

проф. А.Н. Терехов

заведующий кафедрой


Санкт
-
Петербург

2012
г
.



Saint
-
Petersburg

State

University

Mathematics and Mechanics Faculty

Software Engineering Department




Development of ORACLE APEX templates oriented to f
inancial
applications


Graduate paper by


Anton Karymov

461 group





Scientific advisor Natalia Grafeeva

Reviewer
Irina Shablinsky

Reviewer “Approved by” Head of Department Professor A. N. Terekhov







Sain
t
-
Petersburg

20
12



Оглавление

Введение

................................
................................
................................
................................
..........

2

Глава 1. Обзор графических основ трейдинга и используемых
инструментариев

................................
................................
................................
........................

4

Основы финансового трейдинга

................................
................................
........................

4

Обзор традиционных для трейдинга графиков

................................
........................

4

График с двойной шкалой

................................
................................
...............................

5

Двухсекционный график с объемами

и ценой

в виде баров

...........................

5

Двухсекционный график с объемами
и ценой
в виде свечей

.........................

7

График с нарастающими итогами

................................
................................
........

10

Описание используемых инструментариев

................................
.............................

11

Oracle

APEX

описание среды разработки

................................
............................

11

Графики
Oracle

APEX

................................
................................
................................
......

15

Anychart

................................
................................
................................
................................
.

16

Глава 2. Особенности реализации

................................
................................
..................

17

График с двойной шкалой

................................
................................
............................

18

Двухсекционный график с объемами
и ценой
в виде баров

........................

18

Двухсекци
онный график с объемами

и ценой

в виде свечей

......................

19

График с нарастающими итогами

................................
................................
........

19

Импорт созданных графиков

................................
................................
....................

20

Стратегия трейдинга «Путь черепах»

................................
...............................

21

Описание алгоритма

«
Путь черепах
»

................................
................................
..

21

Особенности реализации алгоритма «Путь череп
ах»

................................

25

Заключение

................................
................................
................................
................................
.

28

Список литературы

................................
................................
................................
................

30


2


Введение


В начале 2000
-
х г
г.

среди производителей СУБД по
явилась тенденция
встраивать внутрь СУБД инструменты для разработки
WEB
-
приложений. Одним из первых таких инструментов стал Oracle APEX
(Oracle Application Express)ǡ разработанный компанией Oracle. За 10 лет
своего существования он превратился в самостоят
ельный продуктǡ
бесплатно поставляемый вместе с

СУБД. Особенностью этого
инструмента является тоǡ что все элементыǡ возникающие в цикле
разработки приложенияǡ хранятся непосредственно в инфраструктуре
Oracle Database и

могут быть развёрнуты на экземпляр
е Oracle без
дополнительного программного обеспечения (используя встроенный в
СУБД Oracle WEB
-
сервер).


Oracle APEX имеет широкий спектр функциональных возможностей
для разработки WEB
-
приложений. В том числе и для наглядной
визуализации данныхǡ а именно д
ля создания различног
о рода графиков
и диаграммǡ построение

которых

осуществляется при помощи
сторонней

компо
ненты

AnyChart.


Однакоǡ не смотря на
кажущееся

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


Целью данной работы является расширение

шаблонов визуализации

данных

ORACLE APEXǡ ориентированных

на финансовые приложенияǡ а
именноǡ на

финансовый трейдинг.


В связи с эт
им с
тановится

необходимым реализация поддержки

в
Oracle

APEX

базовых для трейдинга графиков
ǡ а именно
ǣ графика с
двойной шкалойǡ
двухсекционного
графика с объемами

и

ц
е
н
о
й

в виде
3


баровǡ
двухсекционного
графика с объемами
и

ц
е
н
о
й

в виде свечей
,
графика с нарастающими итога
ми.


Для демонстрации созданных расширений в работе будет
представлено APEX
-
приложениеǡ реализующее известную финансовую
стр
атегию трейдинга «Путь черепах»

(1)
.



П
оставленные цели определяют

следующий список задачǣ

1.

Изучить
теоретичес
кие основы финансового трейдинга и
основны
е виды графиков
,

используемые
при
ана
лизе текущей
ситуации на рынке и
заключении торговых сделок
;


2.

Разработать механизм расширения возможностей
Oracle

APEX

позволяющий использовать в приложениях графики следующих

видовǣ



График с двойной шкалойǢ



Двухсекционный график с объемами
и ценой
в виде свечейǢ



Двухсекционный график с объемами
и ценой
в виде баровǢ



График с нарастающими итогамиǢ

3.

Изучить и описать в строгой математической форме алгоритм
финан
сового трейдинга

«Путь черепах»Ǣ


4.

Реализовать
ǡ апробировать на живых данных

и выявить
актуальность практического применения алгоритма

"Путь
черепах".



4


Глава 1.

Обзор графических основ трейдинга и используемых
инструментариев


Основы финансового трейдинга


Трейдинг
(от

англ. «trade»


«торговляǡ торговать»
)
-

это
работа
биржевого торговца

(
трейдера
)ǡ заключающаяся в торговле
различными финансовыми

инструментами на рынке.




Для успешного трейдинга необходимо прогнозирование изменений
цен в будущем на основе анализа изме
нений цен в прошлом
(технический анализ). Помимо ценовых рядов в техническом анализе
используется информация об объемах торгов и другие статистические
данныеǣ


Цен
а

контрак
та (индекса)
-

стоимость контракта на бирже в
определенный период времени.


Объем то
рговли

-

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


Открытый интерес

-

количество позицийǡ не закрытых на конец
торгового дня.


Главным инструментом технического анализа служат графики.

По
гра
фику можно определитьǡ где находился рынокǡ


а после
идентификации ценовых фигур и соответствующих из них выводовǡ он
может подсказать ценные идеи относительно возможного

направления
рынка
(2).

Обзор традиционных для трейдинга график
ов


Рассмотрим основные типы графиков
,

на основе которых
производится

технический анализ
.

5


График

с двойной шкалой


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

Пример графикаǣ



Дву
хсекционный график с объемами
и ценой
в виде баров


Одним из наиболее распространенных видов отображения динамики
цены в графическом анализе рынка является двухсекционный график с
объемами в виде баров (
bar

chart
).


Данный график состоит их двух секц
ийǣ


Первая секция ǣ «График баров»


Вторая секция ǣ «График объемов»


Под понятием «Бар» понимается вертикальная линияǡ на которой
отображается информация о томǡ как менялась цена в течение
6


выбранного периода времени. Таким образомǡ
каждому временному
периоду сопоставляется соответствующий «Бар». Бары следуют один за
другим в хронологическом порядке выбранного временного
промежутка и образуются независимо от характера изменения цены.

Каждый бар содержит четыре важнейших показателя д
вижения ценыǣ


Open

(цена открытия)
-

значениеǡ которое было в самом начале
выбранного периода. Отображается небольшой горизонтальной чертой
слева от бара.


Close

(цена закрытия)
-

значениеǡ которое было в самом конце
выбранного периода. Отображается неб
ольшой горизонтальной чертой
справа от бара.


High

(максимальная цена)

-

максимальное значениеǡ достигнутое в
течение выбранного временного периода. High
-

это верхняя граница
бара.


Low

(минимальная цена)
-

минимальное значениеǡ достигнутое в
течение вы
бранного временного периода. Low
-

это нижняя граница
бара.



Трейдеры предпочитают использовать в анализе рынка баровый
график из
-
за его наглядности и информативности. Одним из
7


преимущест данного вида графиков является возможность просмотраǡ
так называе
мых «гэпов» (gap).


«Гэп» (от англ. «gap»
-

разрыв)


в анализе

потока

котировокǡ это
ситуация существенной разницы между ценой закрытия
предыдущего

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

(3
)
.


Обычно трейдеры используют

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



Анализ объема торгов так же является неотъемлемым элементом
технического анализа
ǡ поэ
тому кроме цены на графике часто
отображают объем
. По динамике объема можно судить о значимости и
силе ценового движения

(4
)
.

Пр
и
мер графика
,
взят с
finam
.
ru
,
сайта
одного из наиболее крупных инвестиционных холдингов России
(
5
)
:


Двухсекционный график с объемами
и ценой
в виде свечей


В графическом
анализе японские свечи (
candle

chart
)

получили
распространение с 90
-
ых годов. Название «японские свечи» берет свои
8


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


Данный график состоит их двух секцийǣ

Первая секция ǣ «График свечей»

Вторая секция ǣ «График объемов»


График свечей

отображает движение цены за определенный период
времени с дополнительным цветовым выделен
иемǡ показывая связь и
взаимное расположение цен открытия (open) и закрытия (close).


Каждому временному периоду


с
опоставляется соответствующая
c
вечаǡ которая состоит из «тела» и «т
ени».


«Тело» свечи


это расстояние между ценами открытия и закрытия
д
анного временного периода.


«Тень» свечи


это минимальное и максимальное значения ценǡ
достигнутые за этот же отрезок времени.



В случае если high или low расположены в пределах тела свечиǡ то
тень не отбражается. Также встречаются свечи без телаǡ ког
да цена
открытия совпадает с ценой закрытия. Разновидностей свечей
огромное количествоǡ даже существует специальный метод свечного
9


анализа для предсказания дальнейшего движения ценыǡ выделенный в
отдельную категорию исследования рынка

(6)
.


По внешнему виду свечи можно сразу определить направленность
изменения цены за рассматриваемый промежуток времениǣ

-

если цена закрытия окажется ниже цены открытияǡ то тело
свечи

закрашивается (относительно фона графика)Ǣ

-

если цена закрытия рас
полагается выше цены открытияǡ то тело
свечи

остается полым.


Вторая секция (график объемов)

совпадает со второй секцией
двухсекционного графика с объемами в виде баров.

Пример графика

с
finam.ru
:






10


График с нарастающими итогами


Потребность в данном

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

следующего содержания (
дата
,

маржа
):



Н
а графике хотелось бы видеть не
прибыль по отдельным сделкамǡ а
суммар
ную прибыль на момент времени
t
1,

t
2 и т.п
.

При приведенных
выше данных график с нарастающими итогами должен выглядеть такǣ



11


Описание используемых инструментариев

Oracle

APEX

описание среды разработки


Oracle APEX (Oracle Application Express)
-

среда
разработки

прикладного программного обеспечения

на
основе

СУБД

Oracle Database
ǡ целиком реализованная как WEB
-
приложение.

П
озволяет быстро проходить весь проце
сс разработки
WEB
-
приложения и генерировать из данныхǡ хранящихся в БД Oracleǡ
динамические страницы программǡ а так же обрабатывать их в режиме
реального времени. При создании или расширении программǡ
написанных в APEXǡ метаданныеǡ хранящиеся в таблицах
БД Oracleǡ
модифицируютсяǡ а во время работы программы APEX считывает эти
метаданные и отображает программу в браузере. APEX полностью
располагается в БД Oracle и представляет собой набор данныхǡ
структурированных в таблицах с большим количеством PL/SQL
кода
(порядка 200 PL/SQL объектов и 215 таблицǡ содержащих более 300
тысяч строк кода). Oracle APEX совместима с версией Oracle 9.2 и вышеǡ аǡ
начиная с версии Oracle 11gǡ среда устанавливается по умолчанию
вместе с СУБД. В качестве Web
-
сервераǡ для отобра
жения страницǡ
используется Apache или Embedded PL/SQL Gateway (EPG)( встроенный в
СУБД Oracle Web
-
сервер). EPG используется в Oracle Database Express
Edition 10.2.0.1 и выше. Вся разработка


декларативнаяǡ проводится
внутри БД и для ее осуществления дост
аточно знать только PL/SQL. Так
же характерно полное отсутствие ООП и
всяческих «прослоек» типа ORM
(
Object
-
relational mapping).


Во время работы потребление ресурсов CPU минимизируется за счет
использования асинхронной архитектуры управления сессией.


Вс
егда
выполняются одни и те же процессыǡ вне зависимости от того
запускаете среда разработки или уже готовое приложениеǡ созданное в
12


Oracle APEX. Браузер посылает URL
-
запросǡ который преобразуется в
соответствующий вызов Application Express PL/SQL. База дан
ных
обрабатывает PL/SQL запрос и отправляет результат обратно в браузер
в виде HTML страницы. Эти операции выполняются всегда при запросе
или получении страницы. Благодаря томуǡ что управление сессией
осуществляется в базе данныхǡ отсутствует необходимость

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

APEX
ǡ генерации и

обработке
страниц. В версиях Oracle новее 10g или 11.1 процесс преобразования
URL выглядит следующим образомǣ



EPG выполняет функции Web
-
сервера и обеспечивает
инфраструктуруǡ необходимую для создания динамических
приложенийǡ причем не требует Oracle
HTTP Server

(7)
.


В процессе работы ядро Oracle APEX занимается следующими
задачамиǣ



управляет состояниями сессииǢ



выполняет аутентификацию и авторизацию сервисовǢ



осуществляет контроль выполнения прило
женийǢ

13




выполняет проверку состояния обработок запросовǢ



управляет потоком страниц.


Все пользов
атели Oracle A
PEX

работают с одной общей БДǡ для
доступа к которой достаточно Web
-
браузераǡ дополнительное ПО не
требуется. Областьǡ где разрабат
ываются приложения
,

называется
рабочим пространством (workspace). Рабочее пространство
-

это
виртуальная частная БДǡ позволяющая множеству пользователей
работать с одним экземпляром Oracle APEXǡ скрывая при этом свои
объектыǡ данные и приложения. При созда
нии рабочего пространства
необходимо указать в какой схеме оно будет располагатьсяǡ
существующей или новой. Схема
-

это логический контейнер для
объектов базы данныхǡ таких как таблицыǡ представления и хранимые
процедуры. Одна схема может быть связана с од
ним или несколькими
рабочими пространствами. На следующем рисунке демонстрируется
взаимосвязь между пользователями/разработчикамиǡ рабочими
пространствами и схемами базы данныхǣ


14



Любое приложение

(
Application
)

Oracle APE
X состоит из страниц

(
Page
)
. Страницы в свою очередь содержат регионыǡ внешний вид
которых задается посредством шабло
новǡ это может бытьǡ напримерǡ
р
егион
-
отчет (Reports region)ǡ отображающий данные в виде таблицǡ
кнопка (Button region)ǡ регион
-
график(Char
t Region) и т.д.ǡ всего имеется
порядка 30 различных шаблонов

(8)
. Структуру приложения Oracle APEX
можно описать следующей схемойǣ



Как видно именно на уровне ш
аблонов задается конечный вид
региона. Что
бы отображать данные в виде графика нужноǡ чтобы
шаблон региона былǣ Chart Region. Рассмотрим структуру Chart Regionǣ


15



Далее

рассмотрим
,

какие типы гр
а
фиков поддерживаются в APEX на
данный момент.

Г
рафики

Oracle

APEX


В

Oracle APEX поддерживаются следующ
ие типы графиков
(ChartType):
1.

Column

-

отображение данных в виде «столбиков»ǡ
направленных вверхǢ

2.

Horizontal Bar

-

отображение данных в виде «столбиков
»ǡ
направленных слева

на правоǢ

3.

Pie & Doughnut

-

отображен
ие

данных в виде круга с долямиǢ
4.

Scatter

-

ото
браже
ние

точечно разбросанных данныхǢ
5.

Line

-

обычный
линейный графикǢ
6.

Candlestick

-


отображение


японских свечей.
Картинка
,

описывающая график полностью не соответствует реальному
содержанию.

График не удовлетворяет поставленным задачам
в силу отсутствия

поддержки визуализации объемов

и
несоотв
етствия необходимому стилю пользовательского
интерфейса
;

7.

Gauges

-

отобр
ажение данных в виде циферблатаǢ
8.

Gantt

-


изо
бражения диаграмм Ганта.




16



Итак
,

с
реди
стандартных
графиков
Oracle

APEX
ǡ только один

(
C
a
ndlestick
)

можно

было бы

использовать для финансовых

приложений
,
но он не включает объемы
,

характерные для
технического анализа
.

Anychart


Для построения графиков и диаграмм в Oracle APEX встроена
компонента AnyChart

(9
)
,

дл
я корректной работы которойǡ необходим
установленный Flash Player версии 9 и выше.


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


Anychart представляет собой набор Flash (SWF) файловǡ благодаря
которым ставится возможным создание анимированных графиков.
Компонента полностью управляется XML интерфейсомǡ который
позволяет задавать огромное количество настроек таких какǣ
прозрач
ностьǡ цветǡ WEB
-
ссылкиǡ подписи и другое. Все настройки
устанавливаются через XML файлǡ поэтому отсутствует
необходимость в изменении Flash
-
файла

(10)
.









1
7


Глава 2.
Особенности реализации


Исходя из архитектуры
Oracle

APEX

(разд
ел

работы

«
Oracle APEX
описание среды разработки
»
)

можно заметитьǡ
что

для того чтобы

добиться поддержки нового вида графиков необходимо опуститься до
уровня Chart
-
XMLǡ за который отвечает компонента AnyChart.

К
сожалениюǡ при

помощи создания шаблона вида
:

регион
-
график
(
Template

Class
:
Chart

Region
),

через стандартные интрерфейсы
APEX

доступ к
этому уровню осуществить

невозможно.

Поэтому было
решено использовать
Application Process типа OnDemandǡ

решающий
эту проблему
.
Для каждого нового вида графика был
создан свой
Application

process
ǡ который возвращает данные в виде XMLǡ
сформатированном для компоненты AnyChart

(формируется
XML
-
с
трока простым циклом по
SQL
-
запросу)
ǡ а также задает внешний вид
графиков на все том же
XML
.

Таким образомǡ для поддержки ново
го
вида графика необходимо создать регион
ǡ в котором он будет
отображаться

и в его
коде
(
Region

Source
) осуществить вызов
соответствующего
Процесса приложения (
Application

Process
)
.

Процессы приложения (
Application

Process
)
,

так же как и шаблоныǡ
можно

вы
гружать в формате .
sql

и

импортировать и
ли

экспортировать между разными экземплярами
Oracle

Database
.


При создании внешнего вида графиков

ориентацияǡ

там где

возможно
,

шла на дизайн пользовательского интерфейса
информационного портала о финансовых рынках

finam.ru

(3
)
.




18


График с двойной шкалой


После реализации Процесса приложения (Application proce
ss) под
названием ExtraAxes

и его вызоваǡ в Oracle APEX описанный выше
график имеет следующий видǣ


Двухсекционный

график с объемами в виде баров


После реа
лизации Процесса приложения (Application process) под
названием
BarChart

и его вызоваǡ в Oracle APEX описанный выше
график имеет следующий видǣ


19


Двухсекционный график с объемами в виде свечей


После реализации Процесса приложения (Application process) под

названием
CandleChart

и его вызоваǡ в Oracle APEX описанный выше
график имеет следующий видǣ


График с нарастающими итогами


Нарастающие итоги можно было бы пос
троить
SQL
-
запросом
ǡ на
основе таблицы из раздела «Глава 1.
График с нарастающими
итогами». Од
нако такой запрос имел бы очень сложный вид и крайне
долго исполнялся.


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


После реализации Пр
оцесса приложения (Application
P
rocess) под
названием
RunningTotal

и его вызоваǡ в Oracle APEX описанный выше
график имеет следующий видǣ

20




Пожалуйǡ главным достоинством этого графика является тоǡ что
данные из таблицы

в

1
000 строк он прорисовывает почти в 500 раз
быстрее
ǡ чем это делалось бы при помощи обычного графика после

исполнения
соот
ветствующего

sql
-
запрос
а
.

Импорт

созданных графиков


Что
бы

импортировать

процесс

прилож
ения

на

свой

экземпляр

Oracle

APEX
,
необходимо

внутри

Oracle

APEX

зайти

в

«
Export
\

Import
»
-


«
Import
»ǡ
выбрать

файл
,
например
,
ChartTemplate
.
sql

(
он

должен

быть

заранее

скачен
)
,
в

File

Type

выбрать

Database

Application
,
Page

or

Component
.
После нажатия кнопки «Next» компонента добавится в
приложение
и будет готова к использованию. Все загруженные файлы
хранятся в отдельном репозиторииǡ посмотреть который можно в
«Application Builder»
-
> «Export Repository».


Для корректной установки необходимоǡ чтобы ID рабочей области
(Workspace ID), Name , theme_id

в файле экспорте и приложенииǡ куда
устанавливается компонентаǡ совпадали. В случае несовпадения
нужно
вручную
прописать в файле экспорта соответствующие
значения того приложенияǡ куда устанавливается компонента.



21


Стратегия трейдинга «
Путь чер
е
пах
»



«Пу
ть черепах»
-

стратегия финансового трейдинга
ǡ описывающая
стратегию биржевой торговли двух известных американских
трейдеровǣ Ричарда Денниса и Вильям
а Экхардта. Эта стратегия была

опубликованная их учеником Куртисом Фейсом

в одноименной книге
в 2008 году
.


Чтобы продемонстрировать работу созданных мною шаблоновǡ
было решено реализовать приложение демонстрирующее работу
этой стратегии.


Книга написана не математикомǡ поэтому основные шаги
алгоритма торговли не собраны в едином местеǡ а разбросаны по всей

книгеǡ в связи с чемǡ первостепенной задачей стояло написание
алгоритма торговли в строгой математической формеǡ а уже затем
создание приложения реализующего эту стратегию.


Созданное

приложение позволит узнать является ли «Путь
черепах» прибыльной страте
гией в условиях современной экономики.
Или жеǡ способы торговлиǡ придуманные известными трейдерами
конца прошлого столетияǡ в настоящее время уже являются
непригодными.

Изначально алгоритм предназначался

для дневных
баров
,

так как
на

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

а
лгоритм
а к данным
имеющим более низкую

периодичность
баров например часовуюǡ
получасовую и т.д

Описание а
лгоритм
а


На вход алгоритму
подается максимально возможное к
оличество
открытых позиций
. Далее основываясь на некоторых правилах
22


торговли и исходных данныхǡ осуществляются сделки по
купле
\
продаже контрактов выбранного финансового инструмента.


Введем несколько основных определений и

приведем ключевые
формулы.


Истинный диапазон (
ATR
)

-

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

вычисляется по следующей формулеǣ



Истинный ди
апазон = Максимум (H


L, H


PC, P
C

L)



Гдеǣ






H


Максимум за временной период (High)






L


Минимум за временной период(Low)






P
C


цена закрытия предыдущего вре
менного периода
(Previous

Close)



Число
N



показатель

для отображения волатильности конкретного
рынка.

В течение перв
ых 20 временных промежутков числ
о N не
вычисляетсяǡ а на 21

инициализируетсяǡ как среднее значение

истинных диапазонов
последних 20 временных промежутков
.

Далее
число N вычисляется

по следующей формулеǣ



N = (19*P
N + TR)
\
20




Гдеǣ





P
N


значение N
предыдущего
временного промежутка

(Previous

N
)





TR


текущий

истинный диапазон



Юнит
-

единица измерени
я размера позиции
ǡ измеряется в
контрактах.

Размер юнита вычисляется по следующей формулеǣ



U = Round[ (0,01*Inv)
\

V
rub
]




Где
:




U



размер
юнита

23





Inv



размер торгового счета




V
rub

-

волатильность в рублях


Волатильность в рублях в свою очередь вычисляется какǣ



V
rub

= N *
CP



Гдеǣ




CP


-

ц
ена одного контракта

в рублях






N



число
N


временного проме
жутка


В качестве исх
одных данных для
алгоритма выступает

таблица

со
следующей информациейǣ

1)Дата

2)Максимум за временной промежуток

3)Минимум за временной промежуток

4)Цена открытия за временной промежуток


5
)Цена закрытия

за временной промежуток

6
)Ист
инный диапазон

7
)
Число
N


А
лгоритм торговли

может быть изображен следующей блок
-
схемой
:

24



Где
:


Price



текущая цена за наблюдаемый контрактǢ


MaxBound




максимально возможное количество юнитов

(входной
параметр)
;


OpenPrice




цена покупки юнитаǢ


N



число
N

текущего временного промежутка

(берется из
таблицы)Ǣ

25



Stop
Price




критическая отметка ценыǡ при которой мы еще держим
юнит.

Для первого купленного юнита вычисляетсяǡ какǣ
OpenPrice



2 *
N
ǡ при покупке последующих
stop
Price

увеличи
вается на
N
/2

для всех
юнитов.


Напримерǡ р
ассмотрим следующие цены на золото за конец 2008
года.




30.12.2008 цена достигла максимума за последние 55 дней и мы
решаем открыть позиции.
StopPrice

в таком случае будет равнятьсяǣ
877


23,57 *

2 = 829ǡ 86. Соответственно если цена достигнет уровня
877+23,57
\
2 = 888ǡ 785 будем покупать еще один юнитǡ а если
спустится ниже отметки 829ǡ 86 будем продавать только что
купленный.


Особенности ре
а
лизации алгоритма

«Путь черепах»


Алгоритм оформлен в
качеств
е самостоятельного модуля
ǡ который


автоматич
ески создает

все необходимые для реализации

алгоритма
таблиц
ыǡ вызывает соответствующие

процедуры и функции

и
запускает алгоритм на основе заранее подготовленных данных по
26


цене выбранного финансового инс
трумента (напримерǡ
экспортированных с
finam
.
ru
).


В ходе
реализации алгоритма для каждого выбранного контракта

была создана основная таблица с полями (
id
,
date
_
deal
,
open
,
high
,
low
,
close
,
open
_
price
,

N
,
ATR
,
close
_
price
,
open
_
position
)
,

и вспомогательна
я
units

(
id
,

stop
_
price
,

contracts
)
.
Гдеǣ
date
_
deal



дата
;
open
,
high
,
low
,
close



величина открытияǡ закрытияǡ ма
ксимальной и минимальной цены
за промежуток от предыдущего
date
_
deal

до текущегоǢ

N

-

число
N

текущего дня
;

ATR
-
текущий истинный диапазон це
ныǢ

open
_
price
,
close
_
price



цена по которой совершалась сделка купли или продажиǡ
если таковая былаǢ

open
_
position



количество купленных или
проданных контрактовǢ
stop
_
price



критическая отметка цены для
продажи юнитаǢ
open
_
position



размер юнита в ко
нтрактах.


Ориентируясь на основную таблицу
,

проводился анализ работы
алгоритма и строились графики
,

визуализирующие

его работу.
Таблица
units

была необходима для того
,

чтобы отслеживать
количество

юнитов имеющихся на рукахǡ а так же для хранения
стоп
-
цены
по каждому купленному юниту
.


Основная логика алгоритма
был
а

реализован
аǡ

как хранимая
процедура

tortoise
_
way
ǡ принимающая параметром количество
юнитовǡ которое максимально можно держать на руках (
maxBounds
).
Процедура
tortoise
_
way

использовала внутри

себя вызов ряда
вспомогательных процедур.


Апробировать алгоритм

было решено на низковолатильном
контракте

SPFB.GOLD (фьючерсы по золоту)
,

SPFB.
SILV
(
фьючерсы по
серебру
)

и высоковолатильном
RIM
2 (
индекс РТС
)

за п
ериод с
01.12.2008 по 04.04.2012
.

Периодич
ность цены для сравнения бралась
дневная и часовая.

27



Все необходимые данные по выбранным контрактам были
экспортированы с сайта finam.ru
.


Напримерǡ р
езультат работы алгоритма

на дневном контракте
SPFB.GOLD

за год

можно наблюдать на следующем графикеǣ




Нарастающие итоги маржи

по результатам работы на основе цены
по днямǣ


28



Ре
зультаты апробации алгоритма на перечисленных контрактах
можно наблюдать в следующей сводной таблицеǣ



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

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

необходимо апробировать его на
большем количестве контрактов.





29


Заключение

В ходе данной дипломной
работы были достигнуты следующие
результатыǣ

1.

Разработан механизм расширения возможностей
Oracle

APEX

позволяющий использовать в приложениях графики следующих
видовǣ



График с двойной шкалойǢ



Двухсекционный график с объемами
и ценой
в виде
свечейǢ



Двухсекци
онный график с объемами

и ценой

в виде баровǢ



График с нарастающими итогамиǢ

2.

Реализован и визуализирован при помощи полученных
графиков алгоритм финансового трейдинга «Путь черепах».

3.

Алгоритм апробирован на живых данных с
finam
.
ru

по дневным
и часовым бар
ам контрактов по золотуǡ серебру и индексу РТС за
пе
риод с 01.12.2008 по 04.04.2012.















30


Список литературы

1.

Фейсǡ К. (2008).
Путь черепах.

Москваǣ Маннǡ Иванов и Фербер
,

3
0
4

с
т
р
.

2.

Эрлихǡ А. (1996). Технический анализ товарных и финансовых

рынков. Мо
скваǣ Инфра
-
М
,

1
7
6

с
т
р
.

3.

О
б
у
ч
е
н
и
е

ф
о
р
е
к
с

н
а
ч
и
н
а
ю
щ
и
м
,

U
R
L
:

h
t
t
p
/
w
ww
.
forex
-
mix
.
r
u
/

4.

Акелисǡ С. (1999)
.

Технич
еский анализ. Москваǣ Диаграмма
,

2
1
4

с
т
р
.

5.

Официальный сайт холдинга «Финам»
,
URL
:

http
://
www
.
finam
.
ru
/

6.

Нисон.С
.
(1998)
.

Японские свечи.

Графический анализ
финансовых рынков. Москва
:
Диаграмма
,

3
3
6

с
т
р
.

7.

Oracle® Application Express Application Builder User’s Guide
(Release 4.1)
,

8
1
8

с
т
р
.

8.

Oracle® Database 2 Day + Application Express Developer’s Guide

(Release 4.1)
,

8
2

с
т
р
.

9.

Официальный

сайт

Anychart
,
URL
:
http
://
www
.
anychart
.
com
/

10
.
John Edward Scott and Scott Spendolini.

(2008)
.

Pro Oracle
Application Express. New York: Apress
,

7
1
2

с
т
р
.



Приложенные файлы

  • pdf 7132949
    Размер файла: 1 MB Загрузок: 1

Добавить комментарий