Help me on array out of range guys - page 2

 
kennymic1 #:

hello sir, thank you very much sir. I am just coming online.

The problem is solved.

You are the real G sir! Thank you sir.

Thanks everyone!

No problem. glad i could help

 

Sir,

 EA " array out of rang" 1402,34 Any Currency Chart Load Bot But Disconnect EA

Please Sol Problem

Thank u  

 
4X SOLUTION # EA " array out of rang" 1402,34
  1. Don't hijack other threads for your off-topic post. Next time, make your own, new, thread.

  2.     ~TslByPips() { ; }
    
        void setInitialStep(Order* order)
    

    You and your image say 1402, but that is a blank line in the code you posted. Post the actual code, or recompile and retest.

  3. Use the debugger or print out your variables, including _LastError and prices and find out why. Do you really expect us to debug your code for you?
              Code debugging - Developing programs - MetaEditor Help
              Error Handling and Logging in MQL5 - MQL5 Articles (2015)
              Tracing, Debugging and Structural Analysis of Source Code - MQL5 Articles (2011)
              Introduction to MQL5: How to write simple Expert Advisor and Custom Indicator - MQL5 Articles (2010)

  4. class Counter{
      int _n;
    
      Counter() { ; }

    Variable initialized with garbage.

  5. CNewCandle::CNewCandle(){
        velasInicio = iBars(Symbol(), Period());
    

    For a new bar test, Bars is unreliable (a refresh/reconnect can change number of bars on chart), volume is unreliable (miss ticks), Price is unreliable (duplicate prices and The == operand. - MQL4 programming forum.) Always use time.
              MT4: New candle - MQL4 programming forum #3 (2014)
              MT5: Accessing variables - MQL4 programming forum #3 (2022)

    I disagree with making a new bar function, because it can only be called once per tick (second call returns false). A variable can be tested multiple times.
              Running EA once at the start of each bar - MQL4 programming forum (2011)

  6. string GetTimeFrame(int lPeriod)
    {
        switch(lPeriod) {
            case PERIOD_M1:
                return ("M1");
            case PERIOD_M5:
                return ("M5");

    What about the other possible timeframes?

    EnumToString
              Need some help with some MT5 code - MT5 - Expert Advisors and Automated Trading - MQL5 programming forum #3 (2018)

  7.                 double buySl = MainOrders.index(i).price() + userBkvStep * 10 * Point();
                    double sellSl = MainOrders.index(i).price() - userBkvStep * 10 * Point();
    

    You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit by the Ask.

    1. Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?

    2. Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close at a specific Bid price, add the average spread.
                MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25

    3. The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)

      Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes.
      My GBPJPY shows average spread = 26 points, average maximum spread = 134.
      My EURCHF shows average spread = 18 points, average maximum spread = 106.
      (your broker will be similar).
                Is it reasonable to have such a huge spreads (20 PIP spreads) in EURCHF? - General - MQL5 programming forum (2022)

 
4X SOLUTION #:

Sir,

 EA " array out of rang" 1402,34 Any Currency Chart Load Bot But Disconnect EA

Please Sol Problem

Thank u  

It's quite likely that the problem is here:

It's not very far from row 1402. And the column is 34.

Make a debug version in which you add a check to this method. Namely, before returning the pointer, make sure that the index is correct and print a message to the log if the index is not correct.

Also, if you return NULL when the index is not correct, you will get an "invalid pointer access" error, which should help identify where you are calling a method passing it an not correct index.

 
Vladislav Boyko #:
It's quite likely that the problem is here:

And most likely, GetPointer is not needed there.