Block Trade tickets allow users to perform a single amalgamated FX trade that is split across several accounts.
They implement "pre-trade allocations", enabling the user to import the required account allocations from a spreadsheet.
Spot, forward and swap trades are supported.
Block Trade tickets consist of a blade where the code is under the directory
<YOURAPP>/fxexecution-bladeset/blades/blocktrade. They are implemented as a Presenter component whose main presentation model class is
caplinx.fxexecution.blocktrade.manager.Manager and HTML template is
The image below shows the Block Trade ticket with two blocks of trades one for EURGBP the other GBPUSD. Each block displays how the trade will be split between accounts. The Import/Export buttons allow blocks to be loaded from and saved to a spreadsheet.
The Netted tab displays the single resultant amalgamated trade for each block as shown below:
Finally clicking the Quote button displays the Trading Mode tab. To execute trades within the block, click the Accept button. The trade is then executed as a single transaction where each account allocation is represented as a trade-leg.
Manager class is responsible for the overall control of the ticket. Every time it is displayed, a new instance is instantiated. Each block is managed by an instance of the
caplinx.fxexecution.blocktrade.block.presentation.BlockTrade class which in turn creates an instance of
caplinx.fxexecution.blocktrade.block.presentation.BlockTradeLeg for each allocation row. Each
BlockTrade creates an instance of the trade model from the trade service. The
caplinx.fxexecution.blocktrade.BlocktradeBootstrap class registers
caplinx.fxexecution.blocktrade.block.trademodel.FXBlockTradeFactory as the factory for the
caplinx.fxexecution.blocktrade.block.trademodel.FXBlockTrade trade model class which in turn uses instances of
caplinx.fxexecution.blocktrade.block.trademodel.FXBlockTradeLeg to model each allocation row. The trade model contains trade legs for both allocation rows and a single row for the netted values. Changing the mode (from input to netted or trading) simply toggles the visibility of those trade legs.