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
(621)
Projects
724
34%
Arbitration
46
48% / 41%
Overdue
14
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 a bot to make the same trade when market opens everyday on Forex. I want the bot to use the same simple technique for every day for the currency pair EUR/USD. I have a video reference for the simple technique I want the bot to carry out
مرفق — مستشار خبير يعمل وتم اختباره مسبقا يعمل على ميتاتريدر 5 للذهب (XAUUSD) يتداول عبر وسيط Equiti. هذا نظام وظيفي، وليس مفهوما مبكرا. أحتاجها ممتدة، لا استبدال. Ali_XAUUSD_SwingClose_H4D1.mq5 البنية الحالية (يرجى فهم ذلك قبل البدء): يحدد النظام الاتجاه العام على الإطار الزمني H4 من خلال تصنيف قوة إغلاق الشمعة (سواء كان الإغلاق بالقرب من أعلى أو أدنى مستوى جسم الشمعة/النطاق)، ثم يبحث في إطار M15 عن "شمعة مرجعية"
Need v22 bot 100+ USD
*V22 Investor account latest Setting Tester* *Price 600$* *Share with friends and Traders💸* Account no : 474461283 Password : V22@scalper Server : Exness-MT5Trial15 I need exactly the same bot. Please log in and check the bot yourself to see exactly how it works, and then create the same bot for me
MT5 EA Audit, Improvement, and Live Auto-Trading Requirements The EA/source code file is attached . Please carefully read and analyze the complete attached code before making any changes. This EA was developed based on my own trading strategy, rules, and indicators. I personally use these same rules for manual trading, and when I identify the required conditions manually on the MT5 chart, I open trades based on them
MT5 EA/Robot Development and Live-Execution Requirements I have developed and attached an MT5 Expert Advisor (EA/robot). The EA was developed with the help of ChatGPT and other AI platforms. However, although the code may compile and appear to work in backtesting, it does not always behave according to the strategy, rules, indicators, and trade-management logic that were originally designed. I do not want another
I need a professional AI-assisted Forex trading Expert Advisor (EA) for MetaTrader 5. The EA should not be based on a simple single indicator strategy. I want a robust multi-factor trading system that can analyze market conditions, trend, momentum, volatility, price action and risk before entering a trade. Requirements: Forex trading on MT5 Automated analysis and trade execution Dynamic entry and exit decisions Stop
Create a fully automated MetaTrader 5 (MT5) Expert Advisor (EA) in MQL5 based on the following exact trading strategy. STRATEGY NAME: Previous Day High/Low Daily Breakout Strategy INSTRUMENTS: 1. XAUUSD — fixed lot size: 0.01 2. EURUSD — fixed lot size: 0.10 TIMEZONE: All strategy times must be calculated in Indian Standard Time (IST / UTC+5:30). The broker's server time may be different, so the EA must correctly
OVERVIEW: I am looking for an experienced MQL developer to build a proprietary Expert Advisor (EA) specifically optimized to PASS evaluation challenges on modern prop firms (specifically targeting The 5%ers execution rules). The EA must rely on momentum and volume expansions, completely avoiding toxic strategies such as Grid, Martingale, or averaging down. Every trade must protect the account's daily drawdown
Hello here, I need someone who can work on pinescript and also with Renko charts. My entries for my strategy would be based on stop orders Kindly let me know if you can work on this for me and i will send necessary file and quote in the chat
Trade XAUUSD only Support MT5 Use Buy Stop and Sell Stop pending orders around a configurable breakout range. When the market breaks the range, activate the corresponding trade. Automatically place Stop Loss and Take Profit immediately with every order. Automatically cancel the opposite pending order after one side is triggered. No Martingale No Grid No averaging down No loss recovery system No unlimited position

Project information

Budget
30 - 45 USD