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

 

Добрый день! Получаю данные по закрытию часовых свечей, отрисовываю, все норм, хочу получить данные на N-й период назад , пишет  array out of range 

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

   

{
 


if(prev_calculated<1) limit=rates_total-1;
if(prev_calculated>0)limit=rates_total-prev_calculated;
for(i=limit; i>=0; i--)
{  
int yesterday_weekday = TimeHour(iTime(Symbol(),0,i+1))-TimeHour(iTime(Symbol(),0,i));
if(yesterday_weekday!=0)  
  {
P=C; 
T = iTime(NULL,0,i+1); 
shift=iBarShift(NULL,PeriodGR,T); 
C= iClose(NULL,PeriodGR,shift);   
CB[n]=C;n++; 

 }
 CC[i]=C; 
 Comment(StringFormat("CC[i]=%G\r\nCB[n-2]=%G\r\n",CC[i],CB[n-2])); 
  }
   return(rates_total);
  }
 
PokrovMT5:

Добрый день! Получаю данные по закрытию часовых свечей, отрисовываю, все норм, хочу получить данные на N-й период назад , пишет пустой массив, пытался и из буфера индикатора из из массива, подскажите как получить данные за прошлый период

   

Может поможет

https://www.mql5.com/ru/code/7297

https://www.mql5.com/ru/code/20343

TZ-Breaktout
TZ-Breaktout
  • голосов: 2
  • 2007.09.14
  • Scriptor
  • www.mql5.com
Индикатор TZ-Breaktout.
 
PokrovMT5:

Добрый день! Получаю данные по закрытию часовых свечей, отрисовываю, все норм, хочу получить данные на N-й период назад , пишет  array out of range 

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

   

limit=rates_total-1;

У вас limit указывает на самый первый бар в истории. А Т рассчитываете на i+1 - вот и выход за пределы массива.

Попробуйте

limit=rates_total-2;

... хотя вряд ли поможет - там наверное ещё много расчётных значений, которые вы не проверяете...

 
Здравствуйте. Есть вопрос,индикаторная переменная limit в mql4 на золоте по дням 3555 баров показывает, а mql5 в два раза меньше? Хде грузить котировки? Еще вопрос пжлст, для limit=rates_total-2; что обсуждали выше, в моем варианте переполнение массива отсутствует только при limit=rates_total-5; программа работает. Еще заметил что в mql5 компиляция кода существенно тормозит секунд 13 процесс идет, это нормально? Спасибо.   

 
mwwm:
Здравствуйте. Есть вопрос,индикаторная переменная limit в mql4 на золоте по дням 3555 баров показывает, а mql5 в два раза меньше? Хде грузить котировки? Еще вопрос пжлст, для limit=rates_total-2; что обсуждали выше, в моем варианте переполнение массива отсутствует только при limit=rates_total-5; программа работает. Еще заметил что в mql5 компиляция кода существенно тормозит секунд 13 процесс идет, это нормально? Спасибо.   

В MT5 котировки подгружаются с сервера: что есть - то есть...

Про limit не нужно гадать и подбирать, а нужно чётко рассчитать - от каких переменных зависит смещение, и отнимать от rates_total единицу и значения этих переменных (если они не расчётные). Если же переменные рассчитываются, то нужно контролировать значение индекса цикла и, если он больше, чем rates_total-1, то пропускать эту итерацию (continue)

 

доброго времени суток! Подскажите, может кто знает, загружаю тиковые данные чтобы тестировать с 99% как положено, все четко работает для 30 мин графика, но как только я загружаю Н4 данные и пробую в тестере гонять по им советника, - не получается, тестер выдает 2018.04.05 16:41:08.576 TestGenerator: file "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" cannot open [5]

и 2018.04.05 16:41:08.535 TestGenerator: file "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" is read-only

в чем может быть причина??????
 
pryn:

доброго времени суток! Подскажите, может кто знает, загружаю тиковые данные чтобы тестировать с 99% как положено, все четко работает для 30 мин графика, но как только я загружаю Н4 данные и пробую в тестере гонять по им советника, - не получается, тестер выдает 2018.04.05 16:41:08.576 TestGenerator: file "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" cannot open [5]

и 2018.04.05 16:41:08.535 TestGenerator: file "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\7E781795884A398A87F33ED1B942D689\tester\history\USDJPY240_0.fxt" is read-only

в чем может быть причина??????
Не нужно размножать свои вопросы, пожалуйста.
 
Artyom Trishkin ...Если у текущего время больше, то сохранить его в переменной для проверки...

Спасибо, нашлось, что искал.

Другой вопрос - закрываю позицию частично, как учесть эту закрытую прибыль или убыток при подсчёте текущего профита.

 
PolarSeaman:

Спасибо, нашлось, что искал.

Другой вопрос - закрываю позицию частично, как учесть эту закрытую прибыль или убыток при подсчёте текущего профита.

Точно так же, как и при учёте полного закрытия. Позиция делится - закрытая часть попадает в историю, а оставшаяся получает новый тикет и остаётся в рынке.

 
Artyom Trishkin:

закрытая часть попадает в историю.

Как узнать что в истории именно этой позиции закрыта часть?

Открыта позиция лотом 1.0, закрыто 0.5 убыток 10$, позже закрыто ещё 0.25 с профитом 5$ Закрою все когда профит будет 50$. По факту, сейчас,  профит 50$.

if (OrderProfit()+OrderSwap()>=50) ClosePosBySelect();

 Как мне закрытые -10$ и +5$ учитывать при подсчёте текущего профита? Чтобы закрыть при профите 55$

Причина обращения: