I know how to code, I've taken a few college level C++ courses and have been using PHP/HTML/CSS for years... I'm just new to MQL4.
To simplify my question, here's what I'm looking for:
Once my EA reaches either a 20 pip profit or loss in any given day, it will not open any more trades... Once the EA reaches a 50 pip profit or loss for the week, it will not open any more trades.
So, let's say on Monday it successfully gets 20 pips - it will stop trading. Total for the week +20.
Tuesday, it loses 20 pips - it will stop trading. Total for the week 0.
Wednesday, it gains 20 pips - stops trading. Total for the week +20.
Thursday, it gains 20 pips - stops trading. Total for the week +40.
Friday, it only gains 10 because the weekly target of +50 is reached before the daily target of +20.
----------------------
That link looks incredibly helpful, I'll be sure to pick through there to expand my knowledge. Thanks!
scottyPIPin:
I'm pretty new to MQL4 and I'm starting to build a new EA that I want to stop trading if I hit a certain number of pips (either profit or loss) for the day and the week (ie. 20/day and 50/week). The way I wanted to go about it was to look at the account balance on Monday and just do the math
Well here you go. I never went to coder's school but that's the best I can come up with for now ;)
Anyways, its not tested. Maybe it'll give you some ideas.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bool is_Daily_Trading_Allowed=true; bool is_Weekly_Trading_Allowed=true; datetime Week_Open_Time; datetime Day_Open_Time; int Pip2Real; int My_Expert_Unique_Number=777; int Track_Last_Checked; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ void start(){//*************************************** //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double Ans; //~~~~~~~~~~~~~~~ if(Week_Open_Time!=iTime(Symbol(),PERIOD_W1,0)){ Week_Open_Time=iTime(Symbol(),PERIOD_W1,0); is_Weekly_Trading_Allowed=true; } //~~~~~~~~~~~~~~~ if(Day_Open_Time!=iTime(Symbol(),PERIOD_D1,0)){ Day_Open_Time =iTime(Symbol(),PERIOD_D1,0); is_Daily_Trading_Allowed=true; } //~~~~~~~~~~~~~~~ if(OrdersHistoryTotal()>Track_Last_Checked){ Track_Last_Checked=OrdersHistoryTotal(); for(int i=OrdersHistoryTotal()-1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderMagicNumber()==My_Expert_Unique_Number ){ if(OrderOpenTime()<Week_Open_Time){break;} if(StringSubstr(OrderSymbol(),0,6)=="USDJPY"){Pip2Real=100;}else{Pip2Real=10000;} if(OrderProfit()>0){Ans+=MathAbs(OrderOpenPrice()-OrderClosePrice())*Pip2Real;} if(OrderProfit()<0){Ans-=MathAbs(OrderOpenPrice()-OrderClosePrice())*Pip2Real;} if(MathAbs(Ans)>=20 && OrderOpenTime()>Day_Open_Time){is_Daily_Trading_Allowed=false;} if(MathAbs(Ans)>=50 && OrderOpenTime()>Week_Open_Time){is_Weekly_Trading_Allowed=false;break;} } } } //~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }//*************************************************** //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Well here you go. I never went to coder's school but that's the best I can come up with for now ;)
Anyways, its not tested. Maybe it'll give you some ideas.
Thank you so much, that will definitely give me something to work with.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi all,
I'm pretty new to MQL4 and I'm starting to build a new EA that I want to stop trading if I hit a certain number of pips (either profit or loss) for the day and the week (ie. 20/day and 50/week). The way I wanted to go about it was to look at the account balance on Monday and just do the math but haven't been able to find a way to do it. Is that possible?
If not, how would you recommend going about it?
Thanks!
Scott