Съдържание[Крия][Покажи]
Индустрия, която силно интересува тези, които търсят работа, е търговията с валута. Софтуерните фирми получават заявки от търговци по целия свят за предоставяне на платформа за търговия, която може бързо и ефективно да оценява данни за валутни двойки.
Платформата за търговия е софтуерна програма, предоставена на търговци и инвеститори от определени финансови организации, като банки и брокерски компании.
Платформите за търговия по същество позволяват на инвеститорите и дилърите да сключват сделки и да следят сметките си. Други функции, които помагат на инвеститорите при вземането на инвестиционни решения, често са включени в системите за търговия.
Котировки в реално време, интерактивни диаграми, разнообразие от инструменти за графики, емисии с новини на живо и първокласни проучвания са няколко примера за тези възможности.
Платформите могат да бъдат проектирани и за определени пазари, като тези за акции, валути, опции или фючърси.
Повече от десетилетие автоматизираните системи за търговия, известни още като алгоритмична търговия, са заели централната сцена на търговската индустрия.
„Система за търговия“, понякога известна като „стратегия за търговия“, не е нищо повече от набор от правила, които се прилагат към входните данни, за да осигурят входни и изходни сигнали за покупка/продажба. Въпреки факта, че създаването на стратегия за търговия може да изглежда лесно, не е!
Умовете зад количествената търговска стратегия се наричат „Quants“ в областта на алгоритмичната търговия, тъй като разработването на добра търговска стратегия изисква задълбочено количествено проучване.
Основният дизайн на автоматизираните системи за търговия е претърпял значителни модификации през последните десет години и все още се променя.
Индустрията за алгоритмична търговия се превърна в огнище за развитие на компютърните и мрежови технологии, защото стана необходимо за бизнеса, особено тези, които използват високочестотни системи за търговия, да правят иновации в технологиите, за да се конкурират в света на алгоритмичната търговия.
Ще обсъдим платформата за търговия дизайн на системата в тази статия. Основните спецификации за платформа за търговия включват нейната архитектура, протоколи и инструкции за създаване на ваша собствена автоматизирана система за търговия.
Изисквания към софтуера за автоматизирана търговия на основно ниво
Най-доброто решение е това, което напълно отговаря на софтуерните изисквания. Основните спецификации на софтуера за автоматизирана търговия са:
- Мащабируемост (капацитетът на системата да обработва нарастващ обем от заявки и работно натоварване);
- Мултипроцесорност и отлична производителност;
- Безопасност и сигурност (как реагира на пробиви или нападения, които идват внезапно и предпазва от незаконно влизане);
- Оперативна съвместимост (способността на системата да взаимодейства с други системи);
- Надеждност (как разрешава повреди и работи въпреки проблемите).
Алгоритмичните системи за търговия изискват изключително квалифициран труд и внимателно внимание. По-лесно е да се разберат функционалните изисквания на системата, когато има ясни нефункционални изисквания. Те служат като управляващи стандарти за екипите за разработка на софтуер за установяване и определяне на качеството на продукта.
Функционалните характеристики на платформата за търговия включват
Успешната поддръжка на различни методи на плащане, защитени облачни хостинг услуги, мощни инструменти за анализ на данни, управление на риска, прецизни котировки и подходящи видове графики са важни функционални нужди.
По-долу са някои основни атрибути на автоматизираните платформи за търговия, на които всички търговци обръщат голямо внимание:
Табло за управление, показващо статистически данни
За целите на провеждането на едновременна проверка в реално време на валутните курсове в няколко часови зони, платформата трябва да изпълнява непрекъснати актуализации, да работи с данни от много диаграми и да работи с ценови листове.
заверка
Бързият, но надежден метод за проверка първо създава образа на безопасна платформа и елитни инженерни усилия.
Софтуерът за търговия може да поддържа достъп от множество акаунти, подобно на платформи за търговия с отворен код с двуфакторно удостоверяване (с помощта на SMS или Google Authenticator, например), но можете също да имате система с активиран достъп чрез имейл, телефонен номер или друго начини само за малка група търговци.
новинарска емисия
Преди да вземете каквото и да е финансово решение, важно е да направите проучване. За да предотвратят грешки, причинени от невежество, търговците могат да се възползват от удобни новини, уместни прегледи и прозрения за световните валутни пазари, всички от които са достъпни незабавно на техните платформи за търговия.
Удобна функционалност за администратори и потребители
В такава система способността за бързо управление на всичко с едно кликване е от съществено значение. Това включва управление на транзакции, чакащи и изпратени поръчки, лични акаунти, индикации за напредъка на поръчките и заявки на клиенти.
Това дава възможност за вземане на решения в най-кратки срокове и гарантира непрекъснат достъп до важна информация.
Използване на насочени известия
Потребителите очакват, че платформите за търговия ще бъдат достъпни денонощно и ще бъдат информирани за всякакви проблеми със сигурността или за най-новите промени.
Можете да бъдете информирани с персонализирани известия, тъй като платформата за търговия проследява икономическите събития, колебанията на цените, развитието на пазара, техническите индикатори и т.н. и изпраща актуализации за позицията ви на акции.
Теглене и плащания
Тази функция е необходима, за да извършвате търговски дейности, да проследявате движението на пари в брой и да теглите бързо и сигурно пари от личната си сметка с помощта на кредитна карта, PayPal или директен банков превод.
Когато заявката ви за теглене приключи, ще бъдете уведомени.
Архитектурата на автоматизираната система за търговия
Машината, която изпълнява логиката на вземане на решения в платформата за автоматизирана търговия, известна още като машина за обработка на комплексни събития или CEP, ще бъде в приложението към сървъра.
Приложният слой по същество е a потребителски интерфейс за наблюдение и подаване на параметри към CEP. Въпреки че приложният слой е предимно изглед, някои проверки на риска (които сега са се превърнали в гладни за ресурси операции поради проблема с мащаба) могат да бъдат прехвърлени на приложния слой, особено тези, включващи разумността на потребителските входове, като например грешки с дебел пръст.
Интригуваща ситуация произтича от проблема с мащабируемостта в автоматизирана система за търговия.
Нека си представим, че едно събитие с пазарни данни се обработва от 100 отделни логики (както беше обсъдено в предишния пример). За по-голямата част от 100-те логически единици, да кажем изчислението на гръцки за опции, може да има общи компоненти на сложни изчисления, които трябва да бъдат извършени.
Идентичното точно изчисление ще бъде извършено от всяка единица, ако всяка логика трябва да работи независимо, което би изразходвало ресурси за обработка.
Сложните излишни изчисления често се разделят на различни изчислителни машини, които доставят гърците като вход към CEP в автоматизираната система за търговия, за да се увеличи максимално излишъкът на изчисленията.
Понастоящем отделна система за управление на риска (RMS) в рамките на мениджъра на поръчки (OM) извършва останалите оценки на риска в автоматизирана система за търговия малко преди пускането на поръчка.
Тъй като има само една RMS система за управление на риска във всички логически единици/стратегии, преди това 100 отделни търговци контролираха своя риск. Това се дължи на проблема с мащаба.
Някои оценки на риска обаче могат да бъдат изключително за конкретни стратегии, докато други може да се наложи да бъдат извършени във всички методи.
Следователно самата RMS се състои от глобална RMS (GRMS) и RMS на ниво стратегия (SLRMS). SLRMS и GRMS също могат да се видят чрез потребителски интерфейс (UI).
Нека сега да разгледаме компонентите на сървъра.
Пазарен адаптер
Борсата или всеки друг доставчик на пазарни данни предава данни в своя формат. Този език може или не може да бъде разбран от вашата система за алгоритмична търговия.
Exchange ви дава достъп до API (интерфейс за проектиране на приложения), който можете да използвате, за да програмирате и изградите свой собствен адаптер, за да трансформирате формата на данните във формат, който вашата система може да разбере.
Комплексна машина за обработка на събития
Мозъкът на вашия подход се крие в този раздел. След като имате данните, трябва да ги използвате в съответствие с вашия план, който изисква извършване на различни статистически изчисления, сравнения с минали данни и вземане на решения, които ще доведат до създаването на поръчки.
Този блок се изгражда с помощта на вида на поръчката и сумата на поръчката. Просто казано, едно сложно събитие е колекция от входящи събития. Те се състоят от новини, пазарни движения, тенденции на фондовия пазар и т.н.
Бързото завършване на изчислителни операции върху сложни събития е известно като обработка на сложни събития. Операциите на автоматизирана система за търговия могат да включват откриване на сложни модели, създаване на корелации и установяване на връзки като причинно-следствена връзка и време между всяка входяща информация.
Система за маршрутизиране на поръчки
Използвайки дадените API на борсата, поръчката се криптира на език, който борсата може да разбере. Борсата предлага собствени API и FIX API, два различни типа API.
Родните API са проектирани специално за даден обмен. Набор от насоки, известен като протокол FIX (обмен на финансова информация), се използва от няколко борси за улесняване и подобряване на потока от данни на пазарите за сигурност.
В частта след тази ще обясним повече за FIX. Ако една икономика е отворена, хората могат да подават поръчки чрез автоматизирана система за търговия към борси или не-борси, а ORP трябва да може да обработва поръчки, отиващи в много посоки.
Тук искаме да подчертаем, че сигналът за поръчка може да се извърши ръчно от човек или автоматично. Последният раздел е това, което наричаме „автоматизирана система за търговия“.
Модулът за управление на поръчки включва няколко техники за изпълнение, които изпълняват поръчките за покупка/продажба в съответствие с предварително установена логика.
Управление на риска
Тъй като автоматизираните системи за търговия работят без човешко участие, са необходими строги анализи на риска, за да се гарантира, че системите за търговия функционират по предназначение.
Лошото управление на риска или липсата на проверки на риска за количествена компания може да доведе до значителни невъзстановими загуби. В резултат на това всяка автоматизирана система за търговия трябва да има система за управление на риска (RMS).
Разработване на протоколи за автоматизирани системи за търговия
За да се свържете с няколко дестинации от един сървър, беше необходимо, което стана възможно благодарение на способността на архитектурата да мащабира до много стратегии на сървър.
Следователно, за да предава поръчки до няколко дестинации и да получава данни от множество обмени, мениджърът на поръчки разполага с редица адаптери.
Ролята на всеки адаптер е да служи като интерпретатор между вътрешния комуникационен протокол на системата и протокола, който обменът разбира. По този начин ще са необходими редица адаптери за редица обмени.
Тъй като всяка борса има протокол, съобразен с възможностите, които предлага, трябва да се създаде нов адаптер и да се включи в архитектурата, за да се добави нова борса към автоматизираната система за търговия.
Разработени са стандартни протоколи, за да се предотврати това главоболие от поставянето на адаптер. Протоколът FIX е най-известният от всички тях.
Времето за излизане на пазара за свързване с нова дестинация е значително съкратено, което не само прави управляемо свързването с няколко дестинации в движение.
Автоматизираната система за търговия може лесно да взаимодейства с други доставчици за анализи или емисии на пазарни данни благодарение на съществуването на общи протоколи.
В резултат на това пазарът става изключително ефективен, защото вече няма ограничение за интегриране с ново местоположение или продавач.
Освен това симулацията е направена много проста, тъй като всичко, което е необходимо за свързване към симулатор с помощта на протокола FIX, е да се издават поръчки и да се получават данни от реалния пазар.
Самият симулатор може да бъде създаден вътрешно или закупен от друг източник. Подобно на пазарните данни на живо, записаните набори от данни също могат да бъдат възпроизведени благодарение на адаптери, независими от източника на данните.
Нововъзникващи архитектури с ниска латентност
Стратегиите вече могат да оценяват огромни обеми данни в реално време и да правят бързи търговски избори благодарение на основополагащите елементи на автоматизирана система за търговия.
В резултат на разработването на индустриални стандартни комуникационни протоколи като FIX, сега е по-лесно да се създаде бюро за алгоритмична търговия или автоматизирана система за търговия, което увеличи конкуренцията на пазара за алгоритмична търговия.
Акцентът премина към намаляване на латентността за вземане на решения, тъй като сървърите получиха повече памет и по-високи тактови честоти.
Намаляването на латентността е било необходимо с течение на времето поради различни причини, включително:
- Техниката има смисъл само в среда с ниска латентност.
- Конкуренцията ви елиминира, ако не сте достатъчно бързи в оцеляването на най-силната игра
Колокирането се превърна в абсолютна необходимост в автоматизирана система за търговия за всеки високочестотен метод, включващ една дестинация.
Но системите с множество дестинации изискват щателна подготовка. Преди да направите такъв избор, трябва да вземете предвид променливи като продължителността на времето за отговор на поръчката на дестинацията и как се сравнява с продължителността на ping между двете дестинации.
За да се намали общото забавяне на автоматизираната система за търговия, латентността на мрежата обикновено е първото нещо, на което трябва да се обърне внимание. Но архитектурата може да бъде подобрена и по много други начини.
Латентност на мрежовата обработка
Латентността на мрежовата обработка е забавянето, което въвеждат рутери, комутатори и др. Броят на скоковете, необходими на един пакет да се придвижи от точка А до точка Б, би бил следващото ниво на оптимизация в дизайна на автоматизирана система за търговия.
Прескачането се описва като участък от пътя между източника на пакета и дестинацията, където той не преминава през физическо устройство, като рутер или комутатор.
Това, което наричаме микроизбухвания, също може да окаже влияние върху латентността на мрежовите операции.
Бърз скок в скоростта на предаване на данни, който може или не може да повлияе на средната скорост на трансфер на данни, се нарича микроизбухване.
Тъй като автоматизираните системи за търговия са базирани на правила, всички те ще реагират еднакво на едно и също събитие. Микроизбухване на трансфер на данни между участниците и дестинацията може да възникне в резултат на няколко участващи системи, изпращащи команди наведнъж.
Забавяне на приложението
Забавянето на приложението на автоматизирана система за търговия е мярка за времето, необходимо за обработка на приложение. Това зависи от броя на пакетите, обработката, посветена на логиката на приложението, сложността на използваното изчисление, ефективността на програмирането и т.н.
Системата обикновено ще има по-малко забавяне на приложението, тъй като броят на нейните процесори се увеличава. При по-високи тактови честоти същото важи.
Много автоматизирани системи за търговия се възползват от разпределянето на процесорни ядра към критични части на програмата, като логиката на стратегията, например. Правейки това, процедурата не добавя забавянето, което е резултат от превключване на ядра.
Подобно на това, ако подходът на автоматизирана система за търговия беше програмиран с размерите на кеша и близостта на достъп до паметта, ще има няколко удара в кеша на паметта, което допълнително намалява латентността.
Много системи правят това чрез оптимизиране на кода към конкретната процесорна архитектура, което се прави чрез използване на езици за програмиране на много ниско ниво.
Използвайки напълно програмируеми гейт масиви, някои фирми дори са стигнали дотам, че записват сложни изчисления върху хардуера (FPGA).
Тестване
Тестването, което е акт на идентифициране на недостатъци в софтуерното приложение, е невъзможно да се подценява, особено във Fintech. Поради възможността за финансова загуба, финансовата технология не може да си позволи да има недостатъци.
Колкото повече дефекти могат да идентифицират инженерите по осигуряване на качеството, толкова по-вероятно е готовият продукт да функционира правилно. В зависимост от фирмата, разработваща платформата за търговия или нуждите на клиента, структурата на процеса на тестване включва:
Основата на функционалното тестване е създаването на входни данни и анализирането на резултатите. С използването на фалшиви карти се изпълняват тестови случаи на финансови приложения. Тези карти се стремят да подобрят надеждността, ефективността и прецизността на плащанията.
Откриването на скоростта, скалируемостта и стабилността на системата се извършва чрез тестване на производителността. Скоростта на приложението се оценява, за да се разбере колко бързо реагира, а неговата мащабируемост показва колко потребители може да поддържа едновременно, без да се срива.
Освен това стабилността показва дали приложението функционира правилно при различни натоварвания или има потенциални недостатъци.
Може да е извън възможностите на един търговец на дребно да изгради напълно автоматизирана система за търговия. Автоматизираните системи за търговия, които се предлагат на пазарите на базата на абонамент, са опция за търговци, които желаят да проучат алгоритмичната техника на търговия.
Изграждане на ваши собствени автономни системи за търговия
Начинаещите трейдъри могат да разработят свои собствени техники за алгоритмична търговия и да участват в успешна пазарна търговия. Като обща схема, етапите, изброени по-долу, могат да се използват за създаване на стратегия за алгоритмична търговия:
- Създайте концепция за търговия, която смятате, че ще бъде успешна на активни пазари, като използвате вашето въображение или метод. Концепцията може да бъде извлечена от вашите собствени пазарни наблюдения, книги за търговия, академични статии, блогове за търговия, форуми за търговия или всеки друг източник.
- Съберете необходимата информация – ще ви трябват исторически данни, за да тествате хипотезата си. Тази информация е достъпна от платени доставчици на данни или уебсайтове като Google Finance.
- Писането на план изисква използването на инструменти като Excel, Python или R програмиране. След като разполагате с данните, можете да започнете да кодирате вашия подход.
- Тестването на вашата търговска концепция срещу исторически данни, след като са били кодирани, се нарича бектест на вашия подход. Backtesting включва оптимизиране на входа, установяване на цели за печалба и стоп-лос поръчки, размер на позицията и други свързани задачи.
- Търговия на хартиени носители с вашата стратегия – След фазата на бектестване е необходимо да търгувате на хартиени носители с вашата стратегия. Това ще включва тестване на плана ви с помощта на симулатор за пазарна симулация. За метода на търговия на хартия има брокери, които предоставят платформа за алгоритмична търговия.
- Ако вашият подход е доходоносен след търговия с хартия, можете да го приложите в ситуации от реалния свят. Можете да създадете сметка за търговия с надежден брокер, който предлага алгоритмична търговия.
С всяка изминала година има повече борси, които позволяват алгоритмична търговия както за професионални търговци, така и за търговци на дребно, и все повече търговци използват алгоритмична търговия.
Заключение
Това беше задълбочена статия за архитектурата на автоматизирана система за търговия, за която сме уверени, че предостави изключително проницателно разбиране на включените компоненти, както и многото пречки, с които разработчиците на архитектура трябва да се справят/преодолеят, за да проектират силна автоматизирана система за търговия.
Направих всичко по силите си, за да ви дам общ преглед на системата за автоматична търговия, но има още много неща, които се случват под капака. Надявам се да намерите този материал за полезен и да го използвате добре.
Оставете коментар