Hi guys and thank you for reading my thread.
I am very new to automated trading and have been spending time on the MQL5 website reading articles. I have also been reading through the MQL4 book. I think I understand the content reasonably well so far and have had a go at creating dummy "alert type" scripts and EAs to start my learning. Being in the initial phases of learning Im finding that the more I read the more questions I have about MQL4! My problem is that I have a very specific query to which I think I am unlikely to find the answer in the book or on the forums, and wondered if I could take some advice to make sure that my project "gets off on the right foot".
I am using the MT4 client. My MT4 client is (or will be) subscribed to a third party EA through the Tools ---> Options ---> Signals Tab. The client then automatically places copy/mirror trades based on instructions that come from the signal. My understanding is that these signals are not "attached" to a particular chart and the signal can give an instruction to buy or sell any currency pair at any time.
I wish to write two programs that do two different tasks. Lets call them program A and program B.
The intent of Program A is that every time an instruction comes from the third party signal to buy or sell whether its opening and order or closing an order, the program will detect that a change to the status of open orders has occurred, and will send a record of the latest action to a text file or excel spreadsheet with basic info about that order (i.e. datetime stamp, currency pair, open/close price, volume).
The intent of Program B sounds a little trickier (to me at least!). I would like that when an instruction is received from the signal to open a new buy or sell position, the MT4 client logs every tick (or maybe the price at 1 second intervals, or whatever) until the order is closed. Each datapoint would contain basic info such as the datetimestamp (or time since position was opened), the current price, etc. The objective of the program is to get those date-time stamped price values into a text file or Excel spreadsheet and I would imagine this can either be done "tick-by-tick" whilst the code is running, or can be accumulated by the program whilst it is running and then gets dumped all in one go when the position is closed.
My problem is that according to the MQL4 book, only 1 EA can be running on a client at a time. To me, this means that having a program that constantly checks over and over to look for new positions that are open or closed cannot be run as an EA every tick as the client will already be subscribed to a third party EA via the signals tab. If I run the program as a script my understanding is that it only runs once and so it wont really be repeatedly checking for new positions.
I wonder if the solution involves a script with some kind of loop so that the code runs every second (or whatever), and checks for changes in currently open positions and also stores/posts any data to the log files for any positions that are open.
Would it be possible for any experienced MQL4 coders to comment on the above and perhaps offer any pointers or advice so that I start off on the right lines? I am a complete rookie and know only what I have read/learnt from the internet over the last few days so please go easy on me!
In addition to the above, how much should I expect to pay if I wanted to commission an experienced MQL4 coder to help me develop programs to achieve parts A and B above?
Kind regards and thank you for any assistance that can be provided. As the saying goes - "there's nothing more dangerous than a little bit of knowledge"!
This is an utility for automatic scaling of a chart and making at least 140 bars visible in it. This is necessary for a correct wave analysis according to the Bill Williams' strategy "Trading Chaos". The utility can be used on any timeframe available in МetaТrader 5.
It draws a vertical line through the first bar the calculation starts from. This line allows you to see the probable starting point of the wave sequence along with a sufficient number of bars displayed in the chart. It also makes t
The main purpose of the indicator is to detect and mark trade signals on the histogram of the Awesome Oscillator according to the strategies "Trading Chaos, second edition" and "New Trading Dimensions".
The indicator detects and marks the following trade signals:
"Two peaks" - Divergence. The signal "Second wise-man" - third consequent bar of the Awesome Oscillator after its color is changed. The histogram crosses the zero line. The signal "Saucer".The indicator includes a signal block th
Active Lines - a powerful professional tool for operations with lines on charts. Active Lines provides a wide range of actions for events when the price crosses lines. For example: notify, open/modify/close a position, place/remove pending orders. With Active Lines you can assign several tasks to one line, for each of which you can set individual trigger conditions, as well as conditions for re-activations and the number of possible activations.
Active Lines helps you easily organize various tr
Safe Automatic is a safe MetaТrader 5 trading robot working autonomously on a VPS server. The good results are achieved on EURUSD.
The EA applies modified versions of a trend-following strategy, half-pyramiding, scalping, Elliott Wave method and speculating trading with a deposit protection. The EA switches the strategies automatically. The program also takes the news calendar into account: the robot does not enter the market in a 10-minute interval before and after a news rel
Cluster analysis is now available in MetaTrader 5!
YuСlusters indicator builds a cluster graph based on tick data. For exchange instruments it is the volume and the last deal price, for Forex instruments it is the real or tick volume (depends on broker) and selectable type of the current price: Bid, Ask or (Bid+Ask)/2.
There are 5 criteria of cluster generation: Time interval, the criterion is set in seconds. Price range, the criterion is set in points. The current cluster is closed when the
Pipfinite creates unique, high quality and affordable trading tools.
Our tools may or may not work for you, so we strongly suggest to try the Demo Version for MT4 first. Please test the indicator prior to purchasing to determine if it works for you.
We want your good reviews, so hurry up and test it for free...we hope you will find it useful.
Trend Laser with Volt Impulse
Strategy: Confirm impulsive signals Watch Video: (Click Here)Trend Laser with Energy Beam
The indicator displays a market profile of any duration in any place on the chart. Any number of profiles can be set within one open chart. Simply create a rectangle of required length on the chart and this rectangle will be automatically filled by the profile. Change the size of the rectangle or move it - the profile will automatically follow the changes.
The indicator works on every timeframe available in the terminal, but, depending on the current period, it uses the hist
The indicator has standard settings. The new modification of indicator provides special marking of the segment when the moving averages begin to form a cross in one direction or another. The Alligator`s cross indicates that the trend is about to change. Modified Alligator helps traders to determine a trend on a particular timeframe even if the averages are intertwined and have a shift in the future. Direction of a trend is determined by a cross of the averages with a specified marking area on th
The indicator calculates the actual status of your position on FORTS market. Since your position is re-calculated after each clearing on FORTS and other futures markets, you can see the status of your position on the chart and in the "Profit" section only starting from the last re-opening (clearing). The indicator solves this issue by displaying the level of the very first deal opening, the actual profit, swaps, and commissions. The product is most useful for mid-term and long-term deals on FORT
SafeZone is a method for setting stops on the basis of recent volatility, outside the level of market noise. It is described in "Come into my Trading Room" book.
In a downtrend, SafeZone defines noise as the portion of the current bar that extends above the high of the previous bar, against the downtrend. It averages the noise level over a period of time and multiplies it by a trader-selected factor.
For short trades, it adds the average noise level, multiplied by a factor, to the latest hig
The Expert Advisor implements the classic "triangular arbitrage", which is successfully used by hedge funds.
Arbitrage refers to a class of neutral-market strategies, in which the profit or loss of open positions does not depend on the direction of the market movement as a whole.
In order to take profit, the EA exploits a weak spot of market makers - it utilizes the difficulty of combining cross rates of individual currency pairs.
The advantages of the strategy are the following:
The Expert Advisor places pending orders above the high fractal and below the low fractal on the distance of "The point of creating order". When one of the orders triggers, the second is removed. Depending on the parameter "The number of orders in the series" the Expert Advisor works in two ways:
"The number of orders in the series" = 1
It is a breakthrough Expert Advisor. If the fractal broken through upwards, buy with fixed TakeProfit and StopLoss. If the fractal is br
The trade strategy is based on three moving averages. To determine the trend, it uses three exponentially smoothed moving averages: FastEMA, MediumEMA and SlowEMA.
Buy signal: FastEMA>MediumEMA>SlowEMA (upward trend).Sell signal: FastEMA<MediumEMA<SlowEMA (downward trend).Input parameters:
Inp_Signal_ThreeEMA_FastPeriod = 8;Inp_Signal_ThreeEMA_MediumPeriod = 38;Inp_Signal_ThreeEMA_SlowPeriod = 48;Inp_Signal_ThreeEMA_StopLoss = 400;Inp_Signal_ThreeEMA_TakeProfit = 900;Inp_Money
Trading Chaos Expert Lite is a light version of Trading Chaos Expert. In the Lite version it is not possible to receive the table of trading signals, automatically place pending orders based on them and maintain open positions for multiple symbols at the same time in one window. Only the Current Chart mode is available. In all other features the panel is fully consistent with the basic version of the Expert Advisor.
This is, rather, a well thought out trader's assistant which is not easy to do
Does not support hedging orders on a single symbol on MT5
MultiMTCopier MT5Source - new and improved multi-terminal positions copier for your real / demo account, works faster, requires less, flexible in managing and upgrading, new information support. This expert is designed for terminal MetaTrader5 from which the position will be copied.
The EA will copy all positions without delays Additionally integrated notification in situations requiring user attention Buttons for re
Are you a swing trader? The PZ Swing Trading is the first indicator designed to detect swings in the direction of the trend and possible reversals. The indicator studies several price and time vectors to track the aggregate trend direction and finds situations in which the market is oversold or overbought and ready to correct.
Profit for market swings without getting whipsawed The indicator displays the trend direction at all times A colored price band represents the opportunity baseline C
PipTick VSA is based on the original Volume Spread Analysis method. It was designed for quick and easy recognition of VSA patterns. Even though this indicator looks very simple, it is the most sophisticated tool that we've ever made. PipTick VSA indicator is a really powerful analytical tool that generates very reliable trading signals. Because it is very user friendly and understandable, it is suitable for every type of trader, regardless of his experience.
What is VSA?
VSA - Volume Spread An
Scalper with Automatic Parameter Setting
Would you like to have an Expert Advisor that could automatically calculate trade parameters and adjust to the current market situation?
We present you our new development for the Forex market. This is a tick scalper for МТ4 and МТ5 - TickSniper.
Trading with it is fully automated. Forget continuous monitoring - this Expert Advisor trades independently. Its settings have been optimized over the course of testing on our real accounts.
TTMM – "Time To Make Money" – Time When Traders Makes Money on the Stock Exchanges
The ТТММ trade sessions indicator displays the following information:
Trade sessions: American, European, Asian and Pacific. (Note: Sessions are displayed on the previous five days and the current day only. The number of days may change depending on the holidays - they are not displayed in the terminals. The sessions are also not displayed on Saturday and Sunday).
The main trading hours of
A script for opening a grid of orders
If you need to quickly open several pending orders (Buy Limit, Sell Limit, Buy Stop, Sell Stop) on a certain distance from the current price, this script will do all the routine for you! Allow AutoTrading before running the script.
Run the script on a chart.
Language of messages displayed (EN, RU, DE, FR, ES) - language of the output messages (English, Russian, German, French, Spanish). Price for open - open price. If set to
The script allows users to easily close positions if their profit/loss reaches or exceeds a value specified in pips.
Please set slippage value first. Sometimes some positions do not close due to high volatility of the market. Please set larger slippage or restart the script.
This software has no equals in the world and represents a universal trade "console" covering trading signals, automated market entry, setting of Stop Loss and Take Profit, as well as Trailing Profit for multiple trades at the same time in a single open window. Intuitive control of the Expert Advisor in "three clicks" ensures a comprehensive use of all its functions on different computers, including tablets PCs.
Interacting with additional signal indicators that mark the chart to give a real mar
The script is intended for automatic placing of Sell Stop pending orders, Stop Losses and Take Profits on the user specified levels. This script is not that useful as "Virtual pending buy stop", since short positions are opened as Bid price crosses the levels. Thus spread widening is not dangerous. Nevertheless, you need to have this script to prevent unwanted hitting of the Stop Loss levels.
Automation of the process of placing the Sell Stop pending orders, Stop Losses and T
The indicator is intended for determining the spread and swap size, the distance for setting stop orders and stop losses from the current price allowed and the risk per 1 point in the deposit currency.
The indicator informs a trader about possible additional expenses and profits connected with transferring a position to the next trade session of the financial instrument. It also informs about the spread size and the distance of pending orders, stop loss and trailing from the current price. In a
The script is intended for automatic placing of Buy Stop pending orders, Stop Losses and Take Profits on the user specified levels.
Avoiding unwanted entering a long position in case of false hitting the level as a result of widening of the spread by a dealing center. Avoiding unwanted triggering of a Stop Loss in case a quote pierces a significant level (fractal) without further confirmation with the close price. Setting a necessary virtual order and entering the market in
The main purpose of the indicator is to determine and mark trade signals on the histogram of the Accelerator Oscillator, which were described by Bill Williams in his book "New Trading Dimensions". The list of signals:
The buy signal when the indicator histogram is below the zero line. The sell signal when the indicator histogram is below the zero line.The sell signal when the indicator histogram is above the zero line. The buy signal when the indicator histogram is above the zero line. The
Purpose and functions of the indicator
The indicator determines and marks the moments of trend change on a chart based on the theory of fractal levels breakdown on any time frames. If a breakdown based on all rules is real, the horizontal lines will appear on the chart with corresponding color. If there is an up trend, the line will be blue. In the descending trend the line will be red. The blue line is a strong support level, the trader should look for buying opportunities above this line. The
FourAverage: A Breakthrough in Trend Identification
With evolving information technology and increasing number of market participants, financial markets get less and less analyzable using good old indicators. Common technical analysis tools, such as Moving Average or Stochastic alone, are not capable of identifying the trend direction or reversal.
Can a single indicator show the right direction of the future price, without changing its parameters over 14 years' history, while at the same time
VirtualTradePad is a panel for managing main orders in МetaТrader 5: Buy, Sell, Buy Stop, Buy Limit, Sell Stop, Sell Limit, Close, Delete, Modify, Trailing Stop.
This version is for informational purposes. Analyzing the main trade strategies using 10 indicators and 8 timeframes, the panel draws signal direction.
This pane is a part of the VirtualTradePad series that took 2-nd place in the Best Graphic Panel.
A free of charge demo version - VirtualTradePad Lite.
х - no s
qAutoActivation indicator is one of the main components of Trading Chaos Expert trading expert panel. The indicator displays the current trend on the current timeframe. This is the first indicator that is attached to the chart and saved in the trading complex template. It defines what trading signals from the expert panel should be automated for market entry (bullish or bearish ones).
When the trend changes, the indicator changes the line color and, at the same time, highlights the trading pane
My problem is that according to the MQL4 book, only 1 EA can be running on a client at a time.
Not true, you can only have 1 EA running per open chart.
Thank you for your response GumRai. How do the EAs that are running on charts compare to the EA that I am subscribed to? Does it mean that if I am receiving a signal via the Tools ---> Options (Signals Tab) then I have to open a chart and attach an EA to it for every possible currency pair for which the EA signal I am receiving could open a trade? I hope my question makes sense!
Thank you again for your response.
Thanks JD4. So does that mean I should write a script that runs in an infinite loop to do "part A" - i.e. a script that loops over and over to check whether any orders have been opened, closed, cancelled, etc, and if a trade is opened it attaches an EA to the chart which has an order open, and that EA runs an records ticks to a CSV file until the script tells it to unload? :)
Thank you again for your help!
No, infinite loops are usually bad ideas. Write an EA, they are designed to be "active" all the time. Code it to read your order states you want to monitor. I am not sure if you can write an EA to open a script when certain conditions are met or not though. It seems like a bunch of coding, but I supposed, provided you can open a script from an EA, that you could code your overwatch EA to open scripts under certain conditions, and then if the script is directed to attach EAs to charts, to do that.
A simpler thought on this is why not just write an EA that does all the things you want in one, and attach it to the chart or charts and leave it on them? Code your EA to record only if those conditions are met. But as far as the ticks, MT doesn't use real ticks, according to posts I have seen. The lowest they use is the data from the minute TF and calculate everything else from that. I have tried to find the post where I outline my theory on how they do it, but did not find it yet.
Edit: I found the post (https://www.mql5.com/en/forum/156166) where I proposed my theory, keep in mind that this is only a guess. I do not know specifically how MQ calculates the tick values.
Thanks JD4. I think Im "almost there". Regarding the overwatch EA (as you put it) - I am struggling to understand how that fits in with MT4. Must an EA must always be attached to a chart? So would that mean my "overwatch" EA is just attached to any random chart just as a place to run? If I have one or more charts open with EA's attached to them, does this conflict in any way with receiving signals via the Tools ---> Options ---> Signals tab?
Thanks for your patience!
For an EA to function, from my understanding, it does have to be attached to a chart. I would think that the best place would be the chart for the code pair it is supposed to be working with. As far as signals go, those are basically copied trades from the signal source. I do not know if they would interfere with your EA(s) or not. I am still learning to code MQL myself, and am far from an expert on it. All I have down so far is the general ideas on most of the stuff.
Also, after going back and re-reading your OP, I noticed you are (or were) reading from both MQL 4 and 5. You need to be careful with this, because MT4 cannot use EAs built for MT5 (which uses the MQL5 language). There is a similarity between the 2 since MQ updated MQL4, but you need to be sure you are using MQL4 code when building your MT4 EA. The same goes for MT5 using MQL4, you can't do it. The code needs to be MQL5.