if(Bid>=OrderOpenPrice()+(point*BreakEvenPips) &&What is the value of point*BreakEvenPips? You can't move stops (or pending prices) closer to the market than the minimum (MODE_STOPLEVEL * _Point.)
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
whroeder1:
What is the value of point*BreakEvenPips? You can't move stops (or pending prices) closer to the market than the minimum (MODE_STOPLEVEL * _Point.)
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
What is the value of point*BreakEvenPips? You can't move stops (or pending prices) closer to the market than the minimum (MODE_STOPLEVEL * _Point.)
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
Hi whroeder1, thanks for reply.
It seems the minimum distance between stop and price is not the problem .
I send complete code ,
note there is not any strategy and I'm just trying to write a riskfree function.
input double LOT=0.1; input int TakeProfit=22; input int StopLoss=15; int BreakEvenPips=7; double point; bool modified; int err; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- point=Point; if((Digits==3) || (Digits==5)) { point*=10; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- // if(OrdersTotal()==0) { int ticket=OrderSend(Symbol(),OP_BUY,LOT,Ask,3,Bid-(StopLoss*point),Bid+(TakeProfit*point),"My order",0,0,clrGreen); if(ticket<0) { Print("OrderSend failed with error #",GetLastError()); } else { Print("************************************************ Order Placed Buy Type #1 ************************************************"); } } RiskFree(); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void RiskFree() { bool result; for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_BUY) { if(Bid>=OrderOpenPrice()+(point*BreakEvenPips) && OrderStopLoss()<OrderOpenPrice() ) { result=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); if(result) { Alert("RISK FREE DONE ",OrderSymbol(),"Ticket #",OrderTicket()); Print("************************************************** RISK FREE DONE ",OrderSymbol(),"Ticket #",OrderTicket()," **************************************************"); } if(!result) { err=GetLastError(); Alert("RISK FREE FAILED ",OrderSymbol()," ticket no ",OrderTicket()," failed with error (",err); Print("************************************************** RISK FREE FAILED ",OrderSymbol()," ticket no ",OrderTicket()," failed with error (",err); } } } if(OrderType()==OP_SELL) { if(Ask<=OrderOpenPrice() -(point*BreakEvenPips) && (OrderStopLoss()>OrderOpenPrice() || OrderStopLoss()==0)) { result=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); if(result) Alert("RISK FREE DONE ",OrderSymbol(),"Ticket #",OrderTicket()); Print("************************************************** RISK FREE DONE ",OrderSymbol(),"Ticket #",OrderTicket()," **************************************************"); if(!result) { err=GetLastError(); Alert("RISK FREE FAILED ",OrderSymbol()," ticket no ",OrderTicket()," failed with error (",err); Print("************************************************** RISK FREE FAILED ",OrderSymbol()," ticket no ",OrderTicket()," failed with error (",err); } } } } } }
if(OrdersTotal()==0){ for(int i=OrdersTotal()-1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
Using OrdersTotal directly and/or no Magic number filtering on your OrderSelect loop means your code is incompatible with every EA (including itself on other charts and manual trading.)
Symbol Doesn't equal Ordersymbol when another currency is added to another seperate chart . - MQL4 and MetaTrader 4 - MQL4 programming forum
MagicNumber: "Magic" Identifier of the Order - MQL4 Articles- Use the debugger or print out your variables, including _LastError and prices and find out why.
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
I wrote a function for set SL equal to OrderOpenPrice.
It is working but in strategy tester Journal I see many errors befor and even after this action .
would you please tell me whats wrong?