Library
|
Your profile |
Cybernetics and programming
Reference:
Milovanov M.M.
Software implementation of a workbench for testing trading algorithm based on the project approach
// Cybernetics and programming.
2016. № 1.
P. 229-235.
DOI: 10.7256/2306-4196.2016.1.17855 URL: https://en.nbpublish.com/library_read_article.php?id=17855
Software implementation of a workbench for testing trading algorithm based on the project approach
DOI: 10.7256/2306-4196.2016.1.17855Received: 04-02-2016Published: 11-02-2016Abstract: 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.Инструменты, встроенные в торговый терминал
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.
У всех рассмотренных программных продуктов примерно похожий функционал, однако, для конечного пользователя, не знакомого с языком программирования, использование данных продуктов значительно усложнено, а их высокая стоимость часто не позволяет воспользоваться функционалом программ. К тому же многие платформы для разработки торговых систем очень требовательны к ресурсам компьютера. Проблема освоения таких программ в основном заключается в трудности понимания принципов объектно-ориентированного программирования, необходимости запоминать порой сложные структуры классов и т.д. Однако использование прототипного программирования в качестве объектно-ориентированной модели позволяет значительно упростить возможность программирования торговой системы. В связи с этим появилась идея создания программного продукта, который, имея функционал систем разработки торговых алгоритмов, включал бы все преимущества прототипного программирования для создания, тестирования и оптимизации торговых алгоритмов, упрощая тем самым работу конечного пользователю. Для этих целей наиболее подходит довольно молодой язык программирования – 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-открытый интерес. Алгоритм работы программа следующий:
Рис. 2. Визуальный интерфейс графика зависимости цены от времени Данный подход к проектированию и реализации торгового алгоритма имеет ряд преимуществ по сравнению с другими продуктами: − высокая скорость работы, поскольку используются функции нативных динамических библиотек торгового терминала − простота использования за счет использования языка LUA − универсальность, которая достигается по средствам использования скрипта без изменений, как в реализованной программе, так и в терминале QUIK. References
1. Milovanov M.M. Sovremennye podkhody k modelirovaniyu i analizu biznes-protsessov predpriyatiya [Elektronnyi resurs]//«Upravlenie ekonomicheskimi sistemami. Elektronnyi nauchnyi zhurnal», 2011, №11.-Rezhim dostupa: http://www.uecs.ru/
2. Milovanov M.M. Prognozirovaniya povedeniya instrumentov finansovykh rynkov s pomoshch'yu refleksivnykh protsessov // Elektronnyi nauchnyi zhurnal "Finansy i uchet".-2014.-Vypusk 4(26) Oktyabr'-Dekabr'. S. 21-23. [Elektronnyi resurs]. – Rezhim dostupa: 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. Milovanov M.M. Primenenie refleksivnogo analiza kak osnovanie dlya kratkosrochnogo prognozirovaniya povedeniya finansovykh rynkov // Ekonomika i menedzhment innovatsionnykh tekhnologii. 2015. № 2 [Elektronnyi resurs]. URL: http://ekonomika.snauka.ru/2015/02/8324. 4. Milovanov M.M. Primenenie tekhnicheskogo analiza dlya issledovaniya vnutridnevnykh trendov. Teplotekhnika i informatika v obrazovanii, nauke i proizvodstve: sbornik dokladov IV Vserossiiskoi nauchno-prakticheskoi konferentsii studentov, aspirantov i molodykh uchenykh (TIM’2015) s mezhdunarodnym uchastiem, posvyashchennoi 95-letiyu osnovaniya kafedry i universiteta (Ekaterinburg, 26–27 marta 2015 g.). – Ekaterinburg: UrFU, 2015. – 264 s. 5. Milovanov M.M. Informatsionnye tekhnologii. Elektronnyi uchebno-metodicheskii kompleks / Elektron. dan.-Novokuznetsk: SibGIU, 2014.:il.-1 elektronnyi DVD disk (DVD-ROM); № gos. registratsii 0321400939 6. Milovanov M.M. Razrabotka i programmnaya realizatsiya instrumental'noi sistemy testirovaniya torgovogo algoritma // Programmnye sistemy i vychislitel'nye metody. - 2015. - 2. - C. 217 - 224. DOI: 10.7256/2305-6061.2015.2.15417. 7. V.I. Galochkin Zadachi zaklyuchitel'nogo tura Mezhdunarodnoi internet-olimpiady po informatike i programmirovaniyu 2012 goda dlya studentov vuzov Rossii i blizhaishego zarubezh'ya // Programmnye sistemy i vychislitel'nye metody. - 2012. - 1. - C. 17 - 27. 8. Golosovskii M.S. Informatsionno-logicheskaya model' protsessa razrabotki programmnogo obespecheniya // Programmnye sistemy i vychislitel'nye metody. - 2015. - 1. - C. 59 - 68. DOI: 10.7256/2305-6061.2015.1.14119. 9. Borodin A.V., Biryukov E.S. O prakticheskoi realizatsii nekotorykh algoritmov, svyazannykh s problemoi kompozitsii chisel // Kibernetika i programmirovanie. - 2015. - 1. - C. 27 - 45. DOI: 10.7256/2306-4196.2015.1.13734. URL: http://www.e-notabene.ru/kp/article_13734.html 10. Lyachek Yu.T., Chekanova S.I., Abdulkader B.A. Sozdanie parametricheskikh modelei konstruktorskikh chertezhei na osnove ikh adaptivnoi bazovoi seti // Programmnye sistemy i vychislitel'nye metody. - 2013. - 2. - C. 181 - 191. DOI: 10.7256/2305-6061.2013.2.7470. |