Before I Buy (Pre-sales Questions)
VTS stands for Visual Traders Studio.
The VTS Expert Advisor Builder is a Windows graphical application that enables
non-programmers to build complex Expert Advisors by dragging, dropping and
connecting logical elements.
The VTS application contains basic functionality to build almost any Expert
You can learn more here:
VTS is a standalone Microsoft Windows application. You get the VTS application and all help files.
VTS is delivered immediately as a digital download.
The installation program installs the VTS application and all required help files on your local computer.
VTS is delivered immediately as a digital download. There is no shipping required.
VTS is a Microsoft Windows application that installs locally on your computer.
See this page for our latest offers:
iExpertAdvisor MetaTrader EA Builder Products
You can create any type of Expert Advisor. There are no limitations.
Yes. As you drag, drop and connect your drawing elements on the VTS drawing pad, you can build the system at any time and view the generated MQL code.
Also, you can manually edit and rebuild the MQL code if needed.
Any EA that you create using VTS is YOUR property. iExpertAdvisor has no ownership claims to your EA or your trading strategy.
No. there is no limit on the number of functions or logical conditions that can be created and used by VTS.
You should be familiar with Forex trading, including the typical price values (High, Low, Open, Close), how to open and close trades and perhaps some technical indicators.
Some traders find VTS easy to use, while others find it more challenging.
Building a simple EA is easy. Building a complicated EA may or may not be easy.
You should understand that developing an automated trading strategy on a fiercely competitive market like Forex will be challenging and you should be prepared to put effort into the task.
The best way to find out is to try VTS. We offer a free trial from our home page:
1. You don’t need to learn the MQL programming language.
2. Even if you know MQL, VTS allows you to build EAs faster and more easily. For example, you don’t need to memorize the parameters for any of the built-in MQL functions: VTS displays each parameter and it’s allowable choices.
3. A VTS system is a drawing. This allows you to easily collaborate on your trading strategies.
4. VTS teaches you to build a trading system, not just an Expert Advisor. As VTS supports more platforms, you’ll be able to build and run your trading strategies on multiple platforms.
See this page for our latest offers:
Yes. You can sign up for a free trial here:
Yes. The standard VTS license can be installed on up to 2 computers.
Yes, VTS produces MQL code that you can manually edit and rebuild if needed.
No. VTS creates Expert Advisors only. We are currently working on a Custom Indicator Builder.
Yes. VTS can use any Custom Indicator that is available on your MetaTrader platform. Please note, Custom Indicators that output lines are the easiest to use. Custom Indicators that output other objects, such as arrows or thumbs, can be challenging to integrate into an Expert Advisor.
Yes. VTS is updated frequently to support new requests and changes to the underlying platforms.
No. There is no charge for VTS updates. All updates are free.
We created a video series to help get started:
A VTS Plug-in allows traders to easily implement advanced trading techniques using an add-on user interface.
Shortly after the initial release of VTS, requests came pouring in for added functionality. Some of the requests were common and were added to the base VTS platform. Other requests were specific in nature: It did not make sense to add the feature to VTS and then charge all buyers for that feature. So we created the concept of a plug-in that allows traders to purchase only the added functionality that they require.
Here is link to our support resources:
Generally, the same as the system requirements for the MetaTrader platform.
If your computer can run Metatrader, then it should be able to run VTS.
Here are some guidelines:
2.0 GHz or faster CPU
512 MB RAM (1 GB recommended)
Screen resolution 1024×768 or higher
Modem/connection speed 36.6 Kbps or faster
Note: VTS uses the 3.5 .NET framework. If this is not already installed on your computer it will be automatically downloaded during installation.
By default, an VTS Expert Advisor (an EA built by VTS) will only open 1 trade at any one time.
This is governed by these VTS built-in input variables:
These are all set to 1 by default, but they can be changed at any time.
I am trying to assign an indicator, let’s say RSI, as an input in my EA. Then I want to use it in my Logic. So, the logic will go as “OpenBuy/OpenSell if RSI value is equal to InputRSI” (where InputRSI will be Input-based).
III. Create the Logic
From the Toolbox NEW pane, drag and drop a Logic Element.
Press the (+) button to configure the Logic Element
Set the condition as follows: “if the value of the RSI function is greater than my input value, return true”
- The variable MyRSIValue should be defined with a data type as a “double” to support a decimal number like 75.0
- Connect the Elements as you add them to the pad so they are visible from the Choose menus.
- Use the Choose menu to set the names of the operands in the Logic if you are not comfortable typing them.
How to Fix a Broken EA
Sorry, there is no built-in debugger for MQL4.
But, here is some information that will help you solve any issue:
1. Expert Advisor will not Build?
2. Expert Advisor will not Trade?
3. Need to Debug your EA?
Ordersend error 130 is an “Invalid stops” error.
Check the stoploss and takeprofit values to make sure they are good for your platform & account type.
The maximum length for the name of a variable for MT4 appears to be 30 characters. (This value may change, but there will always be some maximum)
The error message is pretty clear:
‘v1234567890123456789012345678901’ – too long variable name C:\Program Files (x86)\MetaTrader 4\experts\exits.mq4 (4, 5)
It should not be easy to give a variable a name that is too long using VTS.
Most VTS entry screens prevent you from creating a variable or function with too long of a name, but occasionally it does happen.
If it does, delete the variable from the toolbox by right-clicking and selecting delete. And then delete all references (all Elements on the drawing pad) of the variable.
If you still have trouble, follow these steps:
How do I configure VTS to use my MetaTrader platform?
After VTS converts Drawings into readable MQL code, VTS uses the MetaTrader compiler to convert the MQL into an Expert Advisor. The Build button on the Main Menu launches the MetaTrader compiler.
Allows compiler options to be set.
Click here for more information.
The Editor button on the Main Menu launches the MetaTrader program metaeditor.exe. This program opens the MQL editor.
Click here for more information.
The Platform button on the Main Menu launches the MetaTrader program terminal.exe. This program opens the MetaTrader platform.
Click here for more information.
EA Output Folder
Defines where EA files are created.
Click here for more information.
Custom Indicator Folder
Defines where custom indicators are sourced.
Click here for more information.
How can I create a Strategy Template:
In VTS, with the system open that you would like to create a template from
Go to Tools -> Package & Share
Check “Save as Strategy Template”
Then select save -> Save & Close
Next time you open VTS
The system will appear in the “Create New System” section of the Welcome page.
Clicking the button on the Welcome screen will create a new system
based on your original system.
The behavior is just like clicking the Cross over Strategy
from the Welcome screen.
How to Email a VTS System
The above process of creating a Strategy Template will create a *.zip file in the this folder:
C:\Program Files \iExpertAdvisor\Visual Trader Studio for MetaTrader\Data\Packages
(This may be different if you installed VTS in a folder besides “Program Files” or “Program Files(x86)”)
The zip file maybe attached to an Email.
Also, the zip file may be opened in VTS by using the “Open Existing System” on the Welcome Screen.
Yes, you do.
Here is a link to a post on how to set the company name and copyright values for your Expert Advisor:
Is it possible to build an Alert-Only Expert Advisor?
Yes, it is. See this post: How to Build an Alert-Only Expert Advisor
When you click the build button in the VTS application two things happen:
- VTS converts the drawings into MQL code. VTS creates a file with the same name as the VTS system except with a “mq4” extension. For example: system1.mq4.
- VTS uses your MetaTrader platform to build an Expert Advisor from the MQ4 file. This file is the EA and has an “ex4” extension. For example: system1.ex4
These files (the MQ4 and EX4) are created in your MetaTrader platforms “experts” folder. For example:
C:\Program Files (x86)\MetaTrader 4\experts
To copy your EA to another platform, just copy the EX4 file to the “experts” folder of the other platform. You may need to restart your MT platform for the EA to appear under the “expert advisor” tab in the MT navigator window.
One of the features of the Mutli-Platform & Script plug-in is an automatic copy of your EA to multiple MT Platforms.
To delete a VTS Element from the drawing pad, select the Element and then press the Delete key on your keyboard.
To delete a VTS Element permanently from the system, find the Element in the ToolBox, right-click with your mouse and select Delete.
The MetaEditor provides great help on all of the MetaTrader functions.
You can learn how to use it here:
- On the VTS desktop icon, right-click, select “Shortcut”,
- then select “Advanced …”,
- then check “Run as Administrator”
First, make sure your MT Paths are set correctly. See here for details: MT Path Help
When you select the Editor or Platform buttons on the top of the VTS application, VTS simply calls the executable file and attempts to load it into a VTS tab.
On some windows systems, the call to load the MetaTrader executable file (terminal.exe or metaeditor.exe) fails. The reason is not always clear, but it is probably related to User Access Permissions (UAC).
The buttons are just for convenience, you can always open the platform or the MetaEditor from outside of VTS.
Generally, each plug-in has a minimum VTS version that is required to support the plug-in.
When you log into the members area, you will see the minimum version listed next to each of your plug-ins.
To determine what version of VTS you are running, in VTS go to Help->about
There are two ways to update VTS:
- Log in to the members area and download & run the latest installation file. The members area log in is on the top right menu of our home page at www.iExpertAdvisor.com
- Or, in VTS, go to Help->Check for Updates and follow the prompts.
To find the VTS Version, in VTS, go to About->Help
Yes, VTS should work through your default proxy server.
Here are some advanced instructions for manually setting a specific proxy server if you can not use your default proxy server.
<system.net> <defaultProxy> <proxy proxyaddress="http://[proxy address]:[proxy port]" bypassonlocal="false" /> </defaultProxy> </system.net>
You replace [proxy address] with your proxy name & [proxy port] with your port.
All of the data created by a user when creating VTS systems is stored under this folder:
If you are having a lot of trouble setting the MT Paths to the correct the locations of your MetaTrader platform, there is a manual work-around.
Log into the members area from our homepage www.iExpertAdvisor.com
Once in the members area, you can access all of your products.
If you have forgotten your password, there is a link to reset it.
We use the email address used to purchase to create your account. We don’t have an automated method to change your email address. If you really, really need to change the address, let us know and we will do it manually.
The latest help files are always at this link:
Most of your pre-sale questions about the VTS Expert Advisor Builder are answered here:
How can I change the default values of the indicators I add to my systems. For example, when I add the CCI indicator to my system, I always have to change the default value of CCI Period from 15 to 14. Is it possible to change it forever?
When you first configure your CCI, name it & save it as something like “CCI_14“.
The go to the Function toolbox, under the name of the system you will find “CCI_14“.
When you need to, drag & drop the CCI_14 function.
Notice when you drag and drop the CCI_14 function on to the pad, VTS does not rename it. The function name remains CCI_14. You truly have more than one copy of the CCI_14 function on the drawing.
This means if you change any parameters values of the CCI_14 function, the changes will be reflected in all copies of the CCI_14 function. If you don’t want this behavior, use a different named function.
If you want the CCI_14 function to be available outside of the current system, add it to the Favorites menu by right-clicking the function in the Toolbox and choose “Add to Favorites”.
How can I create a variable that defines only the signal of the MACD indicator. I want to to put a logic in which the MACD signal line is crossed up or down.
Use the mode parameter to get the Signal value for the MACD. VTS will populate a pull-down menu with the allowable values.
VTS will populate the mode parameter menu for all MQL indicators that support the mode parameter (ADX, Stochastic, MACD).
Basically, any indicator that displays more than one line when you add the indicator to a price chart will have a mode parameter.
Also, this is a good time to name the function appropriately, something like MACD_signal
After you connect the function and save the drawing, the MACD_signal value will be available from the Choose menu to use in a logical condition.
When I choose indicators to add to my system some of them end in number 1, and some in number 2 (for example, iRSI2, iStochastic1). What is the difference, and what do these numbers mean at all?
VTS generates a name each time you drag and drop an indicator function onto the drawing pad. It simply takes the base name of the indicator and adds a number to the end to get the next available name.
Each function in a VTS system must have a unique name, this is just a first guess.
You, as the system developer, should give all variable and function names a descriptive name. A good name goes a long way.
For example, an iMA (moving average) function with a period of 6 may be name FastMA.
Some traders will add the parameter values to the name: RSI_12
You can just drag and drop the same MQL variable Element onto the true & false outputs of a Logic element & set the value accordingly using the assignment tab.
After a variable has been saved, it is available in the Variables ToolBox, under the name of the system it was created in. So you can drag the variable from there to where ever it is needed.
Yes, VTS supports multiple Links.
You can have more than 1 output link on any Element, and you can number each link to control the order of execution.
You can learn more here from the VTS help file:
- The EA will open trades on the chart it is attached to, so attach your EA to the MetaTrader H1 chart.
- In VTS, you just use the pull-down menu to choose the H4 timeframe for the indicator. The EA will use the 4H timeframe to calculate the indicator regardless of what chart the EA is attached to.
Every indicator configuration window in VTS allows you to explicitly choose the timeframe:
- The “shift” parameter is used for iMA (the moving average function or any indicator) to get a value from any “bars back”
- The Close price for bars back is accessed like this: Close, Close, Close …
- Use the built-in function Point if you want to convert from an integer number like 20, to a pip value:
For example, in the assignment field of a variable type: 20 * Point
- Use the function fnOpenOrder to set s/l, t/p and trail.
- Reverse the logic in the “Close*Order” drawings to close trades (uses fnOrderClose)
- 100 pips tall from LOW to HIGH
- bullish bar
- the OPEN minus the CLOSE comprises 80% of the bar
1. Create a Variable, with a type of ‘double’ and name it “range1”
1. Drag, drop, connect and configure your two indicators functions.
- Drag & drop a moving average (iMA), set its period to 6 and save it as FastMA
- Drag & drop another moving average (iMA), set its period to 21 and save it as SlowMA
2. Drag, drop and connect a Logic element.
Configure the logical condition:
Set the left operand to _SlowMA
Set the right operand _FastMA
Set the operator to CROSS_UP
This logic will check if the SlowMA has crossed up through the FastMA,
How do I Open a Buy trade when the Ask price is N points below the ‘Lowest Low’ in the last M bars”?
6 easy steps
1. When you first create your VTS system, check the box to create a OpenBuyTrade drawing:
2. On the OpenBuyTrade drawing, drag, drop and connect the fnGetLowest function and a new variable named MyLow
(fnGetLowest is found in the Functions Toolbox under the Bar menu)
3. Configure the fnGetLowest function, set the endbar parameter to your M value: (M=12)
4. Configure the MyLowest variable to hold the lowest value minus N points: (N=25)
5. Add the logical condition to IsOpenBuyTrue:
6. Build and Test!
- or close logic.
If you want your EA to close all of your open trades, use the function fnCloseAll. The fnCloseAll function is found in the Function’s Toolbox, under the Trade menu.
The MQL code usually looks like this:
I’m not a fan of sleeping in a while loop – the code can hang forever. The while loop is rarely needed: An EA is executed on each tick, so if the order fails, it’s retried on the next tick, usually in less than 1 second.
Yes. On the Welcome screen, in the Create new system group there is an icon to create a new CrossOver system.
This will create a VTS trading system that uses a moving average crossover to open and close trades. It can be used as a starting point for a system, or just as an example for learning.
Yes, the TradeSignal Manager can be used to delay the opening of subsequent trades.
The delay can be candle-based or minute-based:
You can limit your EA to 1 trade per candle using the TradeSignal Manager to limit the next trade.
- check NEXT_SIGNAL_RULE_DELAY_CANDLE
- enter 1 for the delay value
What events can be used to send emails?
The events that are supported through the Communication Manager are:
You may need to determine your MT broker’s local time to use the GMT offset feature of the Trade Time Manager.
Here is one way:
- Drag, drop and connect the MQL function TimeCurrent (Toolbox->Functions->Time).
- Click the (+) button to configure the TimeCurrent function, then select the message tab.
- On the message tab, check:
- ‘send message’
- ‘write value of time current’
- ‘write on chart’
Any time intervals not specifically defined in the Trade Time Manager will have the default behavior of being able to open or close any and all trades. In other words, it is like there is no trade time rule defined for that period.
For example, if you define a single rule, to close all trades from 3:00-4:59, then the periods from 0:00-2:59 and 5:00-23:59 will have the default behavior of opening and closing trades.