Hello guys, I start by admiting I am a noob in coding, I only recently begun to understand some basics and I try to build my own EA for testings, gathering parts of code from all the library from many EAs out there
However I am stuck at this thing that I can't find anywhere any code: I want to maintain same number of open buy and sell orders at all times.
I was thinking that the logical solution would be :
open buy orders < open sell order
open new buy order (with specified parameters)
open buy orders > open sell orders
open new sell order (with specified
this will force this loop to stop exactly when number of buy and sell open orders would match.
however I have no idea how to code that ... if anyone would be so kind to help me with this thing, please.
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006
#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)
int GetAmount( const int Type )
int Amount = 0;
for (int i = OrdersTotal() - 1; i >= 0; i--)
Amount += OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == _Symbol);
bool Res = true;
const int AmountBuy = GetAmount(OP_BUY);
const int AmountSell = GetAmount(OP_SELL);
if (Res = (AmountBuy != AmountSell))
Res = ((AmountBuy > AmountSell) ? OrderSend(_Symbol, OP_SELL, 1, Bid, 100, 0, 0)
: OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0)) > 0;