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 employee
Great customer! Thank you for the order!
Feedback from customer
very good!

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
(634)
Projects
743
34%
Arbitration
49
53% / 39%
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
Title: Build a Semi-Automated MT5 Execution Assistant (MQL5) with Custom Panel Description: I am looking for an experienced MQL5 developer to build a semi-automated execution assistant for MetaTrader 5. I know this is a standard semi-automated panel with trade management. I am looking for a developer who has an existing GUI/panel library and standard trade management modules that can be adapted quickly. If you are
Trade copier EA 40+ USD
Develop a low-latency trade copier EA supporting MT4 and MT5 in all directions, across different brokers, with one master account copying to multiple follower accounts. Automatically adapt symbol names, price digits, contract sizes, and lot-size limits, with manual symbol mapping available. Support fixed lots, lot multipliers, and equity-proportional sizing. Synchronize market and pending orders, modifications
Hello, I’m looking for an experienced MQL5 developer to build a genuine ultra-fast HFT robot for MetaTrader 5, not a conventional scalping EA. The main instruments are EURUSD, BTCUSD, and XAUUSD. Requirements include fast execution, independent strategies, strict risk management, spread/slippage protection, separate optimization for each instrument, full MQ5 source code without a mandatory license lock, and detailed
Best trader robot 499 - 550 USD
Objective: Develop a robust and highly profitable Expert Advisor (EA) for MetaTrader based on a precise custom trading strategy to achieve a high win rate. ​ Instrument & Timeframe: XAUUSD (Gold), optimized for M5 / M15 timeframes. ​ Entry Strategy: Open Buy/Sell orders based on strict confirmation signals (e.g., Moving Average crossover combined with Price Action or RSI threshold). ​ Lot Size & Risk Management
Titolo: Cerco sviluppatore per EA su XAUUSD M1 per conto reale Cerco uno sviluppatore MQL5 per creare un Expert Advisor per MetaTrader 5 su XAUUSD M1, da utilizzare su conto reale con deposito iniziale di 100–200 €. La strategia prevede un Buy Stop a 1,00 sopra l’Ask e un Sell Stop a 1,00 sotto il Bid, entrambi con stop loss iniziale di 1,00 e senza take profit fisso. I pendenti devono restare fermi: quando uno viene
I am looking for a skilled MQL5 developer to create a robust, institutional-grade Expert Advisor for MT5, optimized for Gold (XAUUSD). The EA must comply strictly with prop firm rules. Key Requirements: Asset: XAUUSD (Gold) on MT5 Risk Management: Strict Stop-Loss & Take-Profit on every order. Absolute daily max loss, overall max drawdown guard, and percentage risk per trade. No High Risk: NO Martingale, Grid, or
// Meta Scalper EA - RSI + Breakout + Lot Management #property strict #include <Trade\Trade.mqh> CTrade trade; input int RSI_Period=14; input double RSI_Overbought=70; input double RSI_Oversold=30; input int Breakout_Period=20; input int ATR_Period=14; input double ATR_Multiplier_SL=1.5; input double ATR_Multiplier_TP=3.0; input bool UseRiskPercent=true; input double RiskPercent=2.0; input double FixedLot=0.1; input
I need a scalper that will work on the phone either android or iOS since I don’t have a laptop I need the scalper to automatically execute buy and sell trades when the entry conditions are satisfied include configurable lot size,stop loss,take profit,symbol,entry price,risk management and configurable maximum number of open trades please provide complete MQ5 source code,back testing results and installation support
I need an experienced MQL5 developer to build a High-Frequency Trading (HFT) EA for MT5 , designed to generate high returns from small capital through fast scalping. Important: Attached videos must be watched and analyzed before applying. The EA should follow the trading concepts demonstrated in the videos, with proper risk management and optimized execution. https://vt.tiktok.com/ZSgp9jsFM/
BUDGET: 100-120 USD - FIXED - includes source code .mq5 + .ex5 I will test demo first on 100$ demo account. If good, I pay. WHAT I WANT: 1. SIGNAL STRENGTH LOGIC: - WEAK SIGNAL = 1 position only. - STRONG SIGNAL = 2,3,4,5 positions (more positions because signal is strong). - Signal strength calculated by indicators. 2. ADAPTIVE TO CAPITAL: - Lot auto = Balance / 100 * 0.01. Example 100$ = 0.01 lot, 300$ = 0.03 lot

Project information

Budget
30 - 45 USD