What volume of this - NormalizeDouble((Range/2),0)?
sorry, the range is 10 -15 depending on what I set it at....its an extern variable
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
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
I want to make sure that there will always be no less than 6 open buy stops and no less than 6 open sell stops...
here
is what I did...
//+-------------------------------------------------------+
//| count buy stop |
//+-------------------------------------------------------+
int countbuystop()
{
int res=0;
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUYSTOP) res++;
}
return(res);
}
//+-------------------------------------------------------+
//| count sell stop |
//+-------------------------------------------------------+
int countsellstop()
{
int res=0;
for(int cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELLSTOP) res++;
}
return(res);
}
then to control the orders i put in the start() function :
if(countbuystop()<6)
{
Temp=MarketInfo(Pair, MODE_BID);
for (Cnt=1;Cnt<=NormalizeDouble((Range/2),0);Cnt++)
{
OrdSend(Pair, OP_BUYSTOP, Lot, Temp+(6*Interval*point()), 0, Temp+(6*Interval*point())-SL*point(),0, CommOrder, Cnt*Magic, 0, Blue);
OrdSend(Pair, OP_SELLSTOP, Lot, Temp-(1*Interval*point()), 0, Temp-(1*Interval*point())+SL*point(),0, CommOrder, (Cnt*Magic)+1, 0, Red);
Comment(Temp+"Cnt : "+Cnt+" interval: "+Interval);
}
}
if(countsellstop()<6)
{
Temp=MarketInfo(Pair, MODE_BID);
for (Cnt=1;Cnt<=NormalizeDouble((Range/2),0);Cnt++)
{
OrdSend(Pair, OP_BUYSTOP, Lot, Temp+(1*Interval*point()), 0, Temp+(1*Interval*point())-SL*point(),0, CommOrder, Cnt*Magic, 0, Blue);
OrdSend(Pair, OP_SELLSTOP, Lot, Temp-(6*Interval*point()), 0, Temp-(6*Interval*point())+SL*point(),0, CommOrder, (Cnt*Magic)+1, 0, Red);
Comment(Temp+"Cnt : "+Cnt+" interval: "+Interval);
}
}
but when i run the EA this code works for the 1st 2 times...it opens buy and sell stop orders to replace the 1st 2 trades that were triggered but then Stops working...When price moves up and triggers buystops into buy orders it no longer replaces the buystops and sell stops like it did the 1st 2 times...
Is it because the sellstops become greater than 6 and I stipulate if(countsellstop<6)??? if so how do i get around this?
I want a minimum 6 pending buystops and minimum 6 pending sell stops...anyone know how I can do this?