Trading signals
On the previous page (Indicators) we added all indicators. Once all indicators are added, you can create the trading signals ('signals') you want to use for the opening or closing of an order. If you want to edit your indicators, you simply go back and adjust your parameters.
Get started
Your EA always has 4 signals.
- Open Buy
- Open Sell
- Close Buy
- Close Sell
Signals are a very powerful tool to create almost any Open- and Close logic you can think of. Creating a signal may seem quite difficult in the beginning, but we believe that anyone can master building signals within a week. So let's be persistent and learn how to create signals.
You can use the “And” operator when all conditions need to be true, or the “Or” operator when any of the conditions need to be true. You can compare indicators, set up conditions or compare constant values. So far, we've been able to create almost any strategy we could imagine. If you run into a limitation of the tool, please let us know and use the contact form , or mail us on .
Enable or Disable a signal
You can enable or disable a signal by clicking on the options button and select ENABLE/DISABLE. When your signal is disabled it will not be available in the generated output (mql or compiled). The EA needs at least one enabled Open Buy or Open Sell signal to work correctly. When you disable both of the Open signals, your EA will never open an order.
- Enabled signals appear normal with a vertical blue bar in front of the signal name.
- Disabled signals are grayed out with a vertical gray bar in front of the signal name.

Copy and Paste a signal
Open the options menu to Copy and Paste a signal to the other types of signal. A common scenario is that you start by creating the Open Buy Signal. When ready, you may want to copy the Open Buy signal to the Close Sell signal and you may want to copy the Open Sell signal to the Close Buy signal. This way the open order will switch from a buy order, to a sell order and vice versa.
- Open the options menu for a particular signal.
- Click Copy.
- Open the options menu for a other signal
- Click Paste.

Invert a signal
Open the options menu to invert a signal. A common scenario is that you start by creating the Open Buy Signal. When ready, you will want to create the Open Sell signal, which is the same as the Open Buy signal, but then Inverted. To do so, click the Invert button on the Open Sell signal after you copied the signal from the Open Buy signal.

Edit a signal
Click on a signal that you would like to edit. This will open the signal editor. If you started your EA based on a template then some signals may already contain some content. Some other signals may be blank and contain only a single node. Start building your signal from this root node.

Root operator
A signal has 1 logical root operator. You can choose from And/Or, the root operator cannot be removed. Start building your condition from the root operator.
- And: All child conditions need to be true for the signal to fire.
- Or: At least one child condition need to be true for the signal to fire.

Add condition
Open the options menu for an operator and select condition. This option will add a condition. A condition is an expression with a left operand, an operator and a right operand. By default, the left and right operands are indicators. The indicators you've created will appear here.

Toggle Indicator, Function or Constant
You can toggle between an indicator, function or constant by clicking on the arrow next to the indicator.
- Click on Indicator to access the indicators you have created.
- Click on Function to access functions like ask, bid, hour, minute etc.
- Click on Value to add a constant value. The default value is EMPTY which represents a MetaTrader empty value: 2147483647.

Operator
In previous versions of EA Builder Pro you could toggle the operator to select an operator category. In the latest version this feature has been removed. Operator selection is now automatically adjusted based on the parent operator, so there is no need for you to toggle it manually. Some images in the docs may still show the old toggle button. Images will be updated soon.
There are four operator categories:
- Logical
- Comparison
- Crossover
- Arithmetic

Shift (Bar)
An indicator always has a Shift (Bar) value. This is the bar on which your indicator will be calculate.
- Shift (Bar): 0 - The current bar
- Shift (Bar): 1 - The previous bar
- Shift (Bar): 2 - The bar before the previous bar etc.

Add condition part
Adds a part of a condition. This option is only available for operator categories Comparison, Crossover and Arithmetic. A logical operator cannot contain a condition part.


Add operator
Adds an operator to the condition. It can serve as a parent operator when you are creating more complex nested conditions. Depending on the context not all operator categories may be available.


Remove node
You can remove a condition by selection "Remove" under options. Operators can also be removed when they have no children attached. The root operator can never be removed.

Drag-and-drop node
Rearranging the nodes is possible by using drag-and-drop. Hover over the signal, press the left mouse button, drag the node and drop it where you would like it to be.

Invalid signals
When you are building signals you can create a signal that is invalid. Invalid signals cannot be saved. You know that your signal is invalid when you see the exclamation mark with an error message in the top summary box.

Nested conditions
You can make signals as complex as you would like. To easily understand how signals work, a good strategy is to divide them into blocks. Each block returns true or false.

Signals can be nested. This allows you to build even more complex signals.

Operators
The signal editor enables you with a set of well known operators. We've added a set of special crossover operators to make things easier.
Symbol | Name | Category |
---|---|---|
Crossover | Crossover | |
Crossover from below | Crossover | |
Crossover from above | Crossover | |
And | And | Logical |
Or | Or | Logical |
== | Equal to | Comparison |
!= | Not equal to | Comparison |
> | Greater than | Comparison |
< | Less than | Comparison |
+ | Add | Arithmetic |
- | Substract | Arithmetic |
/ | Divide | Arithmetic |
* | Multiply | Arithmetic |
% | Modulo | Arithmetic |
Crossover
Use this operator if the direction of the crossover does not matter.

Crossover from below
Use this operator if the direction crosses over from below.

Crossover from above
Use this operator if the direction crosses over from above.

And
Logical AND operator. Apply this operator to multiple boolean conditions. Returns true if all conditions are true.

Or
Logical OR operator. Apply this operator to multiple boolean conditions. Returns true if one or more conditions are true.

Equal to
Comparison operator. Returns true if both sides of the expression are equal.

Not equal to
Comparison operator. Returns true if both sides of the expression are not equal.

Greater than
Comparison operator. Returns true if the left side of the expression is greater than the right side of the expression.

Less than
Comparison operator. Returns true if the left side of the expression is less than the right side of the expression.

Add
Use this operator to add numbers.

Substract
Use this operator to substract numbers.

Divide
Use this operator to divide numbers.

Multiply
Use this operator to multiply numbers.

Modulo
Returns the remainder after a division.

Next: Modules