A function to loop through open positions and make pairs of arrays of tickets then close each pair of array if greater than target profit

MQL4 Experts

Job finished

Execution time 6 minutes
Feedback from customer
very good!
Feedback from employee
Great customer! Thank you for the order!

Specification

This is for an MT4 EA.

I need a function to loop through all open positions and store them in arrays based on price levels.
Then from these arrays (i.e. @ price 1760 there are open orders and @ price 1770 there are open orders and so on).
I want to calculate the ongoing profit of pairs of 2 arrays (i.e. sell array i with buy array i+1     AND    buy array i with sell array i-1).
And if profit is greater than target, close orders of these pairs of arrays. Each array may contain more than 1 ticket and can go up to x tickets, and the function will close the arrays only if the pairs contain minimally an array in each level.
The function will loop through all the arrays crawling from initial price up and down.
An optional function can also close the pairs of arrays if the total tickets in these pairs are x (can be input).
Code is already written, but i currently have problem with :

void CalculateAndCloseOrderGroupsForBuyAndSell() {
    // Loop from the initial_index down to 1 (since i-1 sell for i=0 doesn't exist)
    for (int i = initial_index; i > 0; i--) {
        double totalProfit = 0.0;
        
        if (buyTicketCounts[i] > 0 && sellTicketCounts[i-1] > 0){
           // Calculate profit for all buy tickets at index i
           for (int j = 0; j < buyTicketCounts[i]; j++) {
               int ticket = buyTickets[i][j];
               totalProfit += ComputeProfitForOrder(ticket);
           }
   
           // Calculate profit for all sell tickets at index i-1
           for (int j = 0; j < sellTicketCounts[i - 1]; j++) {
               int ticket = sellTickets[i - 1][j];
               totalProfit += ComputeProfitForOrder(ticket);
           }
          }

        // If the combined profit meets or exceeds the target, close the tickets and remove them from arrays
        if (totalProfit >= profit_target) {
            // Close and remove buy tickets at index i
            for (int j = buyTicketCounts[i] - 1; j >= 0; j--) {
                CloseOrder(buyTickets[i][j]);
                // Shift tickets to remove the closed ticket from the array
                for (int k = j; k < buyTicketCounts[i] - 1; k++) {
                    buyTickets[i][k] = buyTickets[i][k + 1];
                }
                buyTicketCounts[i]--;
            }

            // Close and remove sell tickets at index i-1
            for (int j = sellTicketCounts[i - 1] - 1; j >= 0; j--) {
                CloseOrder(sellTickets[i - 1][j]);
                // Shift tickets to remove the closed ticket from the array
                for (int k = j; k < sellTicketCounts[i - 1] - 1; k++) {
                    sellTickets[i - 1][k] = sellTickets[i - 1][k + 1];
                }
                sellTicketCounts[i - 1]--;
            }

            Print("Closed and removed orders for buy zone ", i, " and sell zone ", i - 1, " with total profit: ", totalProfit);
        }
    }
}


it always gives me "out of array" error. I will give the whole set of code. the focus is to fix this part to overcome the "out of array" issue/ error.


Thank you.




Responded

1
Developer 1
Rating
(100)
Projects
125
23%
Arbitration
12
0% / 75%
Overdue
22
18%
Free
2
Developer 2
Rating
(72)
Projects
80
10%
Arbitration
35
9% / 54%
Overdue
6
8%
Free
3
Developer 3
Rating
(51)
Projects
89
52%
Arbitration
1
0% / 0%
Overdue
1
1%
Working
4
Developer 4
Rating
(23)
Projects
45
20%
Arbitration
24
29% / 46%
Overdue
12
27%
Free
5
Developer 5
Rating
(67)
Projects
97
35%
Arbitration
11
27% / 45%
Overdue
14
14%
Free
6
Developer 6
Rating
(535)
Projects
613
34%
Arbitration
32
41% / 47%
Overdue
9
1%
Busy
7
Developer 7
Rating
(6)
Projects
10
10%
Arbitration
8
0% / 88%
Overdue
1
10%
Free
8
Developer 8
Rating
(69)
Projects
146
34%
Arbitration
11
9% / 55%
Overdue
26
18%
Free
Published: 6 codes
9
Developer 9
Rating
(568)
Projects
641
41%
Arbitration
24
50% / 29%
Overdue
46
7%
Working
Similar orders
Just have a let down by previous coder. (Andrii) please dont apply for this one. Coder with low Metrix please dont apply : High Arbitrage/Low reviews/High Overdue I will just avoid This is a long-term Project You ll have to continue work on the source file done so far, there might be bug to fix and continue the work as needed. What be involve: Grid system Dashboard Indicaotor Addon Setting/Logic enhancement News
Experts mt5 30 - 50 USD
I need a programmer to create an MT5 robot, putting my strategy inside it, send me a message if you are interested! The robot will be based on averages making purchases and sales together
To develop EA algo on GBPUSD on MT5 Client will provide the necessary indicator which will plot Daily pivots on the chart. PFA screenshot attached for details of job work
Hello, my budget is 30$, I need MT5 EA send alert to telegram: 1. Send alert if any position volume by magic number more than: for example, 0.25 lot, send position symbol name and positions not all positions just the positions are more than 0.25 lot volume and positions trade comment and send Custom comment: I entered it manually in input menu. 2. Send alert if I have open positions by magic number in
Description de la stratégie de trading : Bot de trading ULTIMATE AI Smart Money Concept (SMC) Aperçu: J'ai besoin du robot de trading IA ultime, conçu pour mettre en œuvre une stratégie de trading Smart Money Concept (SMC) axée sur l'identification des configurations de trading à forte probabilité en fonction de la structure du marché, des blocs d'ordres et de l'évolution des prix. Ce robot vise à capitaliser sur le
I’m looking for a skilled MQL5 developer to build an MT5 Expert Advisor that mirrors inverse trades (Buy ↔ Sell) from a prop firm challenge account (demo) to a live hedge account . Core Requirements: Open and close opposite trades in real-time Dynamic lot sizing based on account balances (Objective: recover approx. $500 if the challenge account fails) Support for multiple symbols , including: XAUUSD, NAS100, BTCUSD
Hi, I’m looking for an experienced MQL5 or AI trading systems developer who can build a scalable, beginner-friendly forex trading network . The system should include: Fully automated trading logic (AI-enhanced or rule-based) MT5 (or MT4 if needed) compatibility A beginner dashboard with simplified controls A structure that supports onboarding of multiple traders (eventually multi-asset) Key modules like performance
Trading Strategy Description: ULTIMATE AI Smart Money Concept (SMC) Trading Bot Overview: i need The ULTIMATE AI trading bot that is designed to implement a Smart Money Concept (SMC) trading strategy that focuses on identifying high-probability trading setups based on market structure, order blocks, and price action. The bot aims to capitalize on institutional trading behavior by analyzing price movements and
I need someone who can provide metatrader4/5 restful api. And I want restful and websockets. we need to use metatrader api in our app for statistics and trade copying. Apply only if you have the necessary qualifications and experience for this project
I need a highly disciplined, low-risk EA for MT4/MT5 that trades only when 100% strategy conditions are met. It must include multi-timeframe trend logic, support/resistance rejection, BOS/CHoCH detection from real swing levels, and a breakout strategy with trailing SL. EA should scan all major pairs (from one chart), trade only during 07:00–16:00 GMT, and skip trades 2 hours before major news. Max 1 trade per pair

Project information

Budget
30 - 45 USD
VAT (19%): 5.7 - 8.55 USD
Total: 35.7 - 53.55 USD
For the developer
27 - 40.5 USD