[ Ссылка ]
With MQL4 for Metatrader4 we create an Expert Advisor that is able to open buy trades and close them based on a crossover of two moving averages.
This video, we are going to create an Expert Advisor that is able to open buy trades or close them when two moving averages are crossing. So let’s find out how to do that with MQL4. To get started please click on a little icon here or press F4 on your keyboard.
Now, you should see the Metaeditor window and you want to click on file, new file, Expert Advisor from Template, continue. I will call this file simple Buy Cross Over Stop. Click on Continue, continue and finish. Now you can delete everything above the Ontick function and the two comment lines here. We start by creating a string variable for the signal. That is called signal and we don’t assign a value here. Afterwards, we want to calculate the small moving average. That is done by using the IMA function for the current symbol on the chart and the currently selected period on that chart.
The small moving average should be calculated for twenty candles. We don’t use a shift value here. We use Mode_SMA, that stands for simple moving average. Of course, you could also use something like EMA for exponential moving average.
The results should be calculated based on the close price and we want to calculate the result for candle one. Now we want to repeat that for the big moving average. The big moving average in our case will be calculated for fifty candles. Everything else is the same, except for the variable name here and now we can calculate the signal, because when the big moving average is bigger than the small moving average for candle one, that would be a sell signal for us.
So we assign the words sell to our signal. In the other case, if the big moving average is below the small moving average for candle one, that would be a buy signal. So now we assign the word buy to our signal. This is about closing positions and to close something we need to open buy positions by using ordersend. We want to do that when the signal equals buy and when the return value for OrdersTotal is zero. That would mean we have no open orders and now we want to open a test position by using Ordersend for the current symbol on the chart, we are going to open a position for ten Microlot. We have Take Profit value of one hundred and fifty points.
Of course you only would do this on a demo account, not on a real account. And we do it to close positions when we have a cross over. So when the signal equals sell and we have open orders, that would be true when OrdersTotal returns a value that is above zero, then we want to call a function called close-buy positions this pair. And to see what’s going on, we want to use a comment statement to output the text.
The current signal is followed by the calculated signal directly on our chart. So far so good. But this function doesn’t exist so far, so we need to create it now. The name of the function is close buy positions this pair.
We use void because we don’t require a return type and now we use a for loop to go through all the open orders. Afterwards, we use order select to select a position for the current counter value of the for loop. We need to get the current currency pair. That can be done by using Order symbol. And now we want to check if the symbol on the chart and the currency pair are equal. And as we only want to close buy positions, we also check if the order type equals OP_BUY.
And if those conditions are true, we want to close the order. That is done by using order close for the current order ticket and the current order lots, we are going to close the order for the Bit price. The slippage is three and the last parameter here would be the color. I haven’t assigned a particular color here, but usually it’s red. Now let’s close the for loop and close the function and that’s about it. If this was too fast for you or if you have no idea what all the code here does, maybe you want to watch one of the other videos in the basic video series first, or maybe even the Premium Course on our website might be interesting for you.
For now, please click on the Compile button or F7 on your keyboard. You shouldn’t get any errors here, and if that is the case, you can click on a little button here or press F4 to go back to Metatrader. And in Metatrader, we want to click on View Strategy tester or press Control and R, please pick the new file simple buy crossover stop dot EX4 mark the option for the visual mode here and start your test. Here we are.
MQL4 TUTORIAL BASICS - 102 SIMPLE BUY CROSSOVER STOP
Теги
mql4crossovermt4mq4metatrader4smaemamoving averagemoving average crossoversimple moving averageexponential moving averagesma metatraderema metatraderalgo tradingalgorithmic tradingmetaeditoreaontickoninitbuy stopsell stopstop losscrossover stopclose buy tradeclose buy positionmql4 bookmql4 youtubemql4 videomql4 referencelearn mql4learn mqlpositionclosepositionmodifyordertypeorderticketindikatortrading botyt:cc=on