НАС ОГРАНИЧИВАЮТ!!! - страница 2

 
М1 = 1907769 записей в истории
М5 = 388229 записей ~ 1907769/5=381553.8
М15 = 131104 записей ~ 1907769/15=127184.6
М30 = 65589 записей ~ 1907769/30=63592.3
H1 = 32821 записей ~ 1907769/60=31796.15
H4 = 8318 записей ~ 1907769/60/4=7949.0375
D1 = 1389 записей ~ 1907769/60/24=1324.8395...
W1 = 891 записей
 
Также прошу Вас ответить, какое значение возвращает ArrayCopyRates и GetLastError сразу после копирования


Скрипт ошибок вообще не выдал. Код немного тзменил, для каждой записи свой цикл сделал.

//+------------------------------------------------------------------+
//|                                                      History.mq4 |
//|                                         Copyright 2006, HIDDEN ™ |
//|                                            http://www.treide.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2006, HIDDEN ™"
#property link      "http://www.treide.ru/"
#include <stdlib.mqh>
#include <WinUser32.mqh>
extern string FileName = "History";
int handle1,handle2,handle3,handle4,handle5,handle6,handle7,handle8,shift,err;
bool   result;

double array1[][6];
double array2[][6];
double array3[][6];
double array4[][6];
double array5[][6];
double array6[][6];
double array7[][6];
double array8[][6];

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

int start()  {

   if(MessageBox("Записать историю для "+Symbol(),"Script",MB_YESNO|MB_ICONQUESTION)!=IDYES) return(1);

   ArrayCopyRates(array1,"EURUSD", PERIOD_M1);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array2,"EURUSD", PERIOD_M5);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array3,"EURUSD", PERIOD_M15);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array4,"EURUSD", PERIOD_M30);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array5,"EURUSD", PERIOD_H1);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array6,"EURUSD", PERIOD_H4);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array7,"EURUSD", PERIOD_D1);
            err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   ArrayCopyRates(array8,"EURUSD", PERIOD_W1);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
   for(shift=Bars-1; shift>=0; shift--){
      handle1=FileOpen(FileName+"M"+PERIOD_M1+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle1>0){    
         FileSeek(handle1, 0, SEEK_END);
         FileWrite(handle1,TimeToStr(array1[shift][0]),DoubleToStr(array1[shift][1],Digits),DoubleToStr(array1[shift][2],Digits),DoubleToStr(array1[shift][3],Digits),DoubleToStr(array1[shift][4],Digits),array1[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle1);   
   }
   
   for(shift=Bars-1; shift>=0; shift--){
      handle2=FileOpen(FileName+"M"+PERIOD_M5+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle2>0){ 
         FileSeek(handle2, 0, SEEK_END);
         FileWrite(handle2,TimeToStr(array2[shift][0]),DoubleToStr(array2[shift][1],Digits),DoubleToStr(array2[shift][2],Digits),DoubleToStr(array2[shift][3],Digits),DoubleToStr(array2[shift][4],Digits),array2[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle2);
   }
         
   for(shift=Bars-1; shift>=0; shift--){
      handle3=FileOpen(FileName+"M"+PERIOD_M15+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle3>0){ 
         FileSeek(handle3, 0, SEEK_END);
         FileWrite(handle3,TimeToStr(array3[shift][0]),DoubleToStr(array3[shift][1],Digits),DoubleToStr(array3[shift][2],Digits),DoubleToStr(array3[shift][3],Digits),DoubleToStr(array3[shift][4],Digits),array3[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle3);
   }
            
   for(shift=Bars-1; shift>=0; shift--){
      handle4=FileOpen(FileName+"M"+PERIOD_M30+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle4>0){ 
         FileSeek(handle4, 0, SEEK_END);
         FileWrite(handle4,TimeToStr(array4[shift][0]),DoubleToStr(array4[shift][1],Digits),DoubleToStr(array4[shift][2],Digits),DoubleToStr(array4[shift][3],Digits),DoubleToStr(array4[shift][4],Digits),array4[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle4);
   }
         
   for(shift=Bars-1; shift>=0; shift--){
      handle5=FileOpen(FileName+"M"+PERIOD_H1+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle5>0){ 
         FileSeek(handle5, 0, SEEK_END);
         FileWrite(handle5,TimeToStr(array5[shift][0]),DoubleToStr(array5[shift][1],Digits),DoubleToStr(array5[shift][2],Digits),DoubleToStr(array5[shift][3],Digits),DoubleToStr(array5[shift][4],Digits),array5[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle5);
   }
         
   for(shift=Bars-1; shift>=0; shift--){
      handle6=FileOpen(FileName+"M"+PERIOD_H4+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle6>0){ 
         FileSeek(handle6, 0, SEEK_END);
         FileWrite(handle6,TimeToStr(array6[shift][0]),DoubleToStr(array6[shift][1],Digits),DoubleToStr(array6[shift][2],Digits),DoubleToStr(array6[shift][3],Digits),DoubleToStr(array6[shift][4],Digits),array6[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle6);
   }
            
   for(shift=Bars-1; shift>=0; shift--){
      handle7=FileOpen(FileName+"M"+PERIOD_W1+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle7>0){ 
         FileSeek(handle7, 0, SEEK_END);         
         FileWrite(handle7,TimeToStr(array7[shift][0]),DoubleToStr(array7[shift][1],Digits),DoubleToStr(array7[shift][2],Digits),DoubleToStr(array7[shift][3],Digits),DoubleToStr(array7[shift][4],Digits),array7[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle7);
   }
         
   for(shift=Bars-1; shift>=0; shift--){
      handle8=FileOpen(FileName+"M"+PERIOD_MN1+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle8>0){ 
         FileSeek(handle8, 0, SEEK_END);
         FileWrite(handle8,TimeToStr(array8[shift][0]),DoubleToStr(array8[shift][1],Digits),DoubleToStr(array8[shift][2],Digits),DoubleToStr(array8[shift][3],Digits),DoubleToStr(array8[shift][4],Digits),array8[shift][5]);
         err=GetLastError(); 
         if(result!=false) Print("Ошибка (",err,") при копировании"); 
      }
         FileClose(handle8);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
ArrayCopyRates должна возвращать количество баров, которые удалось скопировать
 
Замечания по скрипту.
1. Не нужно делать открытие и закрытие файла внутри цикла. Открыл файл, в цикле записал ВСЁ, закрыл файл.
2. Повторяю замечание. Переменная Bars содержит количество баров ТЕКУЩЕГО графика. Для минуток, например, надо использовать iBars(NULL,PERIOD_M1)
3. ArrayCopyRates используется для подготовки массива для передачи в dll. В других случаях его использование нецелесообразно. Лучше сразу доступаться через функции iOpen, iClose, iTime etc
 
ArrayCopyRates должна возвращать количество баров, которые удалось скопировать

Код перед вами, скажите что куда еще вставить чтобы этот футбол уже закончился. Вставлю потестю и решим что и как.
 
Все заработало. Спасибо за помощь.
 
Сразу уточню история минуток у меня с 2001 года

М1 = 1907769 записей в истории

... если чё, это не есть история минуток с 2001 года... А где брали столько минуток?
 
Сразу уточню история минуток у меня с 2001 года

М1 = 1907769 записей в истории

... если чё, это не есть история минуток с 2001 года... А где брали столько минуток?

В сети много мест где можно всять, что угодно и бесплатно.