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.groupsIndicator 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 it in
CanvasMouseEvent.getX(velox.api.layer1.layers.strategies.interfaces.ScreenSpaceCanvas.HorizontalCoordinate, velox.api.layer1.layers.strategies.interfaces.CanvasMouseEvent.CoordinateRequestType) and CanvasMouseEvent.getY(velox.api.layer1.layers.strategies.interfaces.ScreenSpaceCanvas.VerticalCoordinate, velox.api.layer1.layers.strategies.interfaces.CanvasMouseEvent.CoordinateRequestType) to get the result in pixels or data
(time in nanos for X, price in pips for Y coordinates).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 checkBoxAn 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() methodAn implementation of
BaseCredentialsComponent for
a text drop-down menuImplement this one to manage and return extended credentials.
A unified
CredentialsComponent value representationAn 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)
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
Indicator line will be painted completely with new values
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
Bookmap looks for this interface when loading strategies.
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.additionalAccountInfoExtends 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.
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
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.
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 your
You might want to invalidate current indicators once you receive your
Layer1ApiDataInterfaceRequestMessageListener 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)
Defines action when strategy is being unloaded (removing added GUI, disposing dialogs, etc)
Request for alias generation based on symbol, exchange, type.
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
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 successfullyExtends 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.
See fields meaning in
Layer1ApiProviderSupportedFeaturesItems 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 sentThis 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)
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 shortcutProvides default empty implementations.
Listener for order routing.
The response, which can be received via
Layer1ApiTradingMessageWithCallback.TradingMessageResponseListenerIs used to receive a
Layer1ApiTradingMessageWithCallback.Response after Layer1ApiTradingMessageWithCallback was processedClass implementing this should provide ability to work with orders
Used to add/remove custom update generators
Important: use
When generator is added with this message, custom events will be generated for past history - this can take some time.
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.Builder to build
Layer1ApiUserMessageModifyIndicator.Describes adding or removing a screen-space painter
Note that you need to remember
Layer1ApiUserMessageModifyScreenSpacePainter.fullName.Builder to build
Layer1ApiUserMessageModifyScreenSpacePainter.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
Messages need to be removed with this message (note that you need to do this in response for close icon pressed as well)
If message with
Layer1ApiUserMessageNotification.id was already present, displayed message will be updatedMessages 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
After this, you can interact with
When strategy is no longer in layers chain,
You can interact with
After method is completed, you can not interact with
Please note, that interacting with
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
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
After this, you can interact with
When strategy is no longer in layers chain,
You can interact with
After method is completed, you can not interact with
Please note, that interacting with
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
It is allowed to use translationKeys and plain text values at the same time in those annotations.
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
Simplified version of Layer1 API, for more advanced (but more complex) version use
Layer1AttachableUse 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
itCustom 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
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 valuesDescribe 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 guideUtility 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
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
OrderBookMboClass designed to help with conversion from MBO to MBP data.
Describes single order
User to describe
OrderByOrderBook.updateOrder(long, int, long) result.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.
Builder for
SimpleOrderSendParametersBase class for sending a single order
Wrapper around TTS library.
A wrapper for a
JTextField capable of showing a warning iconInstrument 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
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.
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
(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
Layer1ApiNotReloadedOnSettingsChangeinstead.