Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2157

 
Подскажите, пожалуйста, почему МТ не даёт цену закрытия 6200-го бара и далее вглубь? 6000 цен назад принтует, а потом: 2023.03.13 16:14:53.030 Core 01 2022.01.04 23:00:00   0.0

 
Ivan Butko #:
Подскажите, пожалуйста, почему МТ не даёт цену закрытия 6200-го бара и далее вглубь? 6000 цен назад принтует, а потом: 2023.03.13 16:14:53.030 Core 01 2022.01.04 23:00:00   0.0

.
 
Alexey Viktorov #:
.

У меня МТ5 и там в настройка, в этой вкладке внизу макс. баров в окне 100000000

 
Ivan Butko #:

У меня МТ5 и там в настройка, в этой вкладке внизу макс. баров в окне 100000000

Наверное нет истории, т.к. у меня печатает даже больше

      if(x!=open[i]) {Print(open[i],"/",i); x=open[i];}



2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07241/1799353
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07307/1799354
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07258/1799355
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07378/1799356
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07347/1799357
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07373/1799358
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07381/1799359
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07319/1799360
2023.03.13 19:24:23.512 Stoc (EURUSD,M5)        1.07345/1799361
 
Tretyakov Rostyslav #:

Наверное нет истории, т.к. у меня печатает даже больше

Понял Вас, покручу МТ

 
Подскажите, пожалуйста, этот код рабочий? Можно ли им сохранять данные и потом из загружать? В то запустил - сова прошлась по истории, но в файлах ничего не могу найти со словом qTable

// Функция для сохранения Q-таблицы в файл
void saveQTable()
  {
    int file_handle = FileOpen("qtable.dat", FILE_WRITE|FILE_BIN);
    if (file_handle != INVALID_HANDLE)
      {
        // Записываем размер таблицы
        int size = ArraySize(qTable);
        FileWriteInteger(file_handle, size);
        
        // Записываем элементы таблицы
        for (int i = 0; i < States; i++)
          {
            for (int j = 0; j < Actions; j++)
              {
                FileWriteDouble(file_handle, qTable[i][j]);
              }
          }
        
        FileClose(file_handle);
      }
}






// Функция для загрузки Q-таблицы из файла
void loadQTable()
  {
    int file_handle = FileOpen("qtable.dat", FILE_READ|FILE_BIN);
    if (file_handle != INVALID_HANDLE)
      {
        // Читаем размер таблицы
        int size = FileReadInteger(file_handle);
        if (size == ArraySize(qTable))
          {
            // Читаем элементы таблицы
            for (int i = 0; i < size; i++)
              {
                for (int j = 0; j < 3; j++)
                {
                    qTable[i][j] = FileReadDouble(file_handle);
                }
              }
          }
          
        FileClose(file_handle);
      }
  }

 
Скажите пожалуйса, желательно кодом для МТ4. Элементарная штука. Как узнать ХАЙ и ЛОУ сегодняшнего дня ? На любом таймфрейме, обращение к свече D1 маркет не пропускает и выдает ошибку. На демо и реале работает.
 
Volodymyr Zubov #:
Скажите пожалуйса, желательно кодом для МТ4. Элементарная штука. Как узнать ХАЙ и ЛОУ сегодняшнего дня ? На любом таймфрейме, обращение к свече D1 маркет не пропускает и выдает ошибку. На демо и реале работает.

А как Вы обращаетесь к свече D1(желательно кодом)?

Я использую iBarShift и никогда ошибок в маркете не было.

 
Volodymyr Zubov #:
Скажите пожалуйса, желательно кодом для МТ4. Элементарная штука. Как узнать ХАЙ и ЛОУ сегодняшнего дня ? На любом таймфрейме, обращение к свече D1 маркет не пропускает и выдает ошибку. На демо и реале работает.

Этого быть не может.

Вероятно вы запрашиваете день за пределами максимального бара…

 
Alexey Viktorov #:

Этого быть не может.

Вероятно вы запрашиваете день за пределами максимального бара…

Делаю так, там и отрисовка и расчет риска от рассотяния до макс и мин дня.

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   BUY_Open_slower_MAnow_Live = iMA(_Symbol,PERIOD_CURRENT, Slower_BUY_Open, 0, ma_method_buy_Open, PRICE_CLOSE,1);
   BUY_Open_slower_MAprevious_Live = iMA(_Symbol,PERIOD_CURRENT, Slower_BUY_Open, 0, ma_method_buy_Open, PRICE_CLOSE,2);
//---
   if((BUY_Open_faster_MAnow_Live >= BUY_Open_slower_MAnow_Live) && (BUY_Open_faster_MAprevious_Live < BUY_Open_slower_MAprevious_Live))
     {
      Open_0=Open[0];
      Low_2=iLow(_Symbol,PERIOD_D1,0);
      //      Low_2=Low[2];
      data_Signal=1;//1 - Long Open Signal
      StopLossDistanceLong =(int)((Open_0-Low_2)/data_Point);
      OpenLot = LotSize(StopLossDistanceLong,MaxRisk);
      //      SetLabel("OBJ_NAME300","Lot Size: "+DoubleToStr(OpenLot,2),TradeInfoColor,14,216,0,10);//---LotSize
      //      if(Ask+CurrentSpread*_Point < Open_0)
      if(Bid <= Open_0)
         LongSignal=1;
     }
   else
     {
      if((BUY_Close_faster_MAnow_Live <= BUY_Close_slower_MAnow_Live) && (BUY_Close_faster_MAprevious_Live > BUY_Close_slower_MAprevious_Live))
        {
         data_Signal=2;//2 - Short Close Signal
        }
     }
//---
Причина обращения: