OrderSelect loop, find the open order, Get the OrderOpenPrice, open another.
Thank you for your reply,WHRoeder.
Maybe you have a simpler version of this,because its very "messy"(no offense intended).
This is what I wrote,but it doesn't seem to open orders,please advise.
Only the first pending order is placed, but it doesnt repeat..
void Loop() { for(int s=OrdersTotal()-1;s>=0;s--) { if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_SELL && InitSwitch == true) { InitPrice = OrderOpenPrice(); InitSwitch = false; sell_loop = true; OrderSend(Symbol(),OP_BUYSTOP,0.20,Ask+20*Poin,3,0,0,NULL,9,0,Green); } } for(int b=OrdersTotal()-1;b>=0;b--) { if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_BUY && InitSwitch == true) { InitPrice = OrderOpenPrice(); InitSwitch = false; buy_loop = true; OrderSend(Symbol(),OP_SELLSTOP,0.20,Bid-20*Poin,3,0,0,NULL,9,0,Red); } } for(int spo=OrdersTotal()-1;spo>=0;spo--) { if(OrderSelect(spo,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_SELLSTOP) { SPOTarget = OrderOpenPrice(); buy_loop_target = InitPrice-SPOTarget; double CurrentBIDe = MarketInfo(Symbol(),MODE_BID); if(CurrentBIDe<SPOTarget && buy_loop==true) { buy_loop = false; sell_loop = true; OrderSend(Symbol(),OP_BUYSTOP,0.20,Ask+buy_loop_target,3,0,0,NULL,9,0,Green); } } } for(int bpo=OrdersTotal()-1;bpo>=0;bpo--) { if(OrderSelect(bpo,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_BUYSTOP) { BPOTarget = OrderOpenPrice(); sell_loop_target = BPOTarget-InitPrice; double CurrentASKe = MarketInfo(Symbol(),MODE_ASK); if(CurrentASKe>BPOTarget && sell_loop==true) { sell_loop = false; buy_loop = true; OrderSend(Symbol(),OP_SELLSTOP,0.20,Bid-sell_loop_target,3,0,0,NULL,9,0,Green); } } } }
This is what I wrote,but it doesn't seem to open orders,please advise.
Only the first pending order is placed, but it doesnt repeat..
why do you wanna open new trades before you have checked all your open trades ??
use one loop to check all open trades of your EA and you be able to know if you have to open new one
How do I stop this broken loop of opening buystops and sellstops without end,and only have 1 sellstop or 1 buystop until its hit and the oposite is placed..Please help.
void orderloop() { for(int s=OrdersTotal()-1;s>=0;s--) { if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_SELL && InitSwitch == true) { InitSwitch = false; sell_loop = true; OrderSend(Symbol(),OP_BUYSTOP,0.20,Ask+20*Poin,3,0,0,NULL,9,0,Green); } else if(OrderType()==OP_BUY && sell_loop == true) { sell_loop = false; buy_loop = true; OrderSend(Symbol(),OP_SELLSTOP,0.20,Bid-20*Poin,3,0,0,NULL,9,0,Red); } } for(int b=OrdersTotal()-1;b>=0;b--) { if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==9) if(OrderSymbol()==Symbol()) if(OrderType()==OP_BUY && InitSwitch == true) { InitSwitch = false; buy_loop = true; OrderSend(Symbol(),OP_SELLSTOP,0.20,Bid-20*Poin,3,0,0,NULL,9,0,Red); } else if(OrderType()==OP_SELL && buy_loop == true) { buy_loop = false; sell_loop = true; OrderSend(Symbol(),OP_BUYSTOP,0.20,Ask+20*Poin,3,0,0,NULL,9,0,Green); } } }
Can someone help me or not? Give some examples maybe?

- 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,can you please explain to me how I can do the following:
When a pending order is hit(turned into a market order),how to place another pending order in a fixed pip range away from it?
for an example,if a buystop is hit,place a sellstop order 20 pips below it,when the sellstop is hit place a buystop 20 pips above it,and so on.
I've been struggling with it the whole day,if you can help,it would be of great help,thank you.