Allow only one order at one time

Aug 31, 2019 at 02:59
1,068 Просмотры
14 Replies
Участник с Aug 13, 2019   5 комментариев
Aug 31, 2019 at 02:59
Is it possible in either or both of MT4 and MT5 for an EA to recognise that an order is open in terminal (toolbox MT5)?

What I am hoping to achieve is this. EA is on 8 charts if an order is opened on one chart I do not want the EAs on the other seven charts opening new orders until the current open order is closed. Is this achievable in an EA?
Участник с Aug 13, 2019   5 комментариев
Aug 31, 2019 at 04:30
Found answer, Answer is yes
Участник с Jan 05, 2016   1189 комментариев
Sep 01, 2019 at 20:40

here you go....


int OrdersTotal();

Check out the API and DOCS on the MT4 website. They're very helpful and there are numerous examples.
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Aug 13, 2019   5 комментариев
Sep 02, 2019 at 07:10
I was really looking for answer with MT5, a bit different to MT4
Участник с Jan 05, 2016   1189 комментариев
Sep 02, 2019 at 07:28
Keltrem posted:
I was really looking for answer with MT5, a bit different to MT4

Well now... At least I know you didn't even bother to try.

It's the same for BOTH.

https://www.mql5.com/en/docs/trading/orderstotal
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Aug 13, 2019   5 комментариев
Sep 02, 2019 at 21:18
I had read the link you provided previously. As MT5 addresses positions, deals and orders the terminology is confusing to me . Does int OrdersTotal refer to a single chart say eurusd with one or more posiitons each posiiton containing a number of orders, that is int OrdersTotal calculates/limits the total number of orders on that currency pair? If so that is not what I want.

In Toolbox I want only one position (which may contain one or more orders) for a single currency pair open at one time during the chart timeframe H1, H4 etc. No other cuurency pair positions can be opened during that timeframe.

It is my understanding that the user needs to have a defined list of pairs that cannot open positions concurrently. Is that correct?
Участник с Jan 05, 2016   1189 комментариев
Sep 02, 2019 at 21:45
Keltrem posted:
I had read the link you provided previously. As MT5 addresses positions, deals and orders the terminology is confusing to me . Does int OrdersTotal refer to a single chart say eurusd with one or more posiitons each posiiton containing a number of orders, that is int OrdersTotal calculates/limits the total number of orders on that currency pair? If so that is not what I want.

In Toolbox I want only one position (which may contain one or more orders) for a single currency pair open at one time during the chart timeframe H1, H4 etc. No other cuurency pair positions can be opened during that timeframe.

It is my understanding that the user needs to have a defined list of pairs that cannot open positions concurrently. Is that correct?


OrdersTotal() returns the total number of orders in your basket.



Returns the number of current orders.

int OrdersTotal();

Return Value

Value of the int type.


if the orders total is greater than 0, the you have orders in your baskets.

Then you need to query your basket to determine the specific information to each of those tickets.


  int basket=OrdersTotal(); //this is where your orders total value comes from, follow it up with a loop
  
  for(int x=0;x<basket;x++)
    {
     if(OrderSelect(x,SELECT_BY_POS)==false) continue;
     //Do some stuff here
     //You need to check for OrderSymbol() in this loop.
      
    }

The code I provided as an example could be written several different ways, but a simple index loop as shown should work just fine for your intended use based upon the information given.

If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Jan 05, 2016   1189 комментариев
Sep 02, 2019 at 21:54

It is my understanding that the user needs to have a defined list of pairs that cannot open positions concurrently. Is that correct?

That is entirely up to how you want to do it.

In my own systems, I will typically just have an input of currency pair symbol values that I store in an array, then I validate the pairs from the array.

The input of these currency pairs typically are loaded from a simple text configuration file or user input from EA or Indicator.
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Aug 13, 2019   5 комментариев
Sep 03, 2019 at 06:40
Hi Professional4X,

Many thanks for your help, I was positive it could be done biy my developer was saying it is very difficult to do. My background years ago was fortran coding not quite the query languages of today. Your assistance is greatly appreciated particularly taking the time to write an example of the code that may suit.

Again thanks you have been most helpful
Участник с Jan 05, 2016   1189 комментариев
Sep 03, 2019 at 07:06
Keltrem posted:
Hi Professional4X,

Many thanks for your help, I was positive it could be done biy my developer was saying it is very difficult to do. My background years ago was fortran coding not quite the query languages of today. Your assistance is greatly appreciated particularly taking the time to write an example of the code that may suit.

Again thanks you have been most helpful

You're welcome.
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Oct 16, 2019   1 комментариев
Oct 16, 2019 at 07:14
Keltrem posted:
Is it possible in either or both of MT4 and MT5 for an EA to recognise that an order is open in terminal (toolbox MT5)?

What I am hoping to achieve is this. EA is on 8 charts if an order is opened on one chart I do not want the EAs on the other seven charts opening new orders until the current open order is closed. Is this achievable in an EA?
Участник с Jan 05, 2016   1189 комментариев
Oct 16, 2019 at 12:53
zhangshapzen posted:
Keltrem posted:
Is it possible in either or both of MT4 and MT5 for an EA to recognise that an order is open in terminal (toolbox MT5)?

What I am hoping to achieve is this. EA is on 8 charts if an order is opened on one chart I do not want the EAs on the other seven charts opening new orders until the current open order is closed. Is this achievable in an EA?

I already provided the answer to this question. Please read the first page of this thread. Thank you,
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Jan 05, 2016   1189 комментариев
Oct 16, 2019 at 12:53
also see Metatrader Magic Number.
If it looks too good to be true, it's probably a scam! Let the buyer beware.
Участник с Feb 19, 2019   1 комментариев
Oct 22, 2019 at 05:53
Insert the following in the general instructions before the OnInit function

int MagicNumber = any common number (for all your charts);
int MaxOpenTrades = 1;

hope this will help

Regards,
Girish
Consistent monthly withdrawal
Участник с Oct 26, 2022   1 комментариев
Dec 23, 2022 at 13:17
Hi,
Im also wanting exactly this...
What I am hoping to achieve is this. EA is on 8 charts if an order is opened on one chart I do not want the EAs on the other seven charts opening new orders until the current open order is closed. Is this achievable in an EA?

Im not a coder, if anyone could do this for me im quiet happy to pay for this
You must be connected to Myfxbook in order to leave a comment
*Коммерческое использование и спам не допускаются и могут привести к аннулированию аккаунта.
Совет: Размещенные изображения или ссылки на Youtube автоматически вставляются в ваше сообщение!
Совет: введите знак @ для автоматического заполнения имени пользователя, участвующего в этом обсуждении.