Try out the most advanced Expert Advisor ever made!
In this page you'll find the DEMO version of JedeyeFX so that you can check some of its core features. JedeyeFX DEMO comes preconfigured with some conditions so that you can learn how it works and play arround with it by modifying some of its properties. This version supports only the MACD
(Moving Average Convergence/Divergence) indicator and also the following functions: VAL()
, CURRENT_PRICE()
and BAR()
.
Note that sections below are just small fragments of the full JedeyeFX documentation and contains only the basic information you need to play around with the DEMO version.
The full list of indicators, functions and actions are present in JedeyeFX full documentation. If you want to check the full documentation index, click on "Full JedeyeFX Documentation Contents" option below.
Before proceeding with JedeyeFX installation process, you must check if your system has a recent version of MetaTrader Terminal. JedeyeFX takes advantage of features that are only available for MetaTrader build 600 and above. This means that JedeyeFX will not work on previous builds so it is important that you check your current MetaTrader version by going to the menu Help > About
.
If your version is outdated or you haven't installed MetaTrader 4 before, you can download it from its official site .
C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
/Users/<username>/Library/Application Support/org.kronenberg.winebottler.metatrader4_<MT4_instance_ID>/drive_c/Program Files/MetaTrader 4/MQL4/
Tools > Options
and then select the Expert Advisors
tab in the window that appears. Check if the option Allow DLL imports
is checked, just like in the picture below. If you see that it is disabled, please enable it and then restart MetaTrader 4 (this is very important). If you enable the option but don't restart MetaTrader, JedeyeFX will not get to work.File > Open Data Folder
.File > Open Data Folder
in MetaTrader 4 Terminal.Uninstaller.exe file.
Then you need to right click on JedeyeFX and select Attach to a chart
option or just simply drag JedeyeFX onto the chart you want to use it in. A new window regarding JedeyeFX configurations like the one depicted below will appear. Just select the Inputs
tab to access to all the configurable sections of JedeyeFX.
Name | Default Value | Available on Demo | Description |
---|---|---|---|
| Yes | Maximum allowed slippage in pips. | |
| Yes | Automatic random magic number generation. | |
| Yes | Fixed magic number value. | |
| Yes | Maximum simultaneous opened buy orders allowed. | |
| Yes | Maximum simultaneous opened sell orders allowed. | |
| Yes | Maximum different orders symbols allowed at a time. | |
| No | Tells the EA to control manually opened orders (by trader’s intervention). | |
| Yes | Orders must be closed only when they are on profit (valid for each one of them). | |
| No | Orders must be closed only when the total profit of opened orders all together is positive. | |
| No | Defines the expert working schedule. | |
| No | Defines the maximum allowed loss in order to close all orders whenever the execution time ends. The defined loss must be a positive value. If loss is greater than the defined value, then all orders remain active. Setting this option to 0 disables it. | |
| Yes | Defines the current trading mode: None, Buy Only, Sell Only, Buy And Sell. | |
| No | Defines the initial trading lot size and calculation method. | |
| Yes | Sets the initial take profit for all orders which will be automatically open. | |
| Yes | Sets the initial stop loss for all orders which will be automatically open. | |
| Yes | Initializes all the indicators than may be used in other configurable inputs (specially conditions inputs) with their individual timeframe and settings. | |
| Yes | Sets all the conditions that must be verified in order to open a new buy order. In case indicators are used, the Indicators Setup input must have them properly initialized. | |
| Yes | Sets all the conditions that must be verified in order to close a new buy order. In case indicators are used, the Indicators Setup input must have them properly initialized. | |
| Yes | Sets all the conditions that must be verified in order to open a new sell order. In case indicators are used, the Indicators Setup input must have them properly initialized. | |
| Yes | Sets all the conditions that must be verified in order to close a new sell order. In case indicators are used, the Indicators Setup input must have them properly initialized. | |
| No | Sets all the conditions that must be verified in order to open a buy pending order that was set by the set_pending_order command. If empty, the order is automatically open without any restrictions. | |
| No | Sets all the conditions that must be verified in order to open a sell pending order that was set by the set_pending_order command. If empty, the order is automatically open without any restrictions. | |
| No | Number of pips the pending order will move (in a virtual sense, without opening) if its pending order open conditions are not verified true. | |
| No | Sets the pips margin which will be considered in order to move a pending order affected by a fallback action (Pending Orders Fallback Pips) back to its previous level. | |
| No | Defines the maximum number of pending orders which can be simultaneously set. Setting this option to 0 disables it. | |
| No | If set to true, when a pending order opens, it will set another pending order if set_pending_order command is found in any the matching open buy/sell orders conditions. | |
| No | Sets the actions which will take place whenever a pending order is opened. Actions such as risk change and TP/SL removal from opened orders are some examples of those. | |
| No | Sets the actions which will take place whenever a pending order is opened. Actions such as risk change and TP/SL removal from opened orders are some examples of those. | |
| Yes | Inverts trading allowance (e.g. change buy only to sell only) on a consecutive stop loss number. For example, if you want to invert trading allowance on the second consecutive stop loss, set this value to 2. Setting this option to 0 disables it. | |
| No | Stops the expert advisor execution whenever the value set in this input of total consecutive stop losses is reached. Setting this option to 0 disables it. | |
0:Disabled | No | ||
0:Disabled | No | ||
| No | If set to true, all the signals for opening and closing orders will be considered as alerts only (which may be sent to your mobile device), instead of really opening the orders as it happens in a normal environment. | |
| Yes | If set to true, alerts will be presented to you as popups right in MetaTrader terminal. | |
| Yes | If set to true, alerts will be sent to your mobile device which has to be previously configured in MetaTrader settings. | |
| No | If set to true, alerts will be sent to you as emails. Requires email configuration first in your MetaTrader terminal settings. | |
| No | If set to true, sends an alert each time an order is closed with stop loss. | |
| No | If set to true, sends an alert each time an order is closed with take profit. | |
| Yes |
| |
| No | Sets the market prices values which you want to receive alerts whenever they are reached. | |
| No | If set to true, an alert will be sent whenever a symbol price has an oscillation of a certain value in pips (defined by Pips Oscillation Value) during a certain period of time (defined by Pips Oscillation Value). | |
| No | Number of oscillation pips for Pips Oscillation Alert. | |
| No | Timeframe used for oscillation pips evaluation considered by Pips Oscillation Alert. | |
| No | Defines which chart bar will be considered for evaluating trigger conditions. Using the default value is recommended in order to avoid false signals. | |
| No | Defines which chart bar will be considered for evaluating confirmation conditions. Using the default value is recommended. | |
| No | If set to true, conditions evaluations and other events will be triggered only at new bars, resulting in better performance. Using the default value is recommended. | |
| Yes | Forces auto risk balance algorithm to ceil the lot size value instead of rounding it to the closest value (default behavior). | |
| Yes | If set to true, pending orders lines will be drawn on the chart. | |
| Yes | Sets the appearance of the Information Box in the top right corner. You may set it to be opaque, transparent or hidden. |
JedeyeFX demo supports the MACD indicator. When you access to JedeyeFX Demo properties, you can see that MACD indicator is already configured in the Indicators Setup input with its default options. Let's now test some conditions examples.
Set this condition on Buy_Open_Condition_1 input:
iMACD(LINE)<iMACD(BAR)This condition sets JedeyeFX to open a Buy Order when the MACD Signal Line gets lower than the MACD Bar. Let's now strip down the condition. iMACD is the indicator you want to get an object from. LINE is the object you want to get from MACD indicator. Thus the condition iMACD(LINE)<iMACD(BAR) tells JedeyeFX something like this: Get the LINE object value from MACD indicator and BAR object value from MACD indicator and then check if the first one is lower than the first one. If true, open a buy position.
iMACD(LINE)<iMACD(BAR),iMACD(BAR)<VAL(0)
Notice the VAL() function. This function converts any numeric value into a valid comparable number. This way you can compare any indicator object against any numeric value/price.
For example, iMACD(BAR)>VAL(0.0012) or LAST_ORDER_TYPE(SELL)!=TRUE() are conditions which make use of operators in order to compare two values with each other.
Note: LAST_ORDER_TYPE() function is not available in the demo version.
Operator | Description |
---|---|
> | Greater than... |
< | Lower than... |
>= | Greater than or equal to... |
<= | Lower than or equal to... |
!= | Different from... |
== | Equal to... |
+ | Is positive (single-sided conditions only) - NOT AVAILABLE IN DEMO VERSION |
- | Is negative (single-sided conditions only) - NOT AVAILABLE IN DEMO VERSION |
Indicator Identifier | iMACD | ||||||
---|---|---|---|---|---|---|---|
Indicator Properties | Order | Input | Type | Default Value | Required | ||
1 | Timeframe | Integer | 0 | Yes | |||
2 | Fast EMA Period | Integer | 12 | No | |||
3 | Slow EMA Period | Integer | 26 | No | |||
4 | Signal Period | Integer | 9 | No | |||
5 | Applied Price | Applied Price Keyword | PRICE_CLOSE | No | |||
6 | Bar Shift | Integer | 0 | No | |||
Indicator Objects | Object Keyword(s) | Description | Return Type | ||||
0 or ZERO | Zero Line value | Numeric | |||||
1 or B or BAR | Bar value | Numeric | |||||
2 or L or LINE | Signal Line value | Numeric | |||||
Example | Indicator Setup | iMACD(0) | |||||
Condition | iMACD(LINE)>iMACD(BAR) |
The BAR function allows extracting values from chart bars. This function has 5 possible objects. Through it you can extract high, low, open and close prices and also volume from a certain chart bar.
Syntax | bar(object;bar_index) | ||
---|---|---|---|
Parameters | object | Bar object from which the value should be extracted from. It can be any of these keywords: HIGH, LOW, OPEN, CLOSE or VOL. | |
HIGH | Highest price value from the matching chart’s bar. | ||
LOW | Lowest price value from the matching chart’s bar | ||
OPEN | Open price value from the matching chart’s bar. | ||
COSE | Close price value from the matching chart’s bar. | ||
VOL | Volume value from the matching chart’s bar. | ||
bar_index (optional) | Index of the chart’s bar you want to get the values from. This parameter is optional. When not set, it defaults to the values set in Trigger Indicator Buffer Shift and Confirm Indicator Buffer Shift inputs. | ||
Single-sided | No | ||
Example | bar(OPEN)>VAL(1.3450) | ||
This condition triggers the corresponding event if the Open Price of the chart’s bar with the same index as the one set in Trigger Indicator Buffer Shift (since it is a trigger condition) is higher than 1.3450. | |||
bar(CLOSE;2)<VAL(1.3345) | |||
This condition triggers the corresponding event if the Close Price of the chart’s bar with the index 2, which matches the 3rd most recent bar, is lower than 1.3345. |
Sometimes you may need to make some comparisons with the current market price in your strategies. The CURRENT_PRICE function extracts the current market price at the time the condition is checked by the expert advisor.
Syntax | current_price(prev_flag) | |
---|---|---|
Parameters | prev_flag (optional) | This object is optional and allows you to tell JedeyeFX to extract the “previous current price” stored in memory from the last conditions evaluation (usually it is the one from the last bar, unless the Trigger Events At New Bars Only input is set to false. Since it is a flag parameter, it means that you can put any alphanumeric char inside in order to activate it or leave empty in order to keep it deactivated. For the sake of interpretation and manual referencing, it is recommended to put PREV or LAST as objects. |
Single-sided | No | |
Example | CURRENT_PRICE()>VAL(1.3510) | |
In this example, the current market price should be above 1.3510 in order to the condition be considered true. | ||
CURRENT_PRICE()<CURRENT_PRICE(PREV) | ||
This example explores the ability of building a condition which checks if the current market price is lower than the market price value of the previous condition evaluation. |
There are 12 inputs available, divided into 4 groups, for setting up open and close conditions for both buy and sell orders:
Before going into detail about all the supported conditions, let’s analyse how a condition is formed, which condition types are available and how each of them work. The conditions can be build up of indicator values, comparisons between them and special functions. JedeyeFX gives you access to those functions allowing you to make more accurate/complex conditions. First, let’s approach everything about indicator-based conditions.
Check out the following condition building structure:
indicator_identifier/alias(indicator_object)comparison_operatorindicator_identifier/alias(indicator_object)
As you already know, the indicator identifier or alias identifies the indicator we want to get values from. The indicator object, however, it’s a new concept and it refers to the value we want to get from the indicator. When dealing, for example, with MACD indicator, we need to tell the expert advisor which value we want to get from the indicator, which in this particular case, would be the signal line, the bar or the MACD zero line. In the above structure, there is also a comparison operator, followed by another indicator/object configuration.
The easy way to understand this concept is to imagine the following situation: say we want to open an order every time the MACD signal line gets greater than the MACD bars. In order to achieve this, we need to tell JedeyeFX the first member we want to compare with (in this case, the MACD Signal Line value), followed by the comparison operator (since we want the MACD signal to be greater, we use the > symbol which means "greater than"), and finally the last member we want the first one to be compared to (that is, the MACD Bars value).
Check the Condition Operators Table to learn more about which comparison operators are supported.
Now let’s build a condition, using an indicator setup like this: iMACD(0):ma. Note that this must be written in the Indicators Setup input, otherwise the following conditions we will be making will not work because the indicator they will be using will not be recognized. Check the following condition, noticing that we’ll be using the indicator alias instead of its identifier.
ma(LINE)>ma(BAR)
As you can see, this condition type is made of 3 parts: the ma(LINE) part will extract the Signal Line value (see the LINE object between brackets) from the indicator referred by the ma alias, which in this example is the MACD indicator. Note that every indicator have their available objects listed in the Indicator Properties section.
The second part we have, is the comparison operator, which in this particular situation, it’s the "greater than" signal (> symbol). This simply tells that the first member needs to be greater than the second one in order to the condition be true. Finally, the last part ma(BAR), will extract the BAR value from MACD for comparison with the first member. Summing up, when we write ma(LINE)>ma(BAR) in Buy Open Condition #1 input, then whenever the MACD signal line value gets greater than the MACD bar value, the condition gets true and a new buy order is open.
By default, and to ensure good performance in complex environments, the conditions we write in the open/close buy/sell condition inputs are evaluated once at each new bar appearing. This behavior can be changed in the EA Behavior section of JedeyeFX inputs, however, it is not recommended. This subject is approached later in greater detail.
We did see previously how to compare an indicator object value against another object. You may want, however, to compare an indicator object with a certain value. There are indicators like ATR (Average True Range) that only have one single object and you may have the need to compare it with a certain numeric value. Using the previously MACD indicator case, say you want to build a condition where opened sell orders are closed whenever the signal line gets above 0.00087 value. This can be written as simple as that:
ma(LINE)>VAL(0.00087)
Notice the new keyword there, VAL. This keyword allows you to put any number inside (floating point values or just integer ones), so that JedeyeFX converts them into comparable members. Like this one, there are many other keywords that allows accessing other properties, but their constructing structure is always the same, just like you see in this example.