All Classes and Interfaces

Class
Description
 
 
Information about account
 
Helper class to manage account list, map instrument aliases to account and map orders to accounts.
Represents an action on which users can set shortcuts.
Keys to the actions that can be used as a path in Layer1ApiShowShortcutPanelMessage.groups
Indicator can use this to be displayed only for certain aliases
Information about account balance in each currency
Information about account balance in specific currency
Builder for BalanceInfo - see corresponding javadoc for information about the fields.
An abstract implementation of CredentialsComponent.
Describes parameters for data retrieval from Bookmap simple historical server.
This is an extension of standard JScrollPane which has the following enhancements:
 
Describes a single tier of the bracket.
Interface used to provide calculated values to bottom chart model
 
Use ScreenSpaceCanvas.addContextMenuProvider(CanvasContextMenuProvider) to add menu items into the context menu generated by Bookmap.
Describes a ScreenSpaceCanvas related mouse event.
Use ScreenSpaceCanvas.addMouseListener(CanvasMouseListener) to add a mouse listener to a canvas.
 
 
 
GUI element that allows easy color selection
 
 
 
 
 
 
 
 
 
Similar to std::pair in C++.
You can control instruments shown in bookmap subscription dialog using this message.
An implementation of BaseCredentialsComponent for a checkBox
An instance of a class implementing this interface is used as a connection configuration item.
Implement this interface to have returned StatusIconTextField instances checked for leading/trailing spaces and caps lock.
Contains legacy field names which may be specified as aliases in CredentialsComponent.getAliases() method
An implementation of BaseCredentialsComponent for a text drop-down menu
Implement this one to manage and return extended credentials.
A unified CredentialsComponent value representation
An implementation of BaseCredentialsComponent for entering text (login/password)
 
Received by add-ons and providers when cross-trading starts/stops through Layer1ApiAdminListener.onUserMessage(Object) for add-ons and through Layer1ApiAdminProvider.sendUserMessage(Object) for providers.
 
Describes rules of aggregation of custom events
All events created by custom event generators should implement this interface
If you want to intercept this message, use instanceof instead of '==' operator
Interface used by strategies to interact with data structure
 
Tree structure response for given interval
 
Aggregation of depth events in some time interval
This class contains access methods to Bookmap folder structure
Reason why disconnection happened
Base class for events that can be retrieved from the tree.
Information about order execution
 
 
Runnable with an integer priority.
Implementation of LoginData.
This is a base class that should help you writing your own connector for live data and trading.
This is a base class that should help you writing your own providers for reading files in replay.
Message used to notify that file end is reached and no other callbacks will be made.
Should be sent is file format can not be opened by this reader
NOTE: any event class can not be used by multiple generators
 
 
 
Tells Bookmap how to get historical data.
Allows to draw any number of horizontal lines at given values
 
Generates ID's that are trying to be globally unique.
Interface to get/set colors for this strategy Names are the same as used when declaring the color.
Describes colors given to certain indicator values when indicator is drawn using default lines on bottom panel
 
Describes all color changes in given interval
Provide information about all context menu entries for:
a) graph context menu (RMB click on graph line)
b) widget context menu (RMB click on widget)
Deprecated.
Bundle for display logic components If some field is null, default logic will be used for that component
Clears all previous returned values, and provides new data, equal to response for new OnlineCalculatable.calculateValuesInRange(String, String, long, long, int, CalculatedResultListener) without actually calling InvalidateInterface.invalidate()
Indicator line will be painted completely with new values
This class allows you to specify how the indicator line will look.
Deprecated.
Minimal sufficient amount of data to identify the instrument within any platform
 
Builder pattern for inheritance structures.
When creating synthetic instruments using Layer1UpstreamDataEditor bookmap will still try to query those instruments for certain things (like "which provider does it belong to?", "which order types are supported by that instrument").
Information about the instrument
 
 
Deprecated.
 
Interface used to invalidate online indicator at any time
 
 
 
Annotate Layer0 provider with this to customize the login window.
Use this annotation if your module should only be available if it user has corresponding license field set to a date ahead of current date.
This annotation allows automatic discovery of layer0 module entry points.
Bookmap will only trust this annotation if provider is signed.
List of provider types.
This annotation allows automatic discovery of layer0 module entry points.
Implement this interface if a strategy wants to register external actions Layer1ExternalAction in Bookmap action system.

Bookmap looks for this interface when loading strategies.
Mark your Layer1ExternalAction implementations with this annotation.
Allows declaring multiple Layer1ActionMetadata annotations over action class.
This class is used to register strategy actions.
IS USED ONLY IN THE EMBEDDED Is received by providers through Layer1ApiAdminProvider.sendUserMessage(Object) when account info from embedded client needs to be converted into AccountInfo.id that the adapter sent before using TradingAccountsInfoMessage.
 
Provider should send the callback using Layer1ApiAdminListener.onUserMessage(Object) if the account was not found by provided Layer1ApiAccountIdConvertMessage.additionalAccountInfo
 
Extends all possible Layer1 listeners.
Is received by providers when sending additional login data through Layer1ApiAdminProvider.sendUserMessage(Object).
 
 
 
WORKS ONLY IN THE EMBEDDED The request that is sent by provider through Layer1ApiAdminListener.onUserMessage(Object) if it needs some additioanl login data.
Provides default empty implementations.
 
Listens to general events, such as login results, disconnections, warnings, etc.
Class implementing this should provide general Layer1 Api functions.
Deprecated.
Do not use this class, use Layer1ApiNotReloadedOnSettingsChange instead.
Use this message to send GUI panels for configuration of Layer1ApiSoundAlertMessage's, created by your addon (specified via Layer1ApiAlertGuiMessage.source).
 
Bookmap sends this message to the addon, if a user changed alert settings via GUI.
 
 
Request to change the selected account in the Trading Control Panel.
Send via Layer1ApiAdminProvider.sendUserMessage(Object)
Deprecated.
This message is deprecated and won't be processed since 7.7.
It is deprecated because of new multi-account concept.
The mode to be enabled or disabled in the Trade Control Panel
Provides default empty implementations.
Message to request interface to interact with data structure
You might want to invalidate current indicators once you receive yourLayer1ApiDataInterfaceRequestMessage
 
Listener for trading events
Class implementing this should provide trade/depth data to subscribers
 
 
Marks strategy that can not be auto enabled on load based on settings, no matter what it's previous state was
Every strategy should implement this interface
Defines action when strategy is being unloaded (removing added GUI, disposing dialogs, etc)
Request for alias generation based on symbol, exchange, type.
Addon sends this message to get Layer1ApiGetStrategyUiConfig.StrategyUiConfig.
 
Historical data for this alias have been loaded
If any data (like sum of trades at time) was cached for this instrument, it may not be valid now
Used to mark classes that are not required to be intercepted before reaching lower (provider) end of the chain.
This relay is also capable of injecting messages into provider -> gui stream in asynchronous manner.
Provides default empty implementations.
 
Listener for instrument events
Class implementing this should provide ability to work with instruments
If this interface is implemented, when strategy checkbox is selected/deselected in Studies config / Strategy config dialog, strategy will not be loaded/unloaded, instead it will be notified via this interface
Is used for statistics only
Extends all possible Layer1 listeners.
 
 
 
 
Provides default empty implementations
 
Listener for MBO events
Class implementing this should provide MBO data to subscribers
If add-on implement this interface than it will be not unloaded and then loaded again when user has reset chart settings.
Notify bookmap that previous order sent with SimpleOrderSendParameters.closingPositionHint was processed successfully
Extends all possible Layer1 provider aspect interfaces.
Key differences between providers should be described by this class.
Features that are implemented on the client side.
 
 
Supported limit and stop durations for instrument.
Items marked with this annotation are exposed as part of L1 API.
Good starting point for all injectable strategies.
Providers time will be sent using CurrentTimeUserMessage at least as often as specified by interval There is one exception: if system was in sleep mode or system time was changed while bookmap was working, some events might be skipped, and event with CurrentTimeUserMessage.isEventsSkipped = true flag will be sent
This message can be used if you need to restart server due to some error, like failing to obtain instrument list from provider due to network error
Note that you can specify time to wait before restart happens (none by default)
Requests to change the order size in the Trading Control Panel.
Show alert panel to user if it's currently not shown
Show bottom panel to user if it's currently not shown
Show shortcut panel to user if it's currently not shown
Cancels all messages that are currently pending, that match filter.
 
Use this message to declare your addon intents of sending alerts to a user.
 
This message triggers Bookmap to show a notification/play sound alert.
Builder to build Layer1ApiSoundAlertMessage.
 
 
If message of type Layer1ApiStrategiesEchoMessagesLayer.StrategyEchoMessage is sent using Layer1ApiAdminProvider.sendUserMessage(Object) Layer1ApiStrategiesEchoMessagesLayer will send it back with Layer1ApiAdminListener.onUserMessage(Object)} It will be done in ASYNCHRONOUS manner.
 
 
 
Request to freeze time temporarily.
Allows taking a shortcut when responding to Layer1ApiAdminProvider.getCurrentTime().
Mark Layer1ApiAdminProvider.getCurrentTime() implementation with this to confirm you are supporting the shortcut
Provides default empty implementations.
 
Listener for order routing.
 
Class implementing this should provide ability to work with orders
 
 
Used to add/remove custom update generators
Important: use sendUserMessage when sending from Layer1Attachable, Layer1SimpleAttachable or Layer1Injectable but use onUserMessage from Layer1UpstreamDataEditor
When generator is added with this message, custom events will be generated for past history - this can take some time.
Adds new action to dropdown menu for every instrument in ControlGui
Describes adding or removing indicator Note that you need to remember Layer1ApiUserMessageModifyIndicator.fullName.
 
 
Describes adding or removing a screen-space painter Note that you need to remember Layer1ApiUserMessageModifyScreenSpacePainter.fullName.
Deprecated.
for a few reasons: it's not safe to use without user code wrapping and seems not used by any add-on developers, so it's not supported any more
Describes single menu item that is created by this message
Can be used to print some text over chart with optional close icon
If message with Layer1ApiUserMessageNotification.id was already present, displayed message will be updated
Messages need to be removed with this message (note that you need to do this in response for close icon pressed as well)
This message is generated after a reading of catch up data is finished.
 
For all opened dialogs with strategies settings, GUI elements will be reloaded
 
 
Accepts integer value specifying API version that was used to write this module.
List of API versions.
Marks classes that can be loaded from GUI as a strategy.

When strategy is loaded and is correctly injected in layers chain, it will receive
UserMessageLayersChainCreatedTargeted message via Layer1ApiAdminListener.onUserMessage(Object) (you need to implement it)
After this, you can interact with Layer1ApiProvider, received in your constructor.

When strategy is no longer in layers chain, Layer1ApiFinishable.finish() will be called (you need to implement it)
You can interact with Layer1ApiProvider inside Layer1ApiFinishable.finish() method.
After method is completed, you can not interact with Layer1ApiProvider.
Please note, that interacting with Layer1ApiProvider after Layer1ApiFinishable.finish() was called will result in exception.
User will be able to control this strategy (enable/disable) via visibility popup menu
Note that this menu is intended to control only visual components present on main chart, not bottom panel
Implement this interface if you want your strategy to receive interface to save/load settings from Bookmap config
Implement this interface if you want strategy to show custom panels when selected in strategies dialog
 
Implement this interface if you want your strategy to display description in strategies dialog
Represents an action that will be register in Bookmap action system.
Global storage.
 
Marks classes that can be loaded from GUI as a strategy.
Class will be injected in layers chain.

When strategy is loaded and is correctly injected in layers chain, it will recieve
UserMessageLayersChainCreatedTargeted message via Layer1ApiAdminListener.onUserMessage(Object) (you need to implement it)
After this, you can interact with Layer1ApiProvider, received in your construtor.

When strategy is no longer in layers chain, Layer1ApiFinishable.finish() will be called (you need to implement it)
You can interact with Layer1ApiProvider inside Layer1ApiFinishable.finish() method.
After method is completed, you can not interact with Layer1ApiProvider.
Please note, that interacting with Layer1ApiProvider after Layer1ApiFinishable.finish() was called will result in exception.
Specifies the order of injection of strategies in the layers chain.
Deprecated.
 
The general name of the bundle containing the translation.
This bundle will be used to resolve translationKeys in others' annotations.
If the translationKey is not found in the given bundle then it will be displayed as is.

In the current version it is applied only to Layer1ActionMetadata.name() and Layer1ActionMetadata.groups() values.
It is allowed to use translationKeys and plain text values at the same time in those annotations.
Use this interface if you want to localize your addon and be in sync with Bookmap locale
Indicates that the marked strategy supports data from multiple trading accounts to be received.
Implement this interface if you want to manually calculate price axis ranges for your indicators
Range of values for this indicator [minValue, maxValue]
 
Marks classes that can be loaded from GUI as a strategy.
Simplified version of Layer1 API, for more advanced (but more complex) version use Layer1Attachable
 
Use this annotation if your strategy should only be available if it user has corresponding license field set to a date ahead of current date.
Specifies a name for strategy that will be displayed in strategies dialog
The strategy should implement this interface if it creates synthetic instruments
Mark strategy as trading strategy, not allowing it to be used in non demo real trading
Tells bookmap that strategy will be modifying upstream data (e.g.
Implement this interface if you want your strategy, layer0 provider or CredentialsFieldManager to receive user license fields related to it
 
 
Custom logic for calculating display limits for indicator that has given minimum and maximum values in displayed range
Note: this logic will be only partially work in conjunctions with Layer1ApiUserMessageModifyIndicator.indicatorMinMarginPriceOut and Layer1ApiUserMessageModifyIndicator.indicatorMaxMarginPriceOut. Returned limits will be readjusted to meet requirement from this values
Describe calculated limits range
Line will not be drawn in this pixel.
 
Some util method for trivial localization tasks
This class use ICU message format for handling of localized text, you can get info about it here: MessageFormat, icu-user guide
 
Utility class for work with Unicode strings.
Contains methods for work with the user-perceived characters insead of Unicode code points.
For more info see UAX #29: Unicode Text Segmentation#Grapheme Cluster Boundaries
Allows you to write messages to bookmap log, all methods with suffix "Fmt" should follow slf4j arguments passing rules.
 
 
 
Classes that contain login information for specific platforms extend this
Reason why login failed
Provides info for subscription dialog lookup dropdown.
Subscription info for subscription dialog lookup dropdown
 
Similar to Layer1ApiAdminProvider.getSupportedFeatures(), but is used to declare provider capabilities before provider is actually instantiated.
Aggregation of MBO data in some time interval
 
 
Indicates that the data can be associated with a specific trading account, and provides the account details to identify which account the data is associated with.
An abstract implementation of CredentialsComponent.
Provides high precision timestamps.
 
A simple class that accepts any String and implements the TranslatableComponent interface.
Simple translation of constant fields of the NumberFormat class to enum.
 
Strategy implementing this interfaces should support 2 types of requests.
Marker bound to data coordinates.
If passed as value it will cause marker to be drawn at that place.
 
Receives updates, can generate new value for given strategy in response
 
 
 
Faster but less functional alternative to OrderBookMbo
Class designed to help with conversion from MBO to MBP data.
Describes single order
Used to cancel the order
 
Order durations
Describe who sent order
Information about order execution.
Cumulative information about the order
Modifiable version of OrderInfo/OrderInfoUpdate.
Contains cumulative information about the order + boolean fields, that mark what has changed since the last time it was reported.
Used to change order price(s)
 
Used to change order price so it gets immediately executed
 
Deprecated.
 
 
Used to change order size
 
Base interface for sending any order type
Order status
Order type
Order update event.
Basic parameters necessary to perform any order update
 
Keeps info about all updates and executions that happened to orders
 
Helper class used to request a performance log record.
Allows historical data info to be different for each instrument
 
Provides implementations of price range calculation
The message specifies that the next action relates to a specific provider (where it can't be derived from other data).
 
Items marked with this annotation are exposed as part of L1 API.
You can use this helper class to record raw data.
Request to start reading specific file
This class can be used to retrieve Bookmap Run Mode
 
 
 
 
 
Horizontal coordinate described in universal way.
Vertical coordinate described in universal way.
 
Wrapper for an image.
Horizontal coordinate offset certain number of data levels point
Vertical coordinate offset certain number of data levels from base point
Horizontal coordinate offset in a certain way relative to base point
Horizontal coordinate offset certain number of pixels from base point
Vertical coordinate offset certain number of pixels from base point
Vertical coordinate offset in a certain way relative to base point
 
 
Area that canvas corresponds to
Provides information regarding where user is looking at.
 
 
This message requests account selection.
Message that is sent via Layer1ApiAdminListener.onUserMessage(Object), when the user changes the selected trading account in the GUI on TCP (Trading Control Panel).
Interface that can be used to save or get settings from config
Provides items for subscription dialog lookup dropdown.
Simple order.
Deprecated.
Base class for sending a single order
 
Wrapper around TTS library.
A wrapper for a JTextField capable of showing a warning icon
Instrument status information (PnL, number of open orders, position, etc)
Modifiable version of StatusInfo.
JPanel that can be display in strategies dialog with custom title specified
Will follow general style with border and title
If you want displayed panel to be without general styled border and title, set title to null
Also, sets all components Component.setEnabled(boolean)
Describes action when user clicks cog icon in strategies configuration popup
Defines current version of settings and compatibility with previous versions Any settings that wish to be saved and loaded from config should have this annotation
Can generate any number of custom events in response to depth/trade updates
Limits events and instrument aliases that StrategyUpdateGenerator listens to.
 
Allows generator to skip part of initial generation phase.
Describes subscription request
Describes subscription request with extra parameters typical for cryptocurrencies
Message requests for supported features Strategy that want to allow crosstrading from their instruments should catch this messages and return supported features
Request for supported features for a specific provider.
This message is used to create a request to switch to a tab in the application.
 
 
 
 
Information to be injected into the symbols mapping system
 
Helper class for extracting alias-specific information
Manages files and folders inside temporary folder ensuring automatic deletion when unlocked or during startup.
Record arbitrary text information that can later be viewed via bookmap.
 
Aggregation of trade events in some time interval
Provides logic for trade aggregation boolean flags calculation - one flag for each new trade with new ticket ID (provided by target system - time stamp, aggressor order ID or real trade ID) and second flag for completing previous 'execution chain' on new trade or by timer.
 
Information about the trade
Message containing an account info for one of the accounts of the instrument.
Provider will receive this message if Bookmap need Trading Subscription (without data).
Provider will receive this message if Bookmap need Trading Subscription (without data).
Interface for components which can be used on different locales after creation.
The exception with a message that could be localized for different locales.
Formats to localized text.
Creates localized listing from its components with line breaks.
The exception with a message that could be localized for different locales.
You can use this class instead of LocalizedBundle.getString(String key, Map args) if the given text can be used on several locales at the same time.
Bookmap will only trust this annotation if module is signed.
Message should implement this interface if it wants to update an existing custom indicator
This class is used for sending arbitrary user data and storing it into feeds/historical data.

Messages with alias != null will be stored as instrument specific events and will be available both in replay and historical data.

Messages with alias == null will be stored as global events and will be available only in replay.
Strategy will receive this message with it's target class specified when it is added and can start sending messages
(message.getClass() == (strategy class).class) should return true if it is target of the message
Note that there can be many messages of this type that are not related to your class
 
When rewind happens this message will be sent
Deprecated.
Deprecated.
 
 
 
 
Use this interface to use custom formatting for your indicator's tooltip and/or widgets values
This class can be used to retrieve Bookmap version
A vertical line that is drawn on chart
 
Defines the way widget is displaying values By default widgets fills counter clockwise (if circle) or up (if bar) Another way is for widget to be symmetric, with specified value as center