Expert technical analysis, trading strategy and investment decision tools.
In this document:
General Concepts
Trade Idea Publication Volume and Schedule
There are currently 40 trade ideas published per day. They cover the following asset classes:
- FX
- Indices
- Cryptocurrencies
- Commodities
- Stocks
Most trade ideas are published between 6 and 8 AM UK time. There are some trade ideas (primarily covering APAC markets) that are published around 2 PM UK time.
There is a single idea published per market. This is intentional: we want to avoid publishing confusing ideas.
Automated Trade Ideas
We have recently added the Automated Trade Ideas functionality both to the web-based tools, as well as the REST API.
Further information about this service can be found in this Knowledge Base article.
Ideas Expiry
All trade ideas are currently intraday. Most ideas expire at 9 PM.
UK time the same day they are published, and APAC ideas expire at 9 PM UK time the day after the publication. The expiration of the trade ideas happens if they do not hit Stop Loss or Take
Profit levels publishing confusing ideas.
Trade Idea Lifecycle
Trade ideas can be updated since their original publication. When an idea is updated, the following fields will change:
- Status
- Phrases
- T1 Phrase / T1 Date, T2 Phrase / T2 Date
Stop Loss / Take Profit / Entry Level values do not change.
Trade Idea Fields
The trade ideas retrieved via the API include the following field groups:
Report
This is the group of fields that holds the main details around the trade idea itself.
Trade Idea Direction- Bullish (id: 0)
- Bearish (id: 1)
- Neutral (id: 2)
- Buy (id: 0)
- Sell (id: 1)
Trade Idea Status
- Buy Limit (id: 16)
- Buy Stop (id: 15)
- Sell Limit (id: 14)
- Sell Stop (id: 13)
- Live Trade (id: 9)
- Expired (id: 12)
- ClosedProfit (id: 5)
- ClosedLoss (id: 6)
Entry Level
Stop Loss / Take Profit
Key Levels (Support & Resistance)
Chart indicating the Risk/Reward Ratio for the trade idea (the base URL is https://d1qy5bkp2phnxs.cloudfront.net)
Trade Idea Confidence
Confidence takes into account multiple factors including the strength of the current trend
across multiple timeframes, the latest news sentiment and the current accuracy of the analysts
recommendations.
Relevant dates/times (idea creation datetime, report publication datetime, repo
- Idea creation datetime (UK time)
- Report publication datetime (UTC)
- Report modification datetime (UK time)
- Report expiry datetime (UTC)
Report Language
Group
Name and Identifier of the group the covered asset belongs to:
- FX Majors
- FX Crosses
- Asia-Pacific Currencies
- Indices
- etc
Product
Name and Identifiers for the covered asset
Phrases
- Buy Phrase / Sell Phrase
- Phrases explaining the trade idea
- Phrases explaining why a trade idea is updated (T1/T2 Phrase)
- Phrases are translated into 15 languages supported by the Signal Stream platform
Trade Idea Retrieval
Ideas can be retrieved either using the Dashboard, which is a web application (supporting access via the MetaTrader platform in the form of an Expert Advisor as well), via REST API, or a WebSocket API. This document will expand on the REST API and WebSocket API further.
REST API
REST API should generally be used to retrieve an arbitrary or filtered list of Signal Stream trade ideas on demand for a specific time period in the past.
For real time report retrieval please use the Streaming (WebSocket) API.
Documentation
Overview: https://api.acuitytrading.com/
Swagger URL: https://api.acuitytrading.com/swagger/index.html
Authentication
Documentation URL: https://api.acuitytrading.com/Security
Exchange your username and password for a Bearer token that you can pass with any request. The token is valid for 14 days.
Sample request:
Sample response:
The retrieved access_token is the Bearer token that you can pass in the Authorization header of your API requests.
Common Requests
Retrieve Supported Products List
Endpoint: POST /api/signalcentre/products
Description: Retrieve the list of products supported in the Signal Stream application and their mapping to Acuity assets. This list will be useful if you need to pre-filter the Trade Ideas using a subset of assets, or if you would like to subscribe to a Streaming API delivery of a subset of covered assets. It’s possible to either request the full list of products (example below) or pre-filter using Acuity Asset Class IDs or Asset IDs as well.
Sample request:
Sample response:
Retrieve Trade Ideas
Endpoint: POST /api/signalcentrereports
Description: Retrieve the Signal Stream ideas using one of or all of the below criteria:
Publication Timeframe (StartDate (string) / EndDate (string) parameters). If omitted, will return at maximum 1000 most recently published reports. Also controlled by the “Count” parameter.
Product List (retrieved using the previous endpoint). Can be omitted to get the reports
for all reports published by the Signal Stream team:
- AssetClassId (int)
- AssetIds (list of ints)
Language to receive the trade ideas in (using the LanguageCode (string) parameter).
Signal Stream supports the following languages:
- en-gb - English (Default)
- de-de - German
- es-es - Spanish
- fr-fr - French
- it-it - Italian
- zh-cn - Chinese Simplified
- nl-nl - Dutch
- ja-jp - Japanese
- ru-ru - Russian
- sv-se - Swedish
- pl-pl - Polish
- pt-pt - Portuguese
- nb-no - Norway
- ar-ae - Arabic
- vi-vn - Vietnamese
Period (Period (string) parameter):
- intraday (the only period currently supported). Note: this value is case-sensitive.
- short-term
- medium-term
- long-term
Flag to include or exclude Expired ideas (IncludeExpired (bool) parameter)
Note: it’s generally recommended to provide all parameters (if you want to filter for specific products) or all parameters apart from AssetClassId and AssetIds to retrieve all available reports.
Sample request
Sample response
Automated Trade Ideas
It is possible to retrieve the Automated (or AI Driven) Trade Ideas using the same endpoint.
Introductory information about the Automated Trade Ideas can be found in this Knowledge Base article.
There is an additional parameter, ReportType
, which allows you to retrieve automated trade ideas.
It is possible to combine multiple report types in one request as well. Here are the supported options:
- 0 - this ReportType will return manual trade ideas only
- 1 - this ReportType will return automated trade ideas only
- 2 - this ReportType will return both automated and manual trade ideas in a single response
Sample request:
{
"StartDate": "2024-05-24",
"EndDate": "2024-08-01",
"Count": 1000,
"ReportType": 2
}
AlternativeView.firstValue
- this is the new Target 1 field if the initial trade idea reaches the stop loss.AlternativeView.secondValue
- this is the new Target 2 fieldAlternativeView.Phrase
- this is a human-readable phrase containing both of the above values that can be displayed in a UI.
Entry Price Range
As automated trade ideas are generated using end of day pricing data, by the time the user opens them in a trading platform, the entry price might have changed.
To give users the peace of mind in this scenario and not to push them to open a trade at the market price, we include the entry price range, in which the trade idea would still be valid.
These data points are provided like this:
Report.entry_lower_bound
Report.entry_upper_bound
Streaming (WebSocket) API
The purpose of this API is to deliver the Signal Stream trade ideas in real time after their publication and/or modification.
Documentation
Overview: https://api.acuitytrading.com/
Streaming API: https://api.acuitytrading.com/Streaming
Signal Stream: https://api.acuitytrading.com/Streaming#sc-parameters
Authentication
To authenticate, you need to pass your API key in the server URL when
connecting to Acuity API. Example: wss://api.acuitytrading.com/api/
streaming?apiKey=YOUR_API_KEY
Common Subscription Parameters
Each subscription in the Streaming API has the following parameters:
- action (string) could be either subscribe or unsubscribe
- topic (string) could be assets or screports . Other topics are also supported, but require additional services to be enabled.
- format (int) - either 0 (full response) or 1 (simplified response). Simplified response delivers only mandatory fields and can be easier to process.
Subscribe to all Signal Stream Reports
To subscribe to all reports, simply do not specify any product names or asset
IDs in the subscription message. Here is an example:
Note: the lang and scperiod parameters are optional. If you omit them, you will receive reports in all available languages at the same time (i.e. a single report for EURUSD will result in a list of reports, where phrases are translated into all supported (and permitted) languages). This will be useful if you are planning to display multilingual reports on your platform. Currently supported scperiod is intraday, so this will currently be the only value that you receive.
Subscribe to a filtered list of Signal Stream reports
It is possible to subscribe to a filtered list of products in case you have a specific product list in mind. This can be done using the products subscription parameter. This parameter needs to receive the Product.name from the Signal Stream REST API report response as the input. You can also use the Supported Products API request to get the Names to supply in this request. Example subscription:
Note: Signal Stream may occasionally add new products to the coverage. If you are using the screports topic, all of these new products will arrive to the subscription. If you limit the list of products on the subscription level, you won’t be able to receive the new ones immediately
Subscribe to a filtered list of Signal Stream reports using the assets subscription
If you have access to other services, in addition to Signal Stream, you might want to explore the possibility of subscribing to all of them in a single subscription. This will provide conveniences with regards to processing and managing the subscriptions.
Subscription documentation: https://api.acuitytrading.com/Streaming#assets-parameter
Here, the includeSignalCentreReports parameter indicates which service to include.
Additional supported parameters are includeDJNews, includeDJCalendar and others. Please consult your accounts team for the full list of available services.
Response Samples
Insert message
This message type is sent when a brand new report is published.
Update message
This message type is sent when a report has any of the fields updated.
Code Samples
For REST API you can use any language that supports sending/receiving web requests in JSON format.
For the Streaming (WebSocket) API, please consult the following pages:
C# Sample
Python
If you haven't found what you're looking for yet, don't worry! Our team is here to assist you.