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
(553)
Projects
640
33%
Arbitration
41
41% / 46%
Overdue
11
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'm looking to buy a profitable NinjaTrader automated trading system that can trade NQ/MNQ or ES/MES. My goal is to find a system with a strong profit potential, even if it has a high drawdown. Scope of work - Provide NinjaTrader automated trading system for NQ/MNQ or ES/MES. - Include backtest results for at least 1 year. - System must show high profitability. Additional information I am primarily focused on finding
Exe source code 70+ USD
Need a developer to help with a exe file and provide the source code, if you can do this please kidnly apply and tell me what you need to get this started
XAUUSD - TREND TRADER 30 - 500 USD
Find a good entry point and enter the trade .after the first profit of 25% is done then exit the trade .find the good market analysis of the trend and know when the market is on a good trend. After that now know the entry point and the take profit of the slot you have opened .have also a risk management strategy
Looking for someone to reverse/decompile my exe file, pls apply if this is something you can do and let me know how long this will take you to do will send the file to you once it’s something you seems to do
Hello, I am a serious buyer looking to acquire an existing, stable, and profitable Expert Advisor (EA) designed specifically for: 👉 Gold (XAUUSD) This is a full buyout request, including complete source code and full ownership. ⚠️ I am NOT looking to build a new EA from scratch. Only ready-made, proven systems with real performance history. ✅ EA Requirements (Strict) 📌 Symbol & Strategy ✔️ Trades Gold only (XAUUSD)
مرحبا احتاج ريبورت يعمل على mt5. يعمل على ذهب على تايم فريم ٥ دقائق. يعمل ٢٤ ساعة طريقة العمل كل ٣٠ دقيقة يتم فتح دورة مثال لو كانت ساعة ١.٢٥ ننتضر شمعة التالي المقصود بمعنى الشمعة ٥ دقايق سوف تغلق ساعة ١.٣٠ هذا الشمعة المقصودة يتم تطبيق كل نصف ساعة الشرح الدقيق عند اغلاق شمعة ٥ دقايق فورآ يتم تحديد هاي شمعة و لو الشمعة ننتضر في حال اخترق هاي شمعة المحددة بفارق نصف دولار أعلى شمعة المحددة
USD I’m looking to acquire an existing, profitable Expert Advisor (EA) with full source code to add to our client investment portfolio. for an experienced MQL5 developer to build a fully automated trading bot (Expert Advisor) for MetaTrader 5 . The bot will focus on trend-following scalping and must be designed to trade XAUUSD, EURUSDm, ETHUSDm,BTCUSDm and others on the M1 timeframe . The objective is to create a
I have a few different expert advisors. I would like a copier that will copy the trades from the robots on mt4/mt5 to trade locker. Make it so the copier only works with my expert advisors, so it can only be used by my members. Some of my systems are grid trading, for your reference. I want it to be easy to use, with clean functionality. Nothing difficult
Required Filters are working as per specification and requirement . Stop Loss Trailing needs correct execution for live chart . Need a little advice on trailing stop loss correction . Live chart only
I’m looking to purchase a profitable automated trading system for NinjaTrader that can trade NQ/MNQ or ES/MES futures . My goal is to find a strategy with strong profit potential , even if it comes with a higher drawdown. Please send any algos you have that trade NQ/MNQ or ES/MES with at least a 1-year backtest , preferably a system that is not based on ultra-fast scalping . Scope of work Provide a NinjaTrader

Project information

Budget
30 - 45 USD