Definitions and meanings of words and phrases found in CFDHero


Annual Percentage Yield as it is called, calculates the return of an investment over a twelve month period based on compounding interests/returns within the same period. For example, if a bot has been operating for six months and has an absolute 25% return (starting capital is 1000 USD, end of six month is 1250 USD), the APY will be 56.25%.


A bot is a program which executes trades (such as buy or sell) based on the entry and exit conditions set by the user. The advantage of a bot is the ability to monitor market conditions on a 24/7 basis and consequently to start a deal when an entry condition is met.

Bot Template

A bot template is a bot that is offered for rental on the Bots Marketplace. A user can create up to 2 bots from a single bot template rental.


A deal is created by a bot whenever entry conditions are met. A deal consists of a set of trades. Whenever a bot's entry condition is met for the first time, a deal will be created together with the first trade. You will see this newly created deal in the Deals page under the Open Deals tab. You may view the trades contained in a deal by clicking on the eye icon.

A deal completes when the bot's exit conditions are met or when the deal is liquidated by the user. A completed deal can be found under the Completed Deals tab.

A deal always consists of at least two trades - a Buy and a Sell trade. There maybe multiple Buy trades depending on whether the bot has been configured for Extra Orders.

A chronological order of how a bot creates a deal is illustrated below:

Time T: Bot monitors market signals

T + 1h: Bot's entry condition is met and creates a new deal. Bot executes a buy order in the newly created deal. This same deal can be found under the Open Deals tab.

T + 2h: Bot's exit condition is met and executes a sell order. The deal is now marked as Complete. This completed deal can be found under the Completed Deals tab.


A portfolio is a collection of assets linked to the user's broker account/exchange. It is usually denominated in USD. The total USD portfolio value may fluctuate due to the differences in USD pricing for each of the instrument.


If a deal remains open, the user has the option to instruct the bot to ignore the exit conditions and execute a Market Sell order. This is known as liquidation. After a deal is liquidated, the deal completes (the completed deal is found under the Completed Deals tab) and the bot resets itself. The reset bot will then create a new deal based on the entry condition for the corresponding Base Order amount.


A buy or sell trade is considered filled if the entire quantity of the underlying assets are fully bought or sold. For example, if the bot executes a buy order for 1 AAPL and only 0.3 AAPL is bought, this order is considered partially filled. It is only when the remaining 0.7 AAPL is also purchased will the buy trade be considered filled.

W/L Ratio

CFDHero tracks all of the completed deals which result in profits or losses. If all of a user's deals are profitable, then the W/L (Win/Loss) Ratio is 100%. If out of ten completed deals, only three are profitable, then the W/L Ratio is 30%.

Bot Status = Waiting

A bot is waiting to create a new deal based on the entry condition set. No trades have been executed yet. In the mobile app, a Waiting bot will have an amber/yellow colour circle button.

Bot Status = In Progress

A bot which has already created a deal has the status marked as "in progress". You will see this open deal in the Deals page. The bot is still actively monitoring the market waiting to make the next trade. In the mobile app, a bot that has started a deal will have a green colour circle button.

Fund Allocation

A user can set the maximum amount of capital made available to the bot to trade from. Fund allocation is an essential tool in risk management for any users. For example, a user may only want to allocate 10% of his capital to a bot if the bot's strategy is yet to be proven. Subsequently, the user can increase the fund allocation if the bot's strategy is good.

Base Order Limit & Extra Orders

Base order limit dictates how much of the allocated fund to use for making the first trade (when a deal is newly created by the bot). This is best illustrated through the following example:

If a user allocates 10,000 USD and sets the base order limit as 20%, the bot will utilize 2,000 USD (representing 20% of 10,000 USD) to execute the first order.

Extra Orders refers to the number of subsequent trades (after the first trade is made) which the bot will execute. The extra orders are divided equally from the remainder left after the base order limit is deducted from the allocated fund.

Fund Allocation = Base Order + Extra Orders

Using the above example, if the user sets base order limit as 20% and wants the bot to make 2 additional Extra Orders, each of the extra order will utilize 40% of the allocated fund since after the base order is executed, only 80% of the allocated fund remains.

Trading Frequency

A bot will acquire the market data at intervals defined by trading frequency.

15m - Bot reads market data every 15 minutes

1h - Bot reads market data every 1 hour

4h - Bot reads market data every 4 hour

1D - Bot reads market data once a day

After a bot has acquired the data at each interval, it will process the same data and determine if entry or exit conditions are met. If conditions are met, a trade will be executed.


An indicator is a trade signal or value derived from complex algorithms based on the type of indicator used. These algorithms acquires market data such as volume, price, price-action, momentum and so on, and subsequently produce a value or signal for traders as part of their decision making process.

Take Profit

A user can configure the bot to close a deal if the profit hits a percentage of the allocated fund. A Take Profit exit condition has priority over Indicator-based exit conditions.

Stop Loss

A user can configure the bot to close a deal if the loss hits a percentage of the allocated fund. Please note that Take Profit and Stop Loss have priority over Indicator-based exit conditions.


A user can test the efficacy of a bot (based on the parameters set) by running a backtest. This is a risk free manner for users to check that their bot's performance is acceptable. However, it must be noted that a good backtest result does not neccessarily guarantee good forward-looking performance for the bot.

Last updated