
Help with code to execute code once per bar in MQL5
- 2021.04.05
- www.mql5.com
I've been using this code on a multi symbol EA trying to make it execute only once per bar but it executes on every tick , please help...
// import Trade Library #include<Trade\Trade.mqh> //Create an instance of the Ctrade called trade CTrade trade; MqlRates PriceInfo[]; //Create an array for the prices string signal = ""; //Global string for the signal //---Global Variable datetime signalTime; datetime currentTime[]; void OnTick() { static double NextBuyPrice; //Static NextBuyPrice double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); //Get Ask price ArraySetAsSeries(PriceInfo,true); //Sort the Price Array from the Current candle downwards int PriceData = CopyRates(_Symbol,_Period,0,3,PriceInfo); //Fill Array with Price Data if(PositionsTotal()==0) //No Open Positions NextBuyPrice = 638200.00; signal = CheckEntrySignal(); //Check Entry Signal CopyTime(_Symbol,_Period,0,1,currentTime); if(Ask <= NextBuyPrice) //if the Ask price is >= Next Buy Price if(signal == "buy" && signalTime != currentTime[0]) { trade.Buy(0.002,NULL,Ask,Ask-1200,Ask+1200,NULL); //Open a Buy Order signalTime = currentTime[0]; } }//End string CheckEntrySignal() { if(PriceInfo[1].close > PriceInfo[1].open) //Sell when candle is Bullish signal="sell"; if(PriceInfo[1].close < PriceInfo[1].open) //Buy when candle is Bearsih signal="buy"; return signal; //Return signal }//End CheckEntrySignal //+------------------------------------------------------------------+
You can try this
Nirav Patel:
You can try this
Thank You so Much Nirav.
I get it now .. :-)

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi,
Please help.
I've got my EA to place an Buy Order when the Ask Price hits a set price. But now it places multiple trades not just the one.
I need it to place only the one trade per candle.
I have tried
But if I do the above, the Buy Order only places the trade when new candle opens and not when the Ask price hits the set price.
what am I doing wrong?? My code below