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
(601)
Projects
695
33%
Arbitration
43
47% / 44%
Overdue
12
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
hello coders , below is 60 percent of logic of the strategy. firstly Execution must work in real time with high accuracy. Code should be clear ,maybe modular . 2. Trailing line of Strategy A , BuyExecution_A Line ,SellExecution_A Line will be shown to watch "live" on Chart. if you have experience of phyton is also good STRATEGY A: At Start Open a Buy and a sell position at the same time and price. The coming
I am looking for an experienced developer to create a custom MT4 Expert Advisor (EA) / trading robot. Requirements: Fully automated trading system for MetaTrader 4 Clear entry and exit strategy (can be based on indicators, price action, or a custom logic) Risk management features (lot size control, stop loss, take profit, trailing stop) Ability to run on multiple currency pairs Option to adjust settings (risk %
I need a custom MT4 Expert Advisor based on H4 breakout with martingale and equity protection. Platform: MetaTrader 4 / MQL4 Main symbol: XAUUSD Must work on 5-digit / 3-digit brokers All settings must be adjustable from EA inputs Strategy Logic: EA must detect the previous H4 candle high and low. Automatically open BUY when price breaks above the previous H4 high. Automatically open SELL when price breaks below the
Hello, I am looking for an experienced MQL5 developer who can build a reliable choppy/range market filter for my existing EA. My EA works well in trending markets , but it takes too many losing trades during sideways, choppy, and ranging markets . I want an indicator/filter that can detect bad market conditions and pause or block EA entries during those periods. Main Requirement: Detect Trend / Range / Choppy market
Trend Filter BUY EMA 9 > EMA 21 > EMA 50 EMA 50 slope must be pointing upward. Price must remain above EMA 50. SELL EMA 9 < EMA 21 < EMA 50 EMA 50 slope must be pointing downward. Price must remain below EMA 50. Slope sensitivity should be adjustable in the EA settings. Entry Conditions Wait for a pullback toward EMA 9 or EMA 21. Entry only after a valid engulfing candle. BUY Previous candle bearish. Current candle
Kenyan Editor 30+ USD
1.a specific robot to earn for a quick and reasonable trade all over. The Idear of being specific makes me perfect, I want this to be clear that make me a high luxurious person will describe me and I will promise to advertise the market both internally and externally
I have my own strategy in 1min. I want it convert to a bot. Please reach me only coding experts. I dont want bit makers from Ai. Demo version should be provided for confirmation
Code the indicator to MT5 EA, include all the inputs variable and values Enable EA true or false Allow live trading Allow demo trading Allow strategy tester Bar shift 0 adjustable Lot size adjustable Max spread in points (0=disable) Use stop loss true or false Stop loss in points (adjustable) Use stop loss circle true or false Use take profit true or false Use take profit in points (adjustable) Use pending order in
Siraj Durrani 30 - 50 USD
Title: Need MT4 Expert Advisor for XAUUSD (SMC/ICT Strategy) Requirements: I need a professional MT4 Expert Advisor (EA) for XAUUSD based on Smart Money Concepts (SMC) / ICT strategy. Features: - Platform: MetaTrader 4 (MT4) - Symbol: XAUUSD - Automatic Buy and Sell trades. - Detect market trend automatically. - Use Break of Structure (BOS) and Change of Character (CHoCH) for trend confirmation. - Enter trades only
Xauusd to gold 35+ USD
The EA must be fully automated , backtest-friendly , prop-firm-safe , and built with a clean modular architecture . Core Strategy Requirements 1. Higher Timeframe Bias Use D1 and H4 . Use 200 EMA as trend filter: If price is above 200 EMA on both D1 and H4 -> allow BUY only If price is below 200 EMA on both D1 and H4 -> allow SELL only If D1 and H4 are not aligned -> no trade 2. Market Structure Module Detect and

Project information

Budget
30 - 45 USD