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
38
8% / 58%
Overdue
6
8%
Free
3
Developer 3
Rating
(53)
Projects
91
52%
Arbitration
2
0% / 50%
Overdue
1
1%
Free
4
Developer 4
Rating
(23)
Projects
45
20%
Arbitration
25
28% / 48%
Overdue
12
27%
Free
5
Developer 5
Rating
(67)
Projects
97
35%
Arbitration
11
27% / 45%
Overdue
13
13%
Free
6
Developer 6
Rating
(610)
Projects
707
33%
Arbitration
45
44% / 42%
Overdue
13
2%
Loaded
7
Developer 7
Rating
(6)
Projects
10
10%
Arbitration
9
0% / 89%
Overdue
1
10%
Free
8
Developer 8
Rating
(69)
Projects
146
34%
Arbitration
13
8% / 62%
Overdue
26
18%
Free
Published: 6 codes
9
Developer 9
Rating
(568)
Projects
641
41%
Arbitration
25
48% / 36%
Overdue
46
7%
Working
Similar orders
I want to create a EA based on an existing EA. I want to create a COPY of same EA. This is a Grid based EA and do averaging when market goes against it. While doing Averaging it keeps on taking trades and booking profits
Make me an MQL5 EA for MT5 Pair: XAUUSD Timeframe: M15 Strategy: Buy when EMA 50 crosses above EMA 200 AND RSI 14 is above 50. Sell when EMA 50 crosses below EMA 200 AND RSI 14 is below 50. Risk Management: SL = $2, TP = $4. Auto calculate lot size with 4% risk from $50 account. Max 1 trade at a time. Trade only on M15
User looking For Robot 100 - 3500 USD
i am looking for an profitable ea which i can use on any account type and the ea grow monthly 5% minimum must be well following risk management auto everything and make sure you can give 1week trail you must provide 10 years back test reports on different testing algorithm's read again if you dont have anything to fulfill my needs do what you are doing on your way
Hi everyone, I am looking for an experienced MQL5 developer who has a proven and well-thought-out recovery strategy for an Expert Advisor. The goal is not to build a typical martingale or grid EA. I am looking for someone who has a solid recovery concept that can intelligently manage and recover losing trades after a predefined adverse price movement (for example, after X pips ). Project Requirements Works on both
Full and specific details will be if selected for the task. This is the general description of the EA Create an expert advisor with two options. Either send email to buy or sell... or make a trade. Create an expert advisor which sends email for a buy alert or make a trade when all three of the following criteria are met: * CCI goes more than 100 ( or more than any other set value) * MACD shows green bar or
Akram boushaba 30 - 500 USD
مرحبا كيف حالكم انا اكرم مهتم بالتداول احاول ان اصمم برنامج روبوت قادر على التداول من تلقاء نفسه من يمكنه ان يساعدني او يعلمني كيف استطيع فهل ذلك وسأكون ممتناً له وشكرا لكم
I am in need of a profitable scalping EA for gold. No grid or martingale strategy pls. If you have one fully developed and working, pls reach out. You should be able to provide trial version
I need some modification on exiting EA. its open pending order upside and down side, but when close order any side than other side pending trad not come closer running price. so it should be delete one pending order from other last side & open one order running price side
The Terminator 40 - 150 USD
The Terminator EA The Terminator EA is a smart Forex trading robot designed to trade with discipline, consistency, and strong risk management. Its main purpose is to identify high-probability trading opportunities while protecting the trading account from unnecessary risk. The robot should only enter trades when several conditions agree. It should use strategies such as trend analysis, support and resistance, market
Romeo Tlotliso 30 - 2000 USD
Romeo is me.i am a trader using robot to make my trading journey way easy. therefore it can correct me when am wrong.Building a robot is not easy because some of them can be wrong and only minimum of them can be good

Project information

Budget
30 - 45 USD