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
709
33%
Arbitration
45
47% / 42%
Overdue
14
2%
Working
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
Spärtã Ackah 50+ USD
I go by the name Spärtã Ackah, and this is my first time trying this trading, and I am also a beginner so sometimes I will need guide lines, and most atimes I feel very difficult to withdraw the money
Master mind 30+ USD
Start ↓ Detect Trend (H4) ↓ Confirm Structure (H1) ↓ Wait for Pullback ↓ Check Indicators ↓ Calculate Confidence Score ↓ Score ≥ 80? ├── No → Wait └── Yes ↓ Calculate Lot Size ↓ Place Order ↓ Set Stop Loss ↓ Set Take Profit ↓ Manage Trade ↓ Move to Break-even ↓ Trail Stop ↓ Close Trade. IF Price > EMA200 (H4) AND EMA50 > EMA200 (H4) AND ADX > 25 AND RSI between 55 and 70 AND MACD Main > Signal AND Bullish engulfing
PROJECT: Gold (XAUUSD) Scalping Expert Advisor – M1 Timeframe OVERVIEW This EA is designed as a "sniper" scalper for Gold on the M1 chart. It does not enter trades randomly — it waits for a confirmed entry signal before firing, similar to a sniper waiting for the perfect shot rather than a random shooter. ENTRY LOGIC - The EA must wait for a confirmation signal before opening a trade (do not enter on the first sign
Do you have a bot that yoi think it makes real income ' i will buy it after testing i want to test it first you send me demo version or i give you my demo account both ways works.testing is for free and i don't pay for that . please don't semd me videos or files of you testing the bot already i will not accept another other method of testing
Do you have HFT bot that yoi rhink it makes real money' i will buy it after testing i want to test it first you send me demo version or i give you my demo account both ways works.testing is for free and i don't pay for that . please don't semd me videos or files of you testing the bot already i will not accept another other method of testing
A robot 50+ USD
HIGH-FREQUENCY M5/M15 CONCURRENT ENTRY SNIPER import time class HighFrequencySniper: def __init__(self): self.target_profit = 25.00 # Targeted Delta Move self.max_execution_time = 3600 # 1 Hour Sandbox (Seconds) self.lot_allocation = "CALIBRATED_TO_RISK" def execute_hft_scan(self, current_price, m5_rsi, m15_order_block): print(f"[SCANNING] Current Kernel Metric: ${current_price:.2f
# HIGH-FREQUENCY M5/M15 CONCURRENT ENTRY SNIPER import time class HighFrequencySniper: def __init__(self): self.target_profit = 25.00 # Targeted Delta Move self.max_execution_time = 3600 # 1 Hour Sandbox (Seconds) self.lot_allocation = "CALIBRATED_TO_RISK" def execute_hft_scan(self, current_price, m5_rsi, m15_order_block): print(f"[SCANNING] Current Kernel Metric: ${current_price:.2f}")
I need a trading bot, please i need this project urgently and when messaing me kindly send me samples of past works and dont forget i need the project to be done as soon as possible
Hello. I am looking to buy an profitable MT5 EA that can generate monhtly profits of at least 5%-10%. It is important that the EA has a smooth equity curve - meaning that it doesn't end months in a loss and that it is able to sustain long periods of profitable days/months. The EA can be a grid, scalping or any other strategy. Preferably to trade GOLD or US500 You should be able to send an .ex5 file for testing on a
*Need an MQL5 EA for MT5 to trade gold and forex automatically. Must include Stop Loss, Take Profit, and basic risk management. Budget is $30 to $50. Looking for clean, stable code that works on VPS.*

Project information

Budget
30 - 45 USD