Спасибо. Исправим.
Добрый день!
У меня эта проблемма осталась, и билд вроде 193. Функция CurTime() при тестировании по прежнему возвращает не то время.
У меня эта проблемма осталась, и билд вроде 193. Функция CurTime() при тестировании по прежнему возвращает не то время.
Добрый день!
У меня эта проблемма осталась, и билд вроде 193. Функция CurTime() при тестировании по прежнему возвращает не то время.
У меня эта проблемма осталась, и билд вроде 193. Функция CurTime() при тестировании по прежнему возвращает не то время.
Что значит "не то время"?
При тестировании стратегии функиция:
int init { Print(Timetostr(Curtime())); return(0); }
оставляет запись с временем последней реально полученной котировки, т.е. если я работал в выходные она пишет дату пятницы 23:59.
Как ни странно перед тем как писать ответ еще раз посмотрел и все заработало, извините будем разбираться...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в теле индикатора есть функции типа CurTime(), Seconds(), Minute()...
При тестировании такого эксперта, функции этого семейства из индикатора неизменно дают сведения о самом первом тике.
Т.е. при вызове их из эксперта непосредственно все ок, а из индикатора в эксперте - нет.
Вот маленький тестовый набор.
// Эксперт:
int init()
{
}
//+-+
int start()
{ string tmpS;
double ii1,ii2,ii3;
if (CurTime()<StrToTime("2006.04.07 00:00") || CurTime()>StrToTime("2006.04.07 01:00")) return(0);
ii1=iCustom( NULL,PERIOD_M1,"ind1",0,0);
ii2=iCustom( NULL,PERIOD_M1,"ind1",1,0);
ii3=iCustom( NULL,PERIOD_M1,"ind1",2,0);
tmpS=Seconds()+" | "+Minute()+" | "+CurTime() +" :: "+ ii1 +" | "+ ii2 +" | "+ ii3;
Print(tmpS);
return(0);
}
//+-+
int deinit()
{
return(0);
}
// Индикатор ind1.mq4:
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Aqua
//---- indicator buffers
double Ind1[];
double Ind2[];
double Ind3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{ int i, tmp;
//---- additional buffers are used for counting
IndicatorBuffers(3);
//---- indicator buffers mapping
SetIndexBuffer(0, Ind1);
SetIndexBuffer(1, Ind2);
SetIndexBuffer(2, Ind3);
//---- line names
SetIndexLabel( 0,"Ind1") ;
SetIndexLabel( 1,"Ind2") ;
SetIndexLabel( 2,"Ind3") ;
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
//----
IndicatorDigits(6);
SetIndexDrawBegin(0,30);
SetIndexDrawBegin(1,30);
SetIndexDrawBegin(2,30);
return(0);
}
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator |
//+------------------------------------------------------------------+
int start()
{ int limit, TimeOfCurBar, VPTimeBar, RelPeriodMax;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- counted in the 1-st additional buffer
for(int i=0; i<limit; i++)
{ Ind1[i]=Seconds();
Ind2[i]=Minute();
Ind3[i]=CurTime();
}
return(0);
}
//+------------------------------------------------------------------+