JedeyeFX Demo

Try out the most advanced Expert Advisor ever made!

shp.png

Demo Download and Basic Instructions

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.

Full JedeyeFX Documentation Contents

 

 

demo/desktop4.png

JedeyeFX Demo Basics

Installation Guide

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  .

JedeyeFX can be installed through the setup file available for download at this page. This installer is the express way to make JedeyeFX installation as seamless and hassle-free as possible. As of MetaTrader 4 build 600 and above, its indicators and expert advisors installation paths have been moved to outside the programs folder to the App Data’s Roaming directory, like this:
C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id

JedeyeFX installer will automatically detect this path for you whenever it is executed and will define the proper target directories for the expert advisor and its dependencies/libraries. This means that most JedeyeFX installs will be made through just a few “next” button clicks.

Keep in mind that JedeyeFX installation requires MetaTrader 4 terminal to be closed whenever the installer initializes. If you install JedeyeFX while keeping MetaTrader 4 terminal open, the installer will prompt you if you want it to close the terminal for you in order to proceed with the installation.

VERY IMPORTANT: Check out how to configure MetaTrader 4 to support JedeyeFX libraries!
 

Running MetaTrader 4 on Mac OS using Wine?

No problem. JedeyeFX is fully compatible with Wine. Just download JedeyeFX Demo Files from here and follow the steps below.
Note: If you don't have MetaTrader 4 installed yet and you are considering running it on Mac OS, we recommend you to install it through WineBottler since it will make things easier for you. For more instructions about this check this tutorial at the official site.

Unizip the downloaded package and you’ll see 3 files:

- JedeyeFX Demo.ex4
- CoreLib.dll
- JedeyeFX.ico

If you’re used to install other EA’s and Indicators on MetaTrader 4, you know that you can find the MetaTrader App Data folder by going to “File > Open Data Folder”. There you’ll find a folder called MQL4. It is inside that folder that all EAs and Indicators are installed.
The correct path to your MetaTrader instance on Wine (WineBottler) should be something similar to the following:
/Users/<username>/Library/Application Support/org.kronenberg.winebottler.metatrader4_<MT4_instance_ID>/drive_c/Program Files/MetaTrader 4/MQL4/

In order to install JedeyeFX just copy its files to the right MQL4 subfolder, as you see below:

- JedeyeFX Demo.ex4      =>     MQL4/Experts
- CoreLib.dll                     =>     MQL4/Libraries
- JedeyeFX.ico                =>     MQL4/Images

Then just make sure you have “Allow DLL Imports” option checked (very important!) in MetaTrader 4 Expert Advisor Options tab and restart the terminal (check the section below for detailed information on this step). JedeyeFX comes prefigured with some conditions, so just start the strategy tester and it should run just fine.


Configuring MetaTrader 4 to Support JedeyeFX Libraries 

JedeyeFX uses its own libraries in order to run and therefore, libraries importation needs to be activated in MetaTrader 4. This options comes disabled by default, so it is always important to check if it active before trying to run JedeyeFX for the first time. In order to do that, in MetaTrader 4 menu, go to 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.
MetaTrader 4 Expert Advisors Options
 


Multiple Local MetaTrader 4 Installations

If you have multiple installations of MetaTrader 4 in your system, you’ll find multiple instance folders in the MetaTrader App Data’s Roaming folder. In such case, JedeyeFX will try to detect the most used MetaTrader instance, but it is not garanteed that the found path is the correct one.

In order to check for the proper install directory, you must do the following:
  1. Open MetaTrader 4 terminal and go to the menu File > Open Data Folder.
  2. The folder window will open and you’ll see the full directory on the address bar.
  3. If the path matches the one detected by the JedeyeFX installer, then you’re good to proceed with installation by clicking on the “next” button.
  4. If, on the other hand, you notice that the path is not the same, the you must manually enter the correct one, or just copy the full path on the folder window’s address bar and paste it in the directory text input of JedeyeFX installer.
Click on the “next” button to proceed with installation and then check if it was successfull by opening MetaTrader 4 terminal and checking for JedeyeFX on the navigator pane, as shown below:
 
MetaTrader 4 Navigator Pane
MetaTrader 4's Navigator Pane


JedeyeFX Uninstallation

JedeyeFX can be easily uninstalled by following the next steps:
  1. Go to File > Open Data Folder in MetaTrader 4 Terminal.
  2. In the window that just opened you’ll find a Uninstaller.exe file.
  3. Run it and when it finishes, restart MetaTrader 4 terminal.

Configuration Inputs Overview

JedeyeFX has a well-structured configuration system which was designed having in mind the ease of use since we are transferring the full power of a programmable expert advisor to people which are not used to the computer programming logic. To this end, we developed a simple language along with easily remembered syntax patterns which are very similar among every configuration input. Throughout this manual, we refer to the "configuration inputs" as being the expert advisor inputs (variables that influence the expert advisor execution and behavior which can be changed directly through the expert advisor properties on the MetaTrader 4 terminal).

As we mentioned before, configuration inputs are the expert advisor inputs that influence the expert advisor execution and behavior. In order to access to these inputs, in the MetaTrader 4 terminal go to the Navigator pane (if Navigator pane is not visible, you can activate it by going to View > Navigator or by pressing Ctrl + N key combination). If JedeyeFX installation was successful, you should find JedeyeFX expert advisor in there, as shown in the picture below.
 
MetaTrader 4 Navigator Pane
JedeyeFX location on MetaTrader 4 Navigator Pane


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.

JedeyeFX Configurable Inputs

  

Quick JedeyeFX Inputs Reference Table

The following table provides a quick-access reference guide to all the configurable inputs.

 

Quick JedeyeFX Inputs Reference Table

Name

Default Value

Available on Demo

Description

Slippage  

3

Yes

Maximum allowed slippage in pips.

Auto Magic Number  

10

Yes

Automatic random magic number generation.

Magic Number  

12345

Yes

Fixed magic number value.

Max Concurrent Buy Orders  

5

Yes

Maximum simultaneous opened buy orders allowed.

Max Concurrent Sell Orders  

5

Yes

Maximum simultaneous opened sell orders allowed.

Max Concurrent Symbols  

7

1: Disabled

Yes

Maximum different orders symbols allowed at a time.

Allow Manual Orders Control  

10

No

Tells the EA to control manually opened orders (by trader’s intervention).

Close Order Only On Profit  

1

Yes

Orders must be closed only when they are on profit (valid for each one of them).

Close Group Only On Profit  

1

No

Orders must be closed only when the total profit of opened orders all together is positive.

Execution Time  

1

No

Defines the expert working schedule.

Loss Allowed On Execution Stop  

1: Disabled

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.

Allowed Trading  

Buy and Sell

Yes

Defines the current trading mode: None, Buy Only, Sell Only, Buy And Sell.

Risk Setup  

manual,lots,0.1

No

Defines the initial trading lot size and calculation method.

Take Profit Setup  

1

Yes

Sets the initial take profit for all orders which will be automatically open.

Stop Loss Setup  

1

Yes

Sets the initial stop loss for all orders which will be automatically open.

Indicators Setup  

1

Yes

Initializes all the indicators than may be used in other configurable inputs (specially conditions inputs) with their individual timeframe and settings.

Buy Open Condition [1…3]  

1

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.

Buy Close Condition [1…3]  

1

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.

Sell Open Condition [1…3]  

1

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.

Sell Close Condition [1…3]  

1

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.

Pending Buy Condition  

1

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.

Pending Sell Condition  

1

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.

Pending Orders Fallback Pips  

1

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.

Pending Orders Return Margin  

1

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.

Max Pending Orders  

1: Disabled

No

Defines the maximum number of pending orders which can be simultaneously set. Setting this option to 0 disables it.

Pending Orders Self Set  

1

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.

Pending Orders Actions Setup  

1

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.

Stop Loss on Max Pending Orders  

1

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.

Invert Trading On Stop Loss  

1: Disabled

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.

Stop Execution On Stop Loss  

1: Disabled

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.

Currency Balanced SL Min Loss  

0:Disabled No  

Currency Balanced SL Min Profit  

0:Disabled No  

Alerts Only Mode  

1

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.

Send Desktop Alerts  

1

Yes

If set to true, alerts will be presented to you as popups right in MetaTrader terminal.

Send Notifications  

1

Yes

If set to true, alerts will be sent to your mobile device which has to be previously configured in MetaTrader settings.

Send Emails  

1

No

If set to true, alerts will be sent to you as emails. Requires email configuration first in your MetaTrader terminal settings.

Stop Loss Alert  

1

No

If set to true, sends an alert each time an order is closed with stop loss.

Take Profit Alert  

1

No

If set to true, sends an alert each time an order is closed with take profit.

Alerts Conditions Setup  

1

Yes

 

Prices Alert Setup  

1

No

Sets the market prices values which you want to receive alerts whenever they are reached.

Pips Oscillation Alert  

1

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).

Pips Oscillation Value  

1

No

Number of oscillation pips for Pips Oscillation Alert.

Pips Oscillation Timeframe  

Empty

No

Timeframe used for oscillation pips evaluation considered by Pips Oscillation Alert.

Trigger Indicator Buffer Shift  

Empty

No

Defines which chart bar will be considered for evaluating trigger conditions. Using the default value is recommended in order to avoid false signals.

Confirm Indicator Buffer Shift  

1

No

Defines which chart bar will be considered for evaluating confirmation conditions. Using the default value is recommended.

Trigger Events At New Bars Only  

10

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.

Auto Risk Force Round Up  

1

Yes

Forces auto risk balance algorithm to ceil the lot size value instead of rounding it to the closest value (default behavior).

Draw Pending Orders Lines  

10

Yes

If set to true, pending orders lines will be drawn on the chart.

Information Box  

0

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 Basics

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.

Now say that in addition to the MACD Signal Line be lower than MACD Bar you also want MACD Bar to be lower than the Zero Line. You can easily join this new condition by adding a comma (,), just like this:
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.

 This section is a fragment of JedeyeFX full documentation.
There may be references to other content that is not publicly available.
​This fragment is informational only and aims to help the user to better understand how JedeyeFX works.
There are many operators you can use to build your conditions. Condition operators are used to build conditions with comparison between their member values.

 

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.

 
Condition Operators Table

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


Check out the MACD configuration table. There you can check which objects you can extract values from.
 
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)

 

BAR() Function

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: HIGHLOWOPENCLOSE 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.

 

BAR() Function

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.

Build Your Own Conditions

 This section is a fragment of JedeyeFX full documentation.
There may be references to other content that is not publicly available.
​This fragment is informational only and aims to help the user to better understand how JedeyeFX works.

There are 12 inputs available, divided into 4 groups, for setting up open and close conditions for both buy and sell orders:

  • Buy Open Condition #1 to #3
    Set of conditions that should be true in order to open a new buy order.
  • Buy Close Condition #1 to #3
    Set of conditions that should be true in order to close currently open buy orders.
  • Sell Open Condition #1 to #3
    Set of conditions that should be true in order to open a new sell order.
  • Sell Close Condition #1 to #3
    Set of conditions that should be true in order to close a currently open 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.


Building up a Condition

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.


Comparing Indicator Object with Fixed Value

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.


Single Member Condition (...)

 The remaining content of this section is available in the full JedeyeFX documentation.