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

Подход к разработке и программной реализации инструментальной системы (среды) для проектирования, тестирования и реализации торговых алгоритмов. Способы получения и передачи данных от торгового терминала в среду и наоборот; обзор программных средств.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 07.03.2019
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на Allbest.ru

Аннотация

В статье описан подход к разработке и программной реализации инструментальной системы (среды) для проектирования, тестирования и реализации торговых алгоритмов. Описаны способы получения и передачи данных от торгового терминала в среду и наоборот. Проведен обзор аналогичных программных средств, выделены основные достоинства данного подхода к проектированию. Для реализация применен прототипный подход программирования, который использован в качестве объектно-ориентированной модели, что позволяет значительно упростить возможность программирования торговой системы. В качестве метода исследования использовано наблюдение. Объектом исследования является алгоритм. В качестве субъекта используется набор данных, на основании анализа которых проектируется алгоритм. Основной новизной предложенного подхода является использование для проектирования и реализации алгоритма является прототипный подход программирования, который применен в качестве объектно-ориентированной модели. Предложена схема обмена данными со сторонними приложениями по средствам функций нативных динамических библиотек терминала. Предложен алгоритм работы приложения. Ключевые слова: анализ данных, программное обеспечение, lua, программирование, разработка, фондовый рынок, тестирование, оптимизация,. NET, C#

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

Abstract

The article describes an approach to the development and implementation of a software system for the design, testing and implementation of trading algorithms. The author shows methods of obtaining and transmitting data from a medium to the terminal and vice versa. The article presents a review of similar software and highlights the main advantages of this approach to design. The author uses a prototype-based programming approach to software implementation. As a method of research the author uses observation. The object of research is the algorithm. The subject of the study is a data set for analysis of the algorithm. The main novelty of the proposed approach is to use prototype-based programming approach to algorithm design and implementation used as an object-oriented model. The article suggests a scheme of data exchange with third-party applications using functions of native dynamic libraries of a terminal. The study gives an algorithm for the application.

Keywords:

data analysis, software, lua, programming, development, stock market, testing, optimization,. NET, C #

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

1. Инструменты, встроенные в торговый терминал

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

LUA - еще один несложный язык для терминала QUIK. Имеет больший функционал, чем Qpile. Однако большую популярность еще не приобрел. Сам код работает непосредственно в терминале QUIK.

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

2. 1 Wealth Lab. На текущий день данная программа признается одной из самых мощных для технического анализа. Она является полноценным средством разработки, анализа и оптимизация торговых алгоритмов. Существует два варианта программы: версия Developer - для программирования и оптимизации торговых стратегий и версия PRO - с возможностью совершения торговых операций через американского брокера Fidelity Investment. Существует визуальный конструктор стратегий. Стоимость использования данной программы составляет около 800$, а также присутствует абонентская плата за версию PRO. Язык для написания кода - C#.

2. 2. Tradematic. Хорошо адаптированная под русскоязычное население программа. Обладает широким функционалом, сопоставимым с лучшими торговыми системами, однако широкого распространения не имеет. Встроенный конструктор позволяет создавать стратегии без изучения языков. Доступны для написания алгоритмов языки - C#, Visual Basic, J#. JScript. Программа бесплатна для тестирования торговых алгоритмов, для подключения к бирже требуется абонентская плата.

2. 3. Metastock. Содержит обширную библиотеку индикаторов и средства для создания собственных формул. Программа имеет модульный принцип - модуль Expert Adviser для генерирации сигналы на покупку и продажу, модуль System Tester для создания и тестирования торговые стратегии и т. д. Есть простой встроенный язык макрокоманд, который в силу своей простоты не позволяет создавать сложные гибкие системы.

2. 4. Omega. Довольно популярная в прошлом программа со встроенным языком EasyLanguage. Программа имеет широкие гибкие возможности и настройки, однако крайне не устойчива и сложна в настройке.

2. 5. TS Lab. Довольно популярная программа для создания, анализа торговых систем. Имеет платную версию для торговли на бирже, однако версия для тестирования бесплатна. Встроенный визуальный редактор позволяет создавать системы, однако, сложные системы возможно создавать только с помощью языка платформы. NET.

Внешние программы, разработанные программистом самостоятельно. В этом случае можно использовать любой язык программирования, который знаком человеку. Несколько лет назад пользовалась популярностью связка терминала QUIK и Microsoft Excel, в котором алгоритм реализовывался на языке Visual Basic. В настоящий момент существует русскоязычная разработка Stock#. Это библиотека для разработки торговых роботов. Основана на платформе. NET. Довольно мощная и гибкая библиотекой для написания роботов, однако не программисту будет довольно сложно в ней разобраться.

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

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

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

Для этих целей наиболее подходит довольно молодой язык программирования - LUA. Этот язык несет в себе множество парадигм. Он обеспечивает довольно скромный набор базовых механизмов, которые могут быть расширены для решения различных задач, а не набор сложных жёстких спецификаций, обеспечивающих программирование в единой парадигме. В LUA нет в явном виде механизма наследования, однако его реализация возможна с помощью метатаблиц. LUA реализует набор дополнительных функций, такие как Garbage Collector (сборщик мусора), принудительное приведение типов, которое является важным для пользователей, минимальный набор примитивных типов и др. Сам язык легко адаптируется к большинству приложений.

Именно поэтому было принято решение использовать связку LUA и приложение на платформе. NET для разработки системы тестирования и оптимизации торговых алгоритмов. Структура связи разработанного на LUA торгового алгоритма и непосредственно самой программы для исполнения алгоритма, его тестирования и оптимизации довольно простая (Рис. 1).

Рис. 1. Схема обмена данными между приложением и LUA-скриптом

Любой скрипт написанный на LUA должен содержать в себе метод-функцию runStrategy (bars), в качестве параметров в которую передаётся таблица bars. Таблица bars представляет собой ассоциативный массив данных о свечах и имеет следующую структуру:

bars = {

{ year, month, day, dayOfWeek, hour, minute, second, open, high, low, close, volume, openInt},

}

где year-год, month-месяц, day-календарный день, dayOfWeek-день недели, hour-час, minute-минута, second-секунда, open-цена открытия свечи, high-максимальное значение свечи, low-минимальное значение свечи, close- цена закрытия свечи, volume-объем, openInt-открытый интерес.

Алгоритм работы программа следующий:

Написанный LUA-скрипт запускается на исполнение.

Формируется ассоциативный массив bars, получаемый из файла с набором данных о свечах.

Создаётся объект класса Lua и объект класса LuaFunction, по средствам библиотек динамических Lua51. dll и LuaInterface. dll.

Происходит вызов функции runStrategy () Lua-скрипта с передачей в него параметров - сформированного ассоциативного массива bars в виде Lua-таблицы.

Интерпретатор LUA исполняет скрипт, возвращая в приложение таблицу сделок.

Программа выводит на графике свечей сделки в графическом формате (Рис. 2).

Рис. 2. Визуальный интерфейс графика зависимости цены от времени

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

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

? простота использования за счет использования языка LUA

? универсальность, которая достигается по средствам использования скрипта без изменений, как в реализованной программе, так и в терминале QUIK.

Библиография

1. Милованов М. М. Современные подходы к моделированию и анализу бизнес-процессов предприятия [Электронный ресурс]//»Управление экономическими системами. Электронный научный журнал», 2011, №11. -Режим доступа: http: //www. uecs. ru/

2. Милованов М. М. Прогнозирования поведения инструментов финансовых рынков с помощью рефлексивных процессов // Электронный научный журнал «Финансы и учет». -2014. -Выпуск 4 (26) Октябрь-Декабрь. С. 21-23. [Электронный ресурс]. - Режим доступа: http: //www. finance-and-accounting. ingnpublishing. com/archive/2014/release-4-26-octoberdecember/milovanov_m_m_prognozirovaniya_povedeniya_instrumentov_finansovyh_rynkov_s_pomow_yu_refleksivnyh_processov/

3. Милованов М. М. Применение рефлексивного анализа как основание для краткосрочного прогнозирования поведения финансовых рынков // Экономика и менеджмент инновационных технологий. 2015. № 2 [Электронный ресурс]. URL: http: //ekonomika. snauka. ru/2015/02/8324.

4. Милованов М. М. Применение технического анализа для исследования внутридневных трендов. Теплотехника и информатика в образовании, науке и производстве: сборник докладов IV Всероссийской научно-практической конференции студентов, аспирантов и молодых учёных (TИМ'2015) с международным участием, посвящённой 95-летию основания кафедры и университета (Екатеринбург, 26-27 марта 2015 г.). - Екатеринбург: УрФУ, 2015. - 264 с.

5. Милованов М. М. Информационные технологии. Электронный учебно-методический комплекс / Электрон. дан. -Новокузнецк: СибГИУ, 2014. : ил. -1 электронный DVD диск (DVD-ROM) ; № гос. регистрации 0321400939

6. Милованов М. М. Разработка и программная реализация инструментальной системы тестирования торгового алгоритма // Программные системы и вычислительные методы. - 2015. - 2. - C. 217 - 224. DOI: 10. 7256/2305-6061. 2015. 2. 15417.

7. В. И. Галочкин Задачи заключительного тура Международной интернет-олимпиады по информатике и программированию 2012 года для студентов вузов России и ближайшего зарубежья // Программные системы и вычислительные методы. - 2012. - 1. - C. 17 - 27.

8. Голосовский М. С. Информационно-логическая модель процесса разработки программного обеспечения // Программные системы и вычислительные методы. - 2015. - 1. - C. 59 - 68. DOI: 10. 7256/2305-6061. 2015. 1. 14119.

9. Бородин А. В., Бирюков Е. С. О практической реализации некоторых алгоритмов, связанных с проблемой композиции чисел // Кибернетика и программирование. - 2015. - 1. - C. 27 - 45. DOI: 10. 7256/2306-4196. 2015. 1. 13734. URL: http: //www. e-notabene. ru/kp/article_13734. html

10. Лячек Ю. Т., Чеканова С. И., Абдулкадер Б. А. Создание параметрических моделей конструкторских чертежей на основе их адаптивной базовой сети // Программные системы и вычислительные методы. - 2013. - 2. - C. 181 - 191. DOI: 10. 7256/2305-6061. 2013. 2. 7470.

Размещено на Allbest.ru


Подобные документы

  • Обеспечение универсальности функций тестирования при разработке программы для тестирования студентов. Бесплатное программное обеспечение. Анализ выбора среды программирования. Особенности среды Delphi и СУБД MySQL. Описание алгоритма и блок-схемы.

    курсовая работа [1,6 M], добавлен 01.02.2013

  • Инструментальные средства проектирования интеллектуальных систем. Анализ традиционных языков программирования и представления знаний. Использование интегрированной инструментальной среды G2 для создания интеллектуальных систем реального времени.

    контрольная работа [548,3 K], добавлен 18.05.2019

  • Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".

    дипломная работа [3,2 M], добавлен 11.09.2014

  • Обоснование необходимости систем компьютерного тестирования. Выбор среды программирования. Специфика сферы логистики. Организация программной среды аудита знаний. Используемые элементы среды программирования. Разработка алгоритма работы программы аудита.

    дипломная работа [809,9 K], добавлен 07.01.2017

  • Организация проверки результатов обучения и оценки знаний, использование систем тестирования, основные требования к ним. Создание современной модели WEB-сервиса тестирования знаний; программная реализация; защита от копирования информации и списывания.

    курсовая работа [24,1 K], добавлен 11.05.2012

  • Объектный подход как метод реализации программных систем. Проектирование и программная реализация стратегической системы, реализующей процессы создания и взаимодействия группы объектов. Разработка объектной модели. Назначение элементов интерфейса.

    курсовая работа [4,1 M], добавлен 11.05.2012

  • Изучение инструментальной графической среды программирования промышленных контроллеров и языка программирования FBD. Разработка приложения, реализующего вычисление арифметических и логических выражений. Проверка работы приложения программой "Maple".

    контрольная работа [2,2 M], добавлен 26.05.2015

  • Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.

    курсовая работа [1,4 M], добавлен 18.01.2017

  • Выбор инструментальной системы управления базами данных. Описание Торговой Информационной Системы, предназначенной для ведения учета на производственных предприятиях, в оптовых и розничных торговых компаниях. Руководство для пользователя программы.

    дипломная работа [1,6 M], добавлен 07.12.2012

  • Особенности метода неопределенных множителей Лагранжа, градиентного метода и метода перебора и динамического программирования. Конструирование алгоритма решения задачи. Структурная схема алгоритма сценария диалога и описание его программной реализации.

    курсовая работа [1010,4 K], добавлен 10.08.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.