-
Play videoPlease edit your post.
For large amounts of code, attach it Don't double post
- Why did you post your MT4 code in the Root / MT5 EA section instead of the MQL4 section?
- bool sell_condition_1 = Open[] < Close[] ;Your posted code is gibberish.
- ayman.maarouf: How to get last open order sell or buy then open a new order at same entry conditions and to close at oppositeIsn't what that code is trying to do? What do you do with the result? Nothing!int cnt=0;
for ( cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if( OrderType() == OP_BUY) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
unused = oldorderopenprice;
ticketnumber = oldticketnumber;
}
}} - learn
to code it, or pay (Freelance) someone to code it.
We're not going to code it for you.
We are willing to help you when you post your attempt (using SRC)
and the nature of your problem.

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
Can somebody help me with this code please
How to get last open order sell or buy then open a new order at same entry conditions and to close at opposite
// External variables
extern double LotSize = 1;
extern double StopLoss = 0;
extern double TakeProfit = 20;
extern double TrailingStopLimit = 0;
extern double TrailingStopStop = 0;
extern int MagicNumber = 1111111111111;
// Global variables
int LongTicket;
int ShortTicket;
double RealPoint;
// Init function
int init()
{
RealPoint = RealPipPoint(Symbol());
return(0);
}
// Start function
int start()
{
//Variables
// Long
OrderSelect(LongTicket,SELECT_BY_TICKET);
if(OrderCloseTime() != 0 || LongTicket == 0)
{
bool buy_condition_1 = Open[] > Close[] ;
bool buy_condition_2 = Open[] < Close[] ;
bool buy_condition_3 = Open[] < iCustom() ;
if( buy_condition_1 && buy_condition_2 && buy_condition_3 )
{
OrderSelect(ShortTicket,SELECT_BY_TICKET);
if(OrderCloseTime() == 0 && ShortTicket > 0)
{
bool Closed = OrderClose(ShortTicket,OrderLots(),Ask,0,Red);
}
LongTicket = OrderSend(Symbol(),OP_BUY,LotSize,Ask,0,0,0,"Buy Order",MagicNumber,0,Blue);
OrderSelect(LongTicket,SELECT_BY_TICKET);
double OpenPrice = OrderOpenPrice();
if(StopLoss > 0) double LongStopLoss = OpenPrice - (StopLoss * RealPoint);
if(TakeProfit > 0) double LongTakeProfit = OpenPrice + (TakeProfit * RealPoint);
if(LongStopLoss > 0 || LongTakeProfit > 0)
{
bool LongMod = OrderModify(LongTicket,OpenPrice,LongStopLoss, LongTakeProfit,0);
}
ShortTicket = 0;
}
double oldorderopenprice;
int oldticketnumber;
double unused = 0;
int ticketnumber = 0;
int cnt=0;
for ( cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if( OrderType() == OP_BUY) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
unused = oldorderopenprice;
ticketnumber = oldticketnumber;
}
}}
return (oldorderopenprice);
}
// Short
OrderSelect(ShortTicket,SELECT_BY_TICKET);
if(OrderCloseTime() != 0 || ShortTicket == 0)
{
bool sell_condition_1 = Open[] < Close[] ;
bool sell_condition_2 = Open[] > Close[] ;
bool sell_condition_3 = Open[] > iCustom() ;
if( sell_condition_1 && sell_condition_2 && sell_condition_3 )
{
OrderSelect(LongTicket,SELECT_BY_TICKET);
if(OrderCloseTime() == 0 && LongTicket > 0)
{
Closed = OrderClose(LongTicket,OrderLots(),Bid,0,Red);
}
ShortTicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,"Sell Order",MagicNumber,0,Red);
OrderSelect(ShortTicket,SELECT_BY_TICKET);
OpenPrice = OrderOpenPrice();
if(StopLoss > 0) double ShortStopLoss = OpenPrice + (StopLoss * RealPoint);
if(TakeProfit > 0) double ShortTakeProfit = OpenPrice - (TakeProfit * RealPoint);
if(ShortStopLoss > 0 || ShortTakeProfit > 0)
{
bool ShortMod = OrderModify(ShortTicket,OpenPrice,ShortStopLoss, ShortTakeProfit,0);
}
LongTicket = 0;
}
for ( cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if( OrderType() == OP_SELL) {
oldticketnumber = OrderTicket();
if (oldticketnumber > ticketnumber) {
oldorderopenprice = OrderOpenPrice();
unused = oldorderopenprice;
ticketnumber = oldticketnumber;
}
}
return (oldorderopenprice);
}
}
return (0);
}
// Pip Point Function
double RealPipPoint(string Currency)
{
int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
if(CalcDigits == 2 || CalcDigits == 3) double CalcPoint = 0.01;
else if(CalcDigits == 4 || CalcDigits == 5) CalcPoint = 0.0001;
return(CalcPoint);
}