- How to start with MQL5
- Trading simulators!
- MT4 New Bar in indicator
Make your modules self contained and give each one an the equivalent of an OnTick event handler, and then loop through all the modules calling each of them in turn from the EA's OnTick event. That is standard OOP event handling 101.
Make your modules self contained and give each one an the equivalent of an OnTick event handler, and then loop through all the modules calling each of them in turn from the EA's OnTick event. That is standard OOP event handling 101.
I have not been able to find specific information on the web about what you are telling me, which I appreciate.
Could you provide me with a related link?
Excuse the ignorance.

- www.mql5.com
There is nothing to find. You just do that. That is like someone telling you how to drive from A to B, and you're asking about how to start the car.
- MT4: Learn to code it.
MT5: Begin learning to code it.
If you don't learn MQL4/5, there is no common language for us to communicate. If we tell you what you need, you can't code it. If we give you the code, you don't know how to integrate it into your code.
-
Or pay (Freelance) someone to code it. Top of every page is the link Freelance.
Hiring to write script - General - MQL5 programming forum (2019)
We're not going to code it for you (although it could happen if you are lucky or the problem is interesting.) We are willing to help you when you post your attempt (using CODE button) and state the nature of your problem.
No free help (2017)
#include<Trade\Trade.mqh> CTrade trade; input double Lotes=0.01; input double TP=0.0001; //TakeProfit input double SL=0.0001; //StopLoss input bool BUL=false; input bool CCI=false; string senal, entrada; double Ask, Bid; void OnInit() { } void OnTick() { Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); senal=SenalIMA(); if(BUL==true){ entrada=EntradaBUL(); if(senal=="buy" && entrada=="buy") OpenBuy(); if(senal=="sell" && entrada=="sell") OpenSell(); } if(CCI==true){ entrada=EntradaCCI(); if(senal=="buy" && entrada=="buy") OpenBuy(); if(senal=="sell" && entrada=="sell") OpenSell(); } } string SenalIMA() { MqlRates PriceInfo[]; ArraySetAsSeries(PriceInfo,true); int PriceData =CopyRates(Symbol(),Period(),0,3,PriceInfo); senal=""; double myPriceArray[]; int AdaptiveMovingAverageDefinition = iAMA (_Symbol,_Period,9,2,30,0,PRICE_CLOSE); ArraySetAsSeries(myPriceArray,true); CopyBuffer(AdaptiveMovingAverageDefinition,0,0,3,myPriceArray); double AdaptiveMovingAverageValue=NormalizeDouble(myPriceArray[0],6); if (AdaptiveMovingAverageValue> PriceInfo[0].close) senal ="buy"; if (AdaptiveMovingAverageValue< PriceInfo[0].close) senal ="sell"; return senal; } string EntradaBUL() { entrada=""; static double BullsPowerValueOld; double myPriceArray[]; int BullsPowerDefinition =iBullsPower(_Symbol,_Period,13); ArraySetAsSeries(myPriceArray,true); CopyBuffer(BullsPowerDefinition,0,0,3,myPriceArray); double BullsPowerValue=(myPriceArray[0]); if ((BullsPowerValue>0)&&(BullsPowerValueOld<0)) {entrada="buy";} BullsPowerValueOld=BullsPowerValue; return entrada; } string EntradaCCI() { entrada=""; double myPriceArray[]; int ICCIDefinition = iCCI (_Symbol,_Period,14,PRICE_TYPICAL); ArraySetAsSeries(myPriceArray,true); CopyBuffer(ICCIDefinition,0,0,3,myPriceArray); double ICCIVal=(myPriceArray[0]); if (ICCIVal>100) entrada="sell"; if (ICCIVal<-100) entrada="buy"; return entrada; } void OpenBuy() {trade.Buy(Lotes,NULL,Ask,Ask-SL,Ask+SL,NULL);} void OpenSell() {trade.Sell(Lotes,NULL,Bid,Bid+SL,Bid-SL,NULL);}

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use