Date: Fri, 29 Mar 2024 05:38:04 -0700 (PDT) Message-ID: <370357343.471.1711715884102@aries> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_470_443581323.1711715884101" ------=_Part_470_443581323.1711715884101 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Strategy Engine modules are responsible for running strategies. They can= be run in either your local environment or collocated at your broker=E2=80= =99s exchange, providing tremendous deployment flexibility and the ability = to take advantage of the processing capabilities of server class hardware a= vailable in commercial datacentres.
Strategy Engines start as empty containers that can include the modules = that participate in event driven data flows. Each event flow is comprised o= f multiple modules and each module in the framework can be an event emitter= , receiver or both. Each module, such as the Complex Event Processing Modul= e, Market Data Module, Threading Model Policy module, etc., implements dist= inct functionality. A module can be a singleton (i.e., only one instance of= this module can exist in MEFP) or can have multiple instances. Strategy En= gine modules can support multiple run-time event flows in which different m= odules participate in each flow (see Figure 2). This threading model policy= can be dictated by the first emitter in a data flow and can be changed in = any emitter module in the flow.
Strategy Engines provide a framework that allows strategy developers to = scale their solution as strategies are being developed and evolved =E2=80= =93 from concept to production or when additional iterations are needed. Mu= ltiple factors affect the feasibility of implementing a new strategy idea = =E2=80=94 the dataset, rate of updates, functionality, performance (latency= and throughput), capacity and scalability. Marketcetera provides the neces= sary building blocks to overcome these challenges, including a powerful, fl= exible module framework that supports connectivity between diverse function= ality modules. The inherent flexibility of this design means that platform = functionality can be developed and evolved over time as new functionality i= s added and the performance of the data flow critical paths can be optimize= d and scaled up as needed
The basic data flow is single threaded to ensure the sequence of events = in the flow (for instance, market data updates should be delivered in order= ). Strategy Engines can also support a defined multi-threading policy since= the threading model policy can be dictated by the first emitter in a data = flow and can be changed in any emitter module in the flow. Thus, any data f= low can consist of modules being called in the context of a single thread o= r multiple threads. The combination of multiple data flows, with the abilit= y to dictate whether some or all of the modules participating in each of th= ose flows is single threaded or multi-threaded provides a powerful, almost = limitless scalability model that is bound only by the hardware configuratio= n being used.
For example, let=E2=80=99s assume we have one strategy moving approximat= ely 3,000 symbols over 10 seconds. How we can implement that strategy depen= ds on the particular strategy algorithm, but a few options are:
As you can see, Strategy Engines offer a scalability framework that can = accommodate the functional requirements of the strategy while maximizing ha= rdware utilization. Moreover, each active strategy can use a different scal= ability approach, and the functional requirements of each strategy affect o= nly its unique the data flow.