micoul81: i would like to divide the Order Lots (Praticl close)when the Profit reaches certain level but the problem that it continues to divide , need help to know how to break the loop and don't repeat itself
Play videoPlease edit your post.
For large amounts of code, attach it.
- You can't use OrderLots()/2 because that is not a multiple of LotStep, and you can't close or have remaining less than MinLot. See my code
- You are only checking if price may trigger a partial close. You aren't checking if you have already done it.
- Set a flag in persistent storage (files, global variables w/ flush)
- I move SL to BE+1 before the partial close. That way I know that I already did it.
- Open two orders.
Sorry for number 1
2 and 3 still complicated for me
What's the meaning of BE+1
can't handle it
Q: What's the meaning of BE+1 ?
A: Breakeven + 1
thanks deysmacro
it continue to divide lots
void PartialClose() { double Lotstep = MarketInfo(Symbol(), MODE_LOTSTEP); int x = 0; if(Lotstep == 0.01) x = 2; else x = 1; for(int i = OrdersTotal()-1; i >= 0; i--){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false)continue; if( Magic == OrderMagicNumber() ) { int Tk=100; double LOTS = OrderLots(); double Dividelot = NormalizeDouble(LOTS * 0.5, x); if(OrderType() == OP_BUY){ if(Bid > OrderOpenPrice()+(Tk*Point)){ OrderClose(OrderTicket(), Dividelot*2, Bid, 3, Red); } } if(OrderType() == OP_SELL){ if(Ask< OrderOpenPrice()-(Tk*Point)){ OrderClose(OrderTicket(),Dividelot*2, Ask, 3, Red); } } } } }
any help please to solve this problem , still can't handle it
You need to do something like this as suggested by WHRoeder
if(OrderType() == OP_BUY && OrderStopLoss()<OrderOpenPrice()){ if(Bid > OrderOpenPrice()+(Tk*Point)){ { OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss()+Point,OrderTakeProfit(),0,clrNONE ); OrderClose(OrderTicket(), Dividelot*2, Bid, 3, Red); } } }
Not tested and checking success of OrderModify and OrderClose required
GumRai:
You need to do something like this as suggested by WHRoeder
Not tested and checking siccess of OrderModify and OrderClose required
void PartialClose() { double Lotstep = MarketInfo(Symbol(), MODE_LOTSTEP); int x = 0; if(Lotstep == 0.01) x = 2; else x = 1; for(int i = OrdersTotal()-1; i >= 0; i--){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue; if( Magic == OrderMagicNumber() ) { int Tk=100; double LOTS = OrderLots(); double Dividelot = NormalizeDouble(LOTS * 0.5, x); if(OrderType() == OP_BUY&& OrderStopLoss()<OrderOpenPrice()){ if(Bid > OrderOpenPrice()+(Tk*Point)){ OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss()+50*Point,0,0,clrNONE ); OrderClose(OrderTicket(), Dividelot*2, Bid, 3, Red); } } if(OrderType() == OP_SELL&& OrderStopLoss()>OrderOpenPrice()){ if(Ask< OrderOpenPrice()-(Tk*Point)){ OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss()-50*Point,0,0,clrNONE ); OrderClose(OrderTicket(),Dividelot*2, Ask, 3, Red); } } } } }I follow your instruction but it still doesn't work
micoul81:
I follow your instruction but it still doesn't work
I follow your instruction but it still doesn't work
What do you mean "it still doesn't work"?
What doesn't work?
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 would like to divide the Order Lots (Praticl close)when the Profit reaches certain level but the problem that it continues to divide , need help to know how to break the loop and don't repeat itself
//-------------------------------------------------
void PartialClose()
{
for(int i = OrdersTotal()-1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false)continue;
if( Magic == OrderMagicNumber() )
{
int Tk=100;
if(OrderType() == OP_BUY){
if(Bid > OrderOpenPrice()+(Tk*Point)){
OrderClose(OrderTicket(), OrderLots()/2, Bid, 3, Red);
}
}
if(OrderType() == OP_SELL){
if(Ask< OrderOpenPrice()-(Tk*Point)){
OrderClose(OrderTicket(),OrderLots()/2, Ask, 3, Red);
}
}
}
}
}
i will appreciate your help