Ошибки, баги, вопросы - страница 3324

 
Доброго времени суток . Знатоки подскажите пожалуйста что за ошибка возникает при попытке тестирования ? 
Файлы:
 
Konstantyn Zhuk #:
Доброго времени суток . Знатоки подскажите пожалуйста что за ошибка возникает при попытке тестирования ? 

Не знаток- но все же... это распространенная ошибка выхода за пределы массива.

Проверьте обращения к создаваемым вновь и чем то заполняемым его буферам. Может проверьте правильность сдвига ячейки - в общем образцы в справке смотрите.... подобное у себ  я    в коде делайте. См. Статью типа - работа с массивами это просто. См в поиске. Вобщем по шаблонам на первых порах кодьте - пока тему не вкурите от и до....
 
Konstantyn Zhuk #:
Доброго времени суток . Знатоки подскажите пожалуйста что за ошибка возникает при попытке тестирования ? 

Это как можно написать индикатор\советник состоящий из более чем СЕМЬ ТЫСЯЧ СТО СОРОК СЕМЬ строк… Жесть… Это по одному символу на строку¿¿¿

 
Alexey Viktorov #:

Это как можно написать индикатор\советник состоящий из более чем СЕМЬ ТЫСЯЧ СТО СОРОК СЕМЬ строк… Жесть… Это по одному символу на строку¿¿¿

Это нейросеть . 

 
Alexey Viktorov #:

Это как можно написать индикатор\советник состоящий из более чем СЕМЬ ТЫСЯЧ СТО СОРОК СЕМЬ строк… Жесть… Это по одному символу на строку¿¿¿

Полагаю, что половина этих строк состоит из открывающих и закрывающих блок скобок:
{
}
А также блоков комментариев, которые ME вставляет перед функциями.
 
Konstantyn Zhuk #:

Это нейросеть . 

Ааа… Ну поиграйтесь чуток…

 
Alexey Viktorov #:

Ааа… Ну поиграйтесь чуток…

))

 
    Print(" 211= ","Ord total= ",Ord_total);
   //--- перебор всех установленных отложенных ордеров for(int i=total-1; i>=0; i--) было
   for(int i=Ord_total-1; i>=0; i--)
     {
      //string order_symbol=Symbol();                          // символ
      ulong  order_ticket=OrderGetTicket(i);                   // тикет ордера с начала выбор ордера
      ulong  magic=OrderGetInteger(ORDER_MAGIC);               // MagicNumber ордера if(TimeCurrent()-_Time1[1]>TimeCu/12)
      datetime Tim_=(datetime)OrderGetInteger(ORDER_TIME_SETUP);
      Print(" 217= "," order_ticket= ",order_ticket,"  Cur= ",TimeCurrent()," ORDER_TIME_SETUP = ",Tim_,"  .TimeSetup()= ",m_order.TimeSetup(),"  magic= ",magic);
     if(TimeCurrent()-Tim_>=TimeCu*koef_t&&order_ticket!=0)//--- ||TimGet_Vbr_H4_l_13_5_8>0 ::: order_ticket=0  -- не обрабатывается
     {
      //--- если MagicNumber совпадает
     if(magic==MagicID)

        {Print("удал. order_ticket= ",order_ticket);

Подскажите почему не находит OrderGetTicket(i) выдает 0?

CS 0 22:07:26.916 DV_SCT_PivotP_1_D (EURAUD,M5) 2023.05.22 00:10:00 211= total= 2
CS 0 22:07:26.916 DV_SCT_PivotP_1_D (EURAUD,M5) 2023.05.22 00:10:00 217= order_ticket= 0 = 2023.05.22 00:10:00 Tim_ = 2023.05.15 07:00:00 = 2023.05.15 07:00:00 magic= 4321501
CS 0 22:07:26.916 DV_SCT_PivotP_1_D (EURAUD,M5) 2023.05.22 00:10:00 удал. m_order.TimeSetup()= 2023.05.15 07:00:00
CS 2 22:07:26.916 Trades 2023.05.22 00:10:00 failed cancel order #0 buy 0 at market [Invalid request]
CS 0 22:07:26.916 DV_SCT_PivotP_1_D (EURAUD,M5) 2023.05.22 00:10:00 OrderSend error 4756
CS 0 22:07:26.916 DV_SCT_PivotP_1_D (EURAUD,M5) 2023.05.22 00:10:00 _retcode=10013 deal=0 order=0 

почему инструменты так отображаются и на них не переключится( см файл)

Файлы:
ltny6g.PNG  54 kb
 
Ошибка при компиляции
class A {};
int f1(); //(1) нормально
A   f2(); //(2) нормально
A*  f3(); //(3) Error: 'f3' - class type expected
А какая принципиальная разница между (1),(2) и (3) ?
 

Здравствуйте, уважаемые, сталкнулся с ошибкой в тестере MT4 при выполнении следующего кода:

//часть из инициализации создана для чтения файлов с папки
//читает успешно на только до определенного количества больше 100шт. начинается ошибка с пропуском инструкций
 if(IsTesting()==true)
     {
      Print("test1");
      int i=0;
      int j=1;
      while(i<1)
        {
         InpFilter= folder_chat + "\\HISTORY\\*";
         string file_name = FUN_FIND(InpFilter);

         if(file_name != 0)
           {

            //Print(file_name);
            //Sleep(5000);
            string file_name_pach = folder_chat + "\\HISTORY\\" + file_name;
            FUN_READER(file_name_pach);

            ArrayResize(HISTO_STR_ID,j);
            ArrayResize(HISTO_STR_com,j);
            //Print(STR_com);
            ArrayResize(HISTO_STR_Pair,j);
            ArrayResize(HISTO_STR_price,j);
            ArrayResize(HISTO_STR_SL,j);
            ArrayResize(HISTO_STR_TP,j);
            ArrayResize(HISTO_STR_TP_2,j);
            ArrayResize(HISTO_STR_TP_3,j);
            ArrayResize(HISTO_STR_TIME,j);

            //  Print("STR[0]=",STR[0]);
            HISTO_STR_TIME[j-1] = STR[0];
            HISTO_STR_ID[j-1] = STR[1];
            // Print("HISTO_STR_ID[j]=",HISTO_STR_ID[j-1]);
            HISTO_STR_com[j-1] = STR[2];
            //Print(STR_com);
            HISTO_STR_Pair[j-1] = STR[3];
            HISTO_STR_price[j-1] = STR[4];
            HISTO_STR_SL[j-1] = STR[5];
            HISTO_STR_TP[j-1] = STR[6];
            HISTO_STR_TP_2[j-1] = STR[7];
            HISTO_STR_TP_3[j-1] = STR[8];

            j=j+1;
            FUN_CLEAR_ARR();
           }
         else
            i=1;
        }

//следующие ниже инструкции в init() пропускаются 
int j_1=0;
         i=0;
         while(i < ArraySize(HISTO_STR_ID))
           {
            Print("HISTO_STR_ID[i]=",HISTO_STR_ID[i]);
            //HISTO_STR_Pair_list[j]=HISTO_STR_Pair[i]

            int np=1;
            while(j_1 <= ArraySize(HISTO_STR_Pair_list))
              {
               if(HISTO_STR_Pair_list[j_1]!=HISTO_STR_Pair[i])
                  j_1=j_1 + 1;
               else
                 {
                  j_1=ArraySize(HISTO_STR_Pair_list)+1;
                  np=0;
                 }
              }
            if(np==1)
               ArrayResize(HISTO_STR_Pair_list,ArraySize(HISTO_STR_Pair_list)+1);



            i=i+1;
           }

         i=0;
         while(i <= ArraySize(HISTO_STR_Pair_list))
           {
            Print("HISTO_STR_Pair_list[i]=",HISTO_STR_Pair_list[i]);
            i=i+1;

           }




чтение файлов происходит очень хорошо ,но возникает ошибка при большом их количестве 

ошибка состоит в том что пропускается часть инструкций и даже цикл следующий непосредственно за функции вызова чтения файлов.

дальше код выполняется хорошо , но эти несолько циклов в init() теряются. на прочтении 5-6 файлов все работает без ошибок.

вот функция чтения которая вызывается на иницилизации для заполнения промежуточного массива( массив заполняется без ошибок):

int FUN_READER(string file_name)
  {
//----
   int h=FileOpen(file_name, FILE_COMMON|FILE_CSV|FILE_READ, "\t");
   int i=0;
   if(h<1)
     {
      // Print("No File ");
      i=0;
      while(i<9)
        {
         STR[i] = "";
         i=i+1;
        }
     }
   else
     {
      i=0;
      while(!FileIsEnding(h))
        {
         STR[i] = FileReadString(h);
         //Print(i);
         //Print(STR[i]);
         i=i+1;

         //Print(FileReadString(h));
        }

      STR_ID = STR[0];
      STR_com = STR[1];
      //Print(STR_com);
      STR_Pair = STR[2];
      STR_price = STR[3];
      STR_SL = STR[4];
      STR_TP = STR[5];
      STR_TP_2 = STR[6];
      STR_TP_3 = STR[7];
      STR_TIME = STR[8];

      FileClose(h);
      FileDelete(file_name,FILE_COMMON);
     }

//----
   return(0);
  }


Как избежать такой ошибки возможно нужен таймаут на выполнение окончания чтения содержимого всех файлов (await), но в тестере нет sleep()?