This can be bool bar_none_order = ( LimitBar && LastOrderBar != Bars ) || ( !LimitBar );
simplified to bool bar_none_order = !LimitBar || LastOrderBar != Bars;
- Print out your variables and find out why.
LastOrderBar = Bars
better
LastOrderBar = Time[0]
Found it !
Here was right... the code i typed here was ok... but on my code, i forgot to store the position of new order
Then i fix it and change to eevviill suggestion and works fine. Ah... and make the WHRoeder change suggestion too:
input bool LimitBar=true; // Limitar 1 ordem por vela? input int MaxOrders = 2; datetime LastOrderBar; // Store the last candle with opened order void OnTick(){ //... code above, not important //... MySignalPoint --> Is the point i allow the buy/swll //... Not here because is too large and is not on the scope of this thread // If LimitBar is TRUE, check if last order was in the current bar // If LimitBar is FALSE, set true to bar_none_order to allow more orders on same bar bool bar_none_order = !LimitBar || LastOrderBar != Time[0]; // If MaxOrders = 0, no_max_orders must be defined as TRUE, to not limit number of orders // If MaxOrders > 0, then check if opened orders of current the asset is smaller than MaxOrders, and if smaller, // set no_max_orders too, because need to allow new orders till reach the limit. bool no_max_orders = MaxOrders == 0 ||( CountOpenOrders() < MaxOrders ); // Here i check if all conditions are true to allow opening orders if( bar_none_order && no_max_orders && MySignalPoint){ Neworder(cmd); // BUY/SELL LastOrderBar = Time[0]; // Here i store the last bar that has an order opened } } int CountOpenOrders() { int count=0; for( int i=OrdersTotal()-1; i>=0; i--) { if( OrderSelect( i, SELECT_BY_POS ) ) { if( OrderSymbol() == Symbol() && OrderMagicNumber() == MyMagicNumber ){ count++; } } } return count; }

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 need to limit number of opened orders in an asset AND limit one order per candle too.
See my code... it's allowing more than one orders per candle. I fixed it to allow 2 orders, but only one per candle: