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
(615)
Projects
718
33%
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
MT5 EA 150+ USD
I am looking for a professional MQL5 developer to create a custom trading robot for MetaTrader 5. The Expert Advisor must operate strictly on H4 and D1 timeframes with a Moving Average crossover entry signal. It should open a total position of 0.02 lots split into two orders of 0.01 lots. It must include an initial ATR-based stop loss, an automatic break-even function, a custom pairs filter input (Symbols), a news
Abba Wale 30 - 100000 USD
//+------------------------------------------------------------------+ //| XAUUSD_SMART_EA_V2.mq5 | //| BOS + Liquidity Sweep + FVG + EMA + ATR | //+------------------------------------------------------------------+ #property strict #property version "2.00" #include <Trade/Trade.mqh> CTrade trade; //================================================================== // INPUTS
Dfwluxea 30 - 6000 USD
MetaTrader 5 Smart Trading Robot – Description Create an advanced MetaTrader 5 (MT5) Expert Advisor designed to analyze the market, generate high-quality trading signals, identify potential trading mistakes, and manage trades using strict risk-management rules. The robot should continuously analyze price action, market structure, trend direction, volatility, support and resistance, momentum, and selected technical
I have an existing MetaQuotes Language 5 Expert Advisor containing approximately 12,000 lines of code. The project requires auditing and targeted reprogramming to restore strategy profitability and accuracy. ​ Key Tasks: ​ Profit Tracking Reprogramming: Re-code and fix the profit tracking, trade management, and trailing mechanisms to ensure accurate execution. ​ Trade Entry Audit: Perform a full review of all trade
Gold Scalper EA MT5 30 - 50 USD
Forex Simple EA Overview: Current Price → XX pips above = Buy Stop | XX pips below = Sell Stop → One order triggers → Delete opposite order → Maximum 1 position → Trade closes → Start a new cycle. Features Automatic Buy and Sell trading Stop Loss and Take Profit Trailing Stop Risk Management Spread Filter On-Chart Trading Dashboard Easy to install, simple to configure, and suitable for demo and live trading
1. PROJECT OVERVIEW Development of a custom automated and manual trading bot for NinjaTrader 8, primarily designed for Nasdaq Futures (NQ/MNQ). The bot will contain the original trading strategy, configurable risk management, automatic and manual operating modes, alerts, profit/loss management, partial profit taking, Break Even, backtesting functionality, and the additional configurable contract-averaging system
Overview I am seeking an experienced MQL5/MetaTrader 5 developer to build an automated trading system for Deriv MT5, emphasizing Deriv Volatility Indices with additional support for Forex, Gold, and Oil. Scope of work - Develop a custom MQL5 trading system for Deriv MT5 - Implement liquidity and market-structure analysis - Enable automated execution with Deriv Volatility Index support - Incorporate multi-timeframe
Hello, I have a custom indicator with a specific line. Logic I want: 1. When a candle closes and crosses the indicator line (I will tell you the buffer number of this line), start counting. 2. After the cross, wait for 3 consecutive candles with the same color / same direction. 3. If the 3 candles are bullish, open a BUY trade on the next candle open. 4. If the 3 candles are bearish, open a SELL trade on the
I’m looking for an experienced developer to help me build a forex trading performance tracking platform similar in concept to Myfxbook and FX Blue, but with a much cleaner, more modern UI and additional AI-powered features. The platform will be built as a SaaS product where users can sign up, connect their MT5 trading accounts, and track their trading performance through an easy-to-understand dashboard. The first
Require an EA that opens trades at preselected RSI values. The EA will then monitor the gain/loss of the open positions and close them as specified in terms of points gain/loss. Once a position closes, the action will trigger the opening of other positions as specified

Project information

Budget
30 - 45 USD