Скрипты: sHistoryExport - удобный скрипт для экспорта исторических данных в формате МТ4 - страница 4

 

Здравствуйте,


Возможно ли изменить скрипт таким образом, чтобы сгенерированный .csv файл был из настоящего в прошлое?

Благодарен за внимание.

Спасибо

 
CarlosFa:

Можно ли изменить скрипт так, чтобы сгенерированный .csv-файл переходил из настоящего в прошлое?

Да, просто измените эту строку:

for ( int i = copy_count-1; i > 0; i -- )

на следующую:

for ( int i = 1; i < copy_count; i ++ )
 
metatrader 5 пользовательский график конвертировать файл. Файл не открывается. Помогите пожалуйста
 
Lvbey:

Большое спасибо. Это работает для меня!

Но я обнаружил, что есть строка кода, которая должна быть такой (около строки 125 в этом скрипте)::

строка 125: for ( int i = copy_count-1; i >= 0; i -- )...

из-за i > 0 (я думаю, что это должно быть i >= 0), нет первой записи.

^_^

Если вы замените > 0 на >= 0, вы также получите данные последнего (т.е. самого последнего, текущего) бара, которые, вероятно, будут неполными. Хотя это может быть желаемым поведением, оно может вводить в заблуждение.


Спасибо Андрею Хатимлянскому!

 
Здравствуйте, мой друг, когда я запускаю скрипт, последняя свеча не отображается в файлах .csv. Например, в Бразилии последний день переговоров был 4 сентября, а в экспорте отображается только 3 сентября.
Я экспортировал .csv в стандартной форме Metatrader 5 (File> Save) и свеча 4 сентября появилась. Не могли бы вы мне помочь?
 
gscruzz:
Здравствуйте, мой друг, когда я запускаю скрипт, последняя свеча не отображается в файлах .csv. Например, в Бразилии последний день переговоров был 4 сентября, а в экспорте отображается только 3 сентября.
Я экспортировал .csv в стандартной форме Metatrader 5 (File> Save) и свеча 4 сентября появилась. Не могли бы вы мне помочь?

Привет!

Просто измените "i > 0" на "i >= 0" в этой строке:

for ( int i = copy_count-1; i >= 0; i -- )
 

Здравствуйте,

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

Спасибо

The Fundamentals of Testing in MetaTrader 5
The Fundamentals of Testing in MetaTrader 5
  • www.mql5.com
What are the differences between the three modes of testing in MetaTrader 5, and what should be particularly looked for? How does the testing of an EA, trading simultaneously on multiple instruments, take place? When and how are the indicator values calculated during testing, and how are the events handled? How to synchronize the bars from different instruments during testing in an "open prices only" mode? This article aims to provide answers to these and many other questions.
 

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1) Загрузка истории и запись файлов: 0,0% завершено...


// не более 100 неудачных попыток
if(++fail_cnt >= 100)
   return false;

Неважно, 100 или 1 миллион попыток, следующий блок никогда не приводит к успеху:

//копирование следующей части заставляет загружать данные
if (CopyTime(symbol,period,size-1,1,times)==1)
{
   return true;
}
Также в CheckServerHistory:
//Достаточно данных на сервере?
if (first_server_date>TimeCurrent()-size*PeriodSeconds(period))
   return false;

это жесткое условие *всегда* возвращает false, потому что распознанная дата first_server_date обычно ближе к настоящему, чем ожидаемая история в прошлом. Особенно если в опции графиков присвоить "max bars in chart" значение "unlimited", то TERMINAL_MAXBARS вернет 1000000 и таким образом условие всегда будет считать, что никогда не загружается достаточно истории.

 
Скрипт уже не такой длинный, пройдитесь по нему отладчиком, чтобы понять, в какой строке скрипт "ошибается".
 
Marcel Fitzner:

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1) Загрузка истории и запись файлов: 0.0% завершена...


Неважно, 100 или 1 миллион попыток, следующий блок никогда не приводит к успеху:

Также в CheckServerHistory:

это жесткое условие *всегда* возвращает false, потому что распознанная дата first_server_date обычно ближе к настоящему, чем ожидаемая история в прошлом. Особенно если в опции графиков присвоить "max bars in chart" значение "unlimited", то TERMINAL_MAXBARS вернет 1000000 и таким образом условие всегда будет считать, что никогда не загружается достаточно истории.

Вы правы, я просто скопировал этот код из стандартной библиотеки.

Я уже переписал эти функции под свои нужды. Но в данный момент не готов обновить публикацию.