Скачать MetaTrader 5

НАС ОГРАНИЧИВАЮТ!!!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Статьи уже помогли многим трейдерам. Заходи и читай!
Forex Trader
114257
Forex Trader 2006.04.28 12:31 
Всем привет.

Разрабатывая некий скрипт сталкнулся с ограничением получаемых катеровок с других тайм фреймов.
Ниже код скрипта каторый наглядно показывает ограничение. Катеровки копируются в массив, а потом мы сохраняем все из этих массивовв в файл. Сразу уточню история минуток у меня с 2001 года, все другие тайм фреймы сконвертированы скриптом Period_Converter, т.е. история вся. Так вот если скрипт (код ниже), прикрепить на часовик, то по часовику выводится вся история, а по остальным тайм фреймам не полная. В настройках МТ4, стоит максимальное баров в истории 2147483647, максимальное баров в окне 2147483647.
Билд 192 от 26 апреля. Объясните почему данное ограничение имеет место быть?

//+------------------------------------------------------------------+
//|                                                      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;


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);
   ArrayCopyRates(array2,"EURUSD", PERIOD_M5);
   ArrayCopyRates(array3,"EURUSD", PERIOD_M15);
   ArrayCopyRates(array4,"EURUSD", PERIOD_M30);
   ArrayCopyRates(array5,"EURUSD", PERIOD_H1);
   ArrayCopyRates(array6,"EURUSD", PERIOD_H4);
   ArrayCopyRates(array7,"EURUSD", PERIOD_D1);
   ArrayCopyRates(array8,"EURUSD", PERIOD_W1);

   for(shift=Bars-1; shift>=0; shift--){
      handle1=FileOpen(FileName+"M"+PERIOD_M1+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle2=FileOpen(FileName+"M"+PERIOD_M5+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle3=FileOpen(FileName+"M"+PERIOD_M15+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle4=FileOpen(FileName+"M"+PERIOD_M30+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle5=FileOpen(FileName+"M"+PERIOD_H1+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle6=FileOpen(FileName+"M"+PERIOD_H4+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle7=FileOpen(FileName+"M"+PERIOD_W1+".txt", FILE_READ|FILE_WRITE, ';'); 
      handle8=FileOpen(FileName+"M"+PERIOD_MN1+".txt", FILE_READ|FILE_WRITE, ';'); 
      if(handle1>0 && handle2>0 && handle3>0 && handle4>0 && handle5>0 && handle6>0 && handle7>0 && handle8>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]);
         FileClose(handle1);
         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]);
         FileClose(handle2);
         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]);
         FileClose(handle3);
         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]);
         FileClose(handle4);
         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]);
         FileClose(handle5);
         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]);
         FileClose(handle6);
         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]);
         FileClose(handle7);
         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]);
         FileClose(handle8);
         }
      }	
//----
   return(0);
  }
//+------------------------------------------------------------------+
Forex Trader
114257
Forex Trader 2006.04.28 12:50  
Сразу уточню история минуток у меня с 2001 года, все другие тайм фреймы сконвертированы скриптом Period_Converter, т.е. история вся. Так вот если скрипт (код ниже), прикрепить на часовик, то по часовику выводится вся история, а по остальным тайм фреймам не полная. В настройках МТ4, стоит максимальное баров в истории 2147483647, максимальное баров в окне 2147483647.
Билд 192 от 26 апреля. Объясните почему данное ограничение имеет место быть?

Представьте, пожалуйста цифры. Что значит "неполная". Сколько есть данных и сколько копирует?

Почему Вы думаете, что по другим таймфреймам количество баров должно совпадать с текущим количеством баров, на часовке?
Forex Trader
114257
Forex Trader 2006.04.28 14:11  
Сразу уточню история минуток у меня с 2001 года, все другие тайм фреймы сконвертированы скриптом Period_Converter, т.е. история вся. Так вот если скрипт (код ниже), прикрепить на часовик, то по часовику выводится вся история, а по остальным тайм фреймам не полная. В настройках МТ4, стоит максимальное баров в истории 2147483647, максимальное баров в окне 2147483647.
Билд 192 от 26 апреля. Объясните почему данное ограничение имеет место быть?

Представьте, пожалуйста цифры. Что значит "неполная". Сколько есть данных и сколько копирует?

Почему Вы думаете, что по другим таймфреймам количество баров должно совпадать с текущим количеством баров, на часовке?


В каком виде представить?
Если у вас история минуток, пяти, пятнадцати, тридцати и т.д. есть, а она у Вас должна быть, попробуйте запустить скрипт. А потом смотрите сохранившиеся файлы, история не вся.

Лучьше подскажите чего делать то. Мне история вся нужна.
Forex Trader
114257
Forex Trader 2006.04.28 14:53  
Всё очень просто. Открыли соответсвующий график. Навели мышкой на соответствующий таб, в подсказке прочитали количество баров. Сравнили полученное количество баров с количеством сохранённых данных.
Forex Trader
114257
Forex Trader 2006.04.28 15:03  
Всё очень просто. Открыли соответсвующий график. Навели мышкой на соответствующий таб, в подсказке прочитали количество баров. Сравнили полученное количество баров с количеством сохранённых данных.


Я же написал. История по всем тайм фреймам с 2001 года. Почему она не сохраняется с 2001 года?
Перечисляю следующие выводимые записи в файлы, только первые строки.
М1: начинается с 2006.03.20 12:55;1.2167;1.2167;1.2167;1.2167;1
М5: 2005.10.26 19:45;1.2075;1.2074;1.2077;1.2077;17
M15: 2004.12.31 09:45;1.3632;1.3626;1.3633;1.3632;68
M30: 2003.09.03 19:00;1.0849;1.0847;1.0866;1.0852;30
H1: 2001.01.03 00:00;0.9505;0.9505;0.9509;0.9506;51 на Этот тайм фрейм я кидал скрипт
H4: 2001.01.03 00:00;0.9505;0.9492;0.9510;0.9499;231
W1: 2001.01.03 00:00;0.9505;0.9262;0.9569;0.9271;1425
Forex Trader
114257
Forex Trader 2006.04.28 15:33  
Почему Вы не хотите ответить на очень простой вопрос и предоставить цифры? Конкретные цифры, а не "история по всем таймфреймам с 2001 года". Лично я не знаю, сколько минутных баров должно быть в истории, начиная с 2001 года. Скажите же наконец Ваши цифры!!! Тогда и будем разбираться.
К тому же Вы не анализируете возврат и ошибки после ArrayCopyRates
Forex Trader
114257
Forex Trader 2006.04.28 15:38  
Всё очень просто. Открыли соответсвующий график. Навели мышкой на соответствующий таб, в подсказке прочитали количество баров. Сравнили полученное количество баров с количеством сохранённых данных.


Навел на бар мышкой, на предпоследний. Выводится инфа TIME, OPEN, HIGH, LOW, CLOSE, VOLUME. Где написано сколько баров в истории, немогу найти. Приведите скриншот если можно.
Forex Trader
114257
Forex Trader 2006.04.28 15:43  
Почему Вы не хотите ответить на очень простой вопрос и предоставить цифры? Конкретные цифры, а не "история по всем таймфреймам с 2001 года". Лично я не знаю, сколько минутных баров должно быть в истории, начиная с 2001 года. Скажите же наконец Ваши цифры!!! Тогда и будем разбираться.
К тому же Вы не анализируете возврат и ошибки после ArrayCopyRates


Открыл архив катеровок F2:
М1 = 1907591 записей в истории
М5 = 388198 записей
М15 = 131092 записей
М30 = 65588 записей
H1 = 32820 записей
H4 = 8317 записей
D1 = 1389 записей
W1 = 891 записей

Эти цифры Вам нужны?
Forex Trader
114257
Forex Trader 2006.04.28 16:04  
Навел на бар мышкой, на предпоследний. Выводится инфа TIME, OPEN, HIGH, LOW, CLOSE, VOLUME. Где написано сколько баров в истории, немогу найти. Приведите скриншот если можно.

Наведите мышкой на таб графика и увидите подсказку

На моей подсказке написано "21608 баров"

Либо возьмите индикатора отсюда "номер бара в "окне данных"."
Важно знать именно сколько на графике, а не в истории на диске
Forex Trader
114257
Forex Trader 2006.04.28 16:07  
Также прошу Вас ответить, какое значение возвращает ArrayCopyRates и GetLastError сразу после копирования
Forex Trader
114257
Forex Trader 2006.04.28 16:12  
Навел на бар мышкой, на предпоследний. Выводится инфа TIME, OPEN, HIGH, LOW, CLOSE, VOLUME. Где написано сколько баров в истории, немогу найти. Приведите скриншот если можно.

Наведите мышкой на таб графика и увидите подсказку

На моей подсказке написано "21608 баров"

Либо возьмите индикатора отсюда "номер бара в "окне данных"."
Важно знать именно сколько на графике, а не в истории на диске


Понял. Значчит смотрю и записываю.
М1 = 1907769 записей в истории
М5 = 388229 записей
М15 = 131104 записей
М30 = 65589 записей
H1 = 32821 записей
H4 = 8318 записей
D1 = 1389 записей
W1 = 891 записей
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий